diff --git a/applications/Decoder/Decoder.cs b/applications/Decoder/Decoder.cs
index 28900395..163c9352 100644
--- a/applications/Decoder/Decoder.cs
+++ b/applications/Decoder/Decoder.cs
@@ -37,7 +37,7 @@ using libsecondlife;
class Decoder {
private static int BUFSIZE = 8096;
- private static ProtocolManager protocol = new SecondLife("keywords.txt", "protocol.txt").Protocol;
+ private static ProtocolManager protocol = new SecondLife("keywords.txt", "message_template.msg").Protocol;
private static string grep = null;
private static byte[] data = new byte[BUFSIZE];
private static byte[] temp = new byte[BUFSIZE];
diff --git a/applications/SLChat/SLChat/SLChat.csproj b/applications/SLChat/SLChat/SLChat.csproj
index ba327b23..7877134c 100644
--- a/applications/SLChat/SLChat/SLChat.csproj
+++ b/applications/SLChat/SLChat/SLChat.csproj
@@ -127,13 +127,5 @@
-
-
- Always
-
-
- Always
-
-
\ No newline at end of file
diff --git a/applications/SLChat/SLChat/SLNetCom/SLNetCom.cs b/applications/SLChat/SLChat/SLNetCom/SLNetCom.cs
index 17ae1426..da0379f3 100644
--- a/applications/SLChat/SLChat/SLNetCom/SLNetCom.cs
+++ b/applications/SLChat/SLChat/SLNetCom/SLNetCom.cs
@@ -50,7 +50,7 @@ namespace SLNetworkComm
private void InitializeClient()
{
- client = new SecondLife("keywords.txt", "protocol.txt");
+ client = new SecondLife("keywords.txt", "message_template.msg");
client.Network.RegisterCallback("ChatFromSimulator", new PacketCallback(ChatIncoming));
client.Network.RegisterCallback("ImprovedInstantMessage", new PacketCallback(InstantMessageIncoming));
}
diff --git a/applications/SLIRC/frmSLIRC.cs b/applications/SLIRC/frmSLIRC.cs
index 03dc96e3..cd62ea13 100644
--- a/applications/SLIRC/frmSLIRC.cs
+++ b/applications/SLIRC/frmSLIRC.cs
@@ -91,7 +91,7 @@ namespace SLIRC
{
try
{
- client = new SecondLife("keywords.txt", "protocol.txt");
+ client = new SecondLife("keywords.txt", "message_template.msg");
client.Avatar.OnChat += new ChatCallback(Avatar_OnChat);
grpLogin.Enabled = true;
}
diff --git a/applications/SLProxy/Analyst.cs b/applications/SLProxy/Analyst.cs
index 3b5698da..4b1d47eb 100644
--- a/applications/SLProxy/Analyst.cs
+++ b/applications/SLProxy/Analyst.cs
@@ -52,7 +52,7 @@ public class Analyst {
public static void Main(string[] args) {
// configure the proxy
- client = new SecondLife("keywords.txt", "protocol.txt");
+ client = new SecondLife("keywords.txt", "message_template.msg");
protocolManager = client.Protocol;
ProxyConfig proxyConfig = new ProxyConfig("Analyst", "austin.jennings@gmail.com", protocolManager, args);
proxy = new Proxy(proxyConfig);
diff --git a/applications/SLProxy/ChatConsole.cs b/applications/SLProxy/ChatConsole.cs
index 3a12042a..888eddb5 100644
--- a/applications/SLProxy/ChatConsole.cs
+++ b/applications/SLProxy/ChatConsole.cs
@@ -45,7 +45,7 @@ public class ChatConsole {
public static void Main(string[] args) {
// configure the proxy
- client = new SecondLife("keywords.txt", "protocol.txt");
+ client = new SecondLife("keywords.txt", "message_template.msg");
protocolManager = client.Protocol;
ProxyConfig proxyConfig = new ProxyConfig("ChatConsole", "austin.jennings@gmail.com", protocolManager, args);
proxy = new Proxy(proxyConfig);
diff --git a/applications/SecondSuite/frmLogin.cs b/applications/SecondSuite/frmLogin.cs
index 21a4b689..01d64b4c 100644
--- a/applications/SecondSuite/frmLogin.cs
+++ b/applications/SecondSuite/frmLogin.cs
@@ -209,7 +209,7 @@ namespace SecondSuite
try
{
- client = new SecondLife("keywords.txt", "protocol.txt");
+ client = new SecondLife("keywords.txt", "message_template.msg");
}
catch (Exception error)
{
diff --git a/data/protocol.txt b/data/message_template.msg
similarity index 95%
rename from data/protocol.txt
rename to data/message_template.msg
index 8d9903c6..b1522f71 100644
--- a/data/protocol.txt
+++ b/data/message_template.msg
@@ -1,10448 +1,10448 @@
-// Linden Lab development message templates
-
-version 1.053
-
-// 1.053 added EndPointID to DenyTrustedCircuit and CreateTrustedCircuit. PP
-
-// *************************************************************************
-// Test Message
-// *************************************************************************
-
-// Test Message
-
-{
- TestMessage Low NotTrusted Zerocoded
- {
- TestBlock1 Single
- { Test1 U32 }
- }
- {
- NeighborBlock Multiple 4
- { Test0 U32 }
- { Test1 U32 }
- { Test2 U32 }
- }
-}
-
-// *************************************************************************
-// Messaging Internal Data Management Message
-// *************************************************************************
-
-// *************************
-// List fixed messages first
-// *************************
-
-// This is the newly updated version of the message template checksum
-// request. The token is there so that the viewer can drop responses
-// that do not match the supplied token.
-{
- SecuredTemplateChecksumRequest Fixed 0xFFFFFFFA NotTrusted Unencoded
- {
- TokenBlock Single
- { Token LLUUID }
- }
-}
-
-// Packet Ack - Ack a list of packets sent reliable
-{
- PacketAck Fixed 0xFFFFFFFB NotTrusted Unencoded
- {
- Packets Variable
- { ID U32 }
- }
-}
-
-// OpenCircuit - Tells the recipient's messaging system to open the descibed circuit
-{
- OpenCircuit Fixed 0xFFFFFFFC NotTrusted Unencoded
- {
- CircuitInfo Single
- { IP IPADDR }
- { Port IPPORT }
- }
-}
-
-// CloseCircuit - Tells the recipient's messaging system to close the descibed circuit
-{
- CloseCircuit Fixed 0xFFFFFFFD NotTrusted Unencoded
-}
-
-
-// message template version check. Deprecated - the viewer should send a
-// SecuredTemplateChecksumRequest to prevent template checksum
-// injection with a bad checksum.
-{
- TemplateChecksumRequest Fixed 0xFFFFFFFE NotTrusted Unencoded
-}
-
-// message template version check
-{
- TemplateChecksumReply Fixed 0xFFFFFFFF NotTrusted Unencoded
- {
- DataBlock Single
- { Checksum U32 }
- { MajorVersion U8 }
- { MinorVersion U8 }
- { PatchVersion U8 }
- { ServerVersion U8 }
- { Flags U32 }
- }
- {
- TokenBlock Single
- { Token LLUUID }
- }
-}
-
-// ******************
-// End fixed messages
-// ******************
-
-// StartPingCheck - used to measure circuit ping times
-// PingID is used to determine how backlogged the ping was that was
-// returned (or how hosed the other side is)
-{
- StartPingCheck High NotTrusted Unencoded
- {
- PingID Single
- { PingID U8 }
- { OldestUnacked U32 } // Current oldest "unacked" packet on the sender side
- }
-}
-
-// CompletePingCheck - used to measure circuit ping times
-
-{
- CompletePingCheck High NotTrusted Unencoded
- {
- PingID Single
- { PingID U8 }
- }
-}
-
-// user->viewer
-// AssignCircuitCode - Tells the recipient's messaging system what it's code is
-//{
-// AssignCircuitCode Low Trusted Unencoded
-// {
-// CircuitCode Single
-// { Code U32 }
-// { SessionID LLUUID }
-// }
-//}
-
-// space->sim
-// sim->sim
-// AddCircuitCode - Tells the recipient's messaging system that this code
-// is for a legal circuit
-{
- AddCircuitCode Low Trusted Unencoded
- {
- CircuitCode Single
- { Code U32 }
- { SessionID LLUUID }
- { AgentID LLUUID } // WARNING - may be null in valid message
- }
-}
-
-// sim->space
-// Tells the spaceserver that the simulator is ready to receive an
-// agent with that circuit code.
-//{
-// AckAddCircuitCode Low Trusted Unencoded
-// {
-// CircuitCode Single
-// { Code U32 }
-// }
-//}
-
-// viewer->sim
-// UseCircuitCode - Attempts to provide the recipient with IP and Port
-// info. In the case of viewers, the id is the session id. For other
-// machines it may be null. The session id will always be the session
-// id of the process, which every server will generate on startup and
-// the viewer will be handed after login.
-{
- UseCircuitCode Low NotTrusted Unencoded
- {
- CircuitCode Single
- { Code U32 }
- { SessionID LLUUID }
- { ID LLUUID } // agent id
- }
-}
-
-// LogControl - This message allows us to remotely control the
-// runtime logging facilities of the error stream. This MUST match
-// the RelayLogControl message.
-// Level - DEBUG=0, INFO=1, WARN=2, FATAL=3 system displays level and greater
-// Mask - a bit mask. Set to 0xffff to display every type
-// Time - set to 1 to turn on timestamp, 0 to turn it off
-// Location - set to 1 to turn on file/line stamp, 0 to turn it off
-// RemoteInfos - set to 1 to log llinfo to the log server (in production)
-{
- LogControl Low Trusted Unencoded
- {
- Options Single
- { Level U8 }
- { Mask U32 }
- { Time BOOL }
- { Location BOOL }
- { RemoteInfos BOOL }
- }
-}
-
-// RelayLogControl - Just like log control, but relayed around the
-// server side to adjust the log level. This is in a separate message
-// because the handler is a bit different, only implmented on some
-// processes, and requires application level knowledge. This MUST match
-// the LogControl message.
-{
- RelayLogControl Low Trusted Unencoded
- {
- Options Single
- { Level U8 }
- { Mask U32 }
- { Time BOOL }
- { Location BOOL }
- { RemoteInfos BOOL }
- }
-}
-
-
-// LogMessages
-// Turns on or off message system logging
-{
- LogMessages Low Trusted Unencoded
- {
- Options Single
- { Enable BOOL } // BOOL
- }
-}
-
-
-// *************************************************************************
-// SpaceServer to Simulator Messages
-// ************************************************************************
-
-// Neighbor List - Passed anytime neighbors change
-{
- NeighborList High Trusted Unencoded
- {
- NeighborBlock Multiple 4
- { IP IPADDR }
- { Port IPPORT }
- { PublicIP IPADDR }
- { PublicPort IPPORT }
- { RegionID LLUUID }
- { Name Variable 1 } // string
- { SimAccess U8 }
- }
-}
-
-
-// Simulator Assignment - Tells a simulator where it is and who it's
-// neighbors are
-{
- SimulatorAssign Low Trusted Zerocoded
- {
- RegionInfo Single
- { GridsPerEdge S32 }
- { MetersPerGrid F32 }
- { Handle U64 }
- { UsecSinceStart U64 }
- { SecPerDay U32 }
- { SecPerYear U32 }
- { SunDirection LLVector3 }
- { SunAngVelocity LLVector3 }
- { IP IPADDR }
- { Port IPPORT }
- }
- {
- NeighborBlock Multiple 4
- { IP IPADDR }
- { Port IPPORT }
- { PublicIP IPADDR }
- { PublicPort IPPORT }
- { Name Variable 1 } // string
- { SimAccess U8 }
- }
-}
-
-// SpaceServerSimulatorTimeMessage - Allows simulator to resynch to world time
-{
- SpaceServerSimulatorTimeMessage Low Trusted Unencoded
- {
- TimeInfo Single
- { UsecSinceStart U64 }
- { SecPerDay U32 }
- { SecPerYear U32 }
- { SunDirection LLVector3 }
- { SunPhase F32 }
- { SunAngVelocity LLVector3 }
- }
-}
-
-// ClosestSimulator - Passes the closest simulator back to a simulator
-{
- ClosestSimulator Medium Trusted Unencoded
- {
- SimulatorBlock Single
- { IP IPADDR }
- { Port IPPORT }
- { Handle U64 }
- }
- {
- Viewer Single
- { ID LLUUID }
- }
-}
-
-// AgentIDReply
-// dataserver -> simulator
-// reliable
-// Message send from spaceserver to simulator
-// containing agent id for a given session id
-// Also, a list of name value pairs for that agent
-// also tacked on a list of agents that have granted you powers
-//{
-// AgentIDReply Low Trusted Zerocoded
-// {
-// ReplyBlock Single
-// { RequestID LLUUID }
-// { SessionID LLUUID }
-// { AgentID LLUUID }
-// { StartLocation LLVector3 } // Vector3, region local
-// { StartLookAt LLVector3 } // Vector3, normalized
-// { GroupID LLUUID }
-// { GroupOfficer BOOL }
-// { AgentAccess U8 }
-// { GodLevel U8 }
-// { GroupTitle Variable 1 } // string
-// }
-// {
-// TextureData Variable
-// { TextureID LLUUID }
-// }
-// {
-// GranterBlock Variable
-// { GranterID LLUUID }
-// }
-// {
-// NameValueBlock Variable
-// { NameValue Variable 2 }
-// }
-// {
-// AttachmentBlock Variable
-// { AttachmentPoint U8 }
-// { ItemID LLUUID }
-// { AssetID LLUUID }
-// }
-//}
-
-// AvatarTextureUpdate
-// simulator -> dataserver
-// reliable
-{
- AvatarTextureUpdate Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { TexturesChanged BOOL }
- { HostName Variable 1 }
- }
- {
- WearableData Variable
- { CacheID LLUUID }
- { TextureIndex U8 }
- }
- {
- TextureData Variable
- { TextureID LLUUID }
- }
-}
-
-
-// SimulatorMapUpdate
-// simulator -> dataserver
-// reliable
-{
- SimulatorMapUpdate Low Trusted Unencoded
- {
- MapData Single
- { Flags U32 }
- }
-}
-
-// SimulatorSetMap
-// simulator -> dataserver
-// reliable
-// Used to upload a map image into the database (currently used only for Land For Sale)
-{
- SimulatorSetMap Low Trusted Unencoded
- {
- MapData Single
- { RegionHandle U64 }
- { Type S32 }
- { MapImage LLUUID }
- }
-}
-
-// SubscribeLoad
-// spaceserver -> simulator
-// reliable
-{
- SubscribeLoad Low Trusted Unencoded
-}
-
-// UnsubscribeLoad
-// spaceserver -> simulator
-// reliable
-{
- UnsubscribeLoad Low Trusted Unencoded
-}
-
-
-// ************************************************************************
-// Simulator to SpaceServer Messages
-// ************************************************************************
-
-// Simulator Start - Tells spaceserver that simulator is online and wants to be
-// assigned.
-{
- SimulatorStart Low Trusted Unencoded
- {
- ControlPort Single
- { Port IPPORT }
- { PublicIP IPADDR }
- { PublicPort IPPORT }
- }
- {
- PositionSuggestion Single
- { Ignore BOOL } // if non-zero, SS should put it in the next available slot
- { GridX S32 }
- { GridY S32 }
- }
-}
-
-// SimulatorReady - indicates the sim has finished loading its state
-// and is ready to receive updates from others
-{
- SimulatorReady Low Trusted Zerocoded
- {
- SimulatorBlock Single
- { SimName Variable 1 }
- { SimAccess U8 }
- { RegionFlags U32 }
- { RegionID LLUUID }
- { EstateID U32 }
- { ParentEstateID U32 }
- }
- {
- TelehubBlock Single
- { HasTelehub BOOL }
- { TelehubPos LLVector3 }
- }
-}
-
-// TelehubInfo - fill in the UI for telehub creation floater.
-// sim -> viewer
-// reliable
-{
- TelehubInfo Low NotTrusted Unencoded
- {
- TelehubBlock Single
- { ObjectID LLUUID } // null if no telehub
- { ObjectName Variable 1 } // string
- { TelehubPos LLVector3 } // fallback if viewer can't find object
- { TelehubRot LLQuaternion }
- }
- {
- SpawnPointBlock Variable
- { SpawnPointPos LLVector3 } // relative to telehub position
- }
-}
-
-// SimulatorPresentAtLocation - indicates that the sim is present at a grid
-// location and passes what it believes its neighbors are
-{
- SimulatorPresentAtLocation Low Trusted Unencoded
- {
- SimulatorPublicHostBlock Single
- { Port IPPORT }
- { SimulatorIP IPADDR }
- { GridX U32 }
- { GridY U32 }
- }
- {
- NeighborBlock Multiple 4
- { IP IPADDR }
- { Port IPPORT }
- }
- {
- SimulatorBlock Single
- { SimName Variable 1 }
- { SimAccess U8 }
- { RegionFlags U32 }
- { RegionID LLUUID }
- { EstateID U32 }
- { ParentEstateID U32 }
- }
- {
- TelehubBlock Variable
- { HasTelehub BOOL }
- { TelehubPos LLVector3 }
- }
-}
-
-// SimulatorLoad
-// simulator -> spaceserver
-// reliable
-{
- SimulatorLoad Low Trusted Unencoded
- {
- SimulatorLoad Single
- { TimeDilation F32 }
- { AgentCount S32 }
- { CanAcceptAgents BOOL }
- }
- {
- AgentList Variable
- { CircuitCode U32 }
- { X U8 }
- { Y U8 }
- }
-}
-
-// Simulator Shutdown Request - Tells spaceserver that a simulator is trying to shutdown
-{
- SimulatorShutdownRequest Low Trusted Unencoded
-}
-
-
-// AgentIDRequest
-// Request to report agent ID associated with a session id
-//{
-// AgentIDRequest Low Trusted Unencoded
-// {
-// RequestBlock Single
-// { RequestID LLUUID }
-// { SessionID LLUUID }
-// { LocationID U32 } // 0 = last location
-// { Godlike BOOL }
-// }
-//}
-// ****************************************************************************
-// Presense messages
-// ****************************************************************************
-
-// sim -> dataserver
-{
- RegionPresenceRequestByRegionID Low Trusted Unencoded
- {
- RegionData Variable
- { RegionID LLUUID }
- }
-}
-
-sim -> dataserver
-{
- RegionPresenceRequestByHandle Low Trusted Unencoded
- {
- RegionData Variable
- { RegionHandle U64 }
- }
-}
-
-// dataserver -> sim
-{
- RegionPresenceResponse Low Trusted Zerocoded
- {
- RegionData Variable
- { RegionID LLUUID }
- { RegionHandle U64 }
- { InternalRegionIP IPADDR }
- { ExternalRegionIP IPADDR }
- { RegionPort IPPORT }
- { ValidUntil F64 }
- { Message Variable 1 }
- }
-}
-
-// Record agent presence - this totally supercedes the TrackAgentSession
-// and ClearAgentSessions functionality
-{
- RecordAgentPresence Low Trusted Unencoded
- {
- RegionData Single
- { RegionID LLUUID }
- }
- {
- AgentData Variable
- { AgentID LLUUID }
- { SessionID LLUUID }
- { SecureSessionID LLUUID }
- { LocalX S16 }
- { LocalY S16 }
- { TimeToLive S32 } // in seconds
- { Status S32 }
- { EstateID U32 }
- }
-}
-
-// Erase a set of agent presence records. Useful during logout or kick.
-{
- EraseAgentPresence Low Trusted Unencoded
- {
- AgentData Variable
- { AgentID LLUUID }
- }
-}
-
-// request IP and port for agents
-{
- AgentPresenceRequest Low Trusted Unencoded
- {
- AgentData Variable
- { AgentID LLUUID }
- }
-}
-
-// response for agent locations
-{
- AgentPresenceResponse Low Trusted Unencoded
- {
- AgentData Variable
- { AgentID LLUUID }
- { RegionIP IPADDR }
- { RegionPort IPPORT }
- { ValidUntil F64 }
- { EstateID U32 }
- }
-}
-
-
-// ****************************************************************************
-// Simulator to dataserver messages
-// ****************************************************************************
-
-// Updates SimName, EstateID and SimAccess using RegionID as a key
-{
- UpdateSimulator Low Trusted Unencoded
- {
- SimulatorInfo Single
- { RegionID LLUUID }
- { SimName Variable 1 }
- { EstateID U32 }
- { SimAccess U8 }
- }
-}
-
-
-// The simulator sends out this message from time to time
-{
- TrackAgentSession Low Trusted Unencoded
- {
- RegionData Single
- { RegionX F32 }
- { RegionY F32 }
- { SpaceIP IPADDR }
- { EstateID U32 }
- { AgentCount U32 }
- }
- {
- SessionInfo Variable
- { SessionID LLUUID }
- { ViewerIP IPADDR }
- { ViewerPort IPPORT }
- { GlobalX F64 }
- { GlobalY F64 }
- }
-}
-
-
-// clear out sessions for this sim, because it's coming up or going down
-{
- ClearAgentSessions Low Trusted Unencoded
- {
- RegionInfo Single
- { RegionX U32 }
- { RegionY U32 }
- { SpaceIP IPADDR }
- }
-}
-
-// record dwell time.
-{
- LogDwellTime Low Trusted Unencoded
- {
- DwellInfo Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { Duration F32 }
- { SimName Variable 1 }
- { RegionX U32 }
- { RegionY U32 }
- }
-}
-
-// record lost money transactions. This message could be generated
-// from either the simulator or the dataserver, depending on how
-// the transaction failed.
-{
- LogFailedMoneyTransaction Low Trusted Unencoded
- {
- TransactionData Single
- { TransactionID LLUUID }
- { TransactionTime U32 } // utc seconds since epoch
- { TransactionType S32 } // see lltransactiontypes.h
- { SourceID LLUUID }
- { DestID LLUUID } // destination of the transfer
- { Flags U8 }
- { Amount S32 }
- { SimulatorIP IPADDR } // U32 encoded IP
- { GridX U32 }
- { GridY U32 }
- { FailureType U8 }
- }
-}
-
-// complaint/bug-report - sim -> dataserver. see UserReport for details.
-// reliable
-{
- UserReportInternal Low Trusted Zerocoded
- {
- ReportData Single
- { ReportType U8 }
- { Category U8 }
- { ReporterID LLUUID }
- { ViewerPosition LLVector3 }
- { AgentPosition LLVector3 }
- { ScreenshotID LLUUID }
- { ObjectID LLUUID }
- { OwnerID LLUUID }
- { LastOwnerID LLUUID }
- { CreatorID LLUUID }
- { SimName Variable 1 }
- { Summary Variable 1 }
- { Details Variable 2 }
- { VersionString Variable 1 }
- }
- {
- MeanCollision Variable
- { Perp LLUUID }
- { Time U32 }
- { Mag F32 }
- { Type U8 }
- }
-}
-
-// SetSimStatusInDatabase
-// alters the "simulator" table in the database
-// sim -> dataserver
-// reliable
-{
- SetSimStatusInDatabase Low Trusted Unencoded
- {
- Data Single
- { RegionID LLUUID }
- { HostName Variable 1 }
- { X S32 }
- { Y S32 }
- { PID S32 }
- { AgentCount S32 }
- { TimeToLive S32 } // in seconds
- { Status Variable 1 }
- }
-}
-
-// SetSimPresenceInDatabase
-// updates the "presence" table in the database to ensure
-// that a given simulator is present and valid for a set amount of
-// time
-{
- SetSimPresenceInDatabase Low Trusted Unencoded
- {
- SimData Single
- { RegionID LLUUID }
- { HostName Variable 1 }
- { GridX U32 }
- { GridY U32 }
- { PID S32 }
- { AgentCount S32 }
- { TimeToLive S32 } // in seconds
- { Status Variable 1 }
- }
-}
-
-// ***************************************************************************
-// Economy messages
-// ***************************************************************************
-
-// once we use local stats, this will include a region handle
-{
- EconomyDataRequest Low NotTrusted Unencoded
-}
-
-// dataserver to sim, response w/ econ data
-{
- EconomyData Low Trusted Zerocoded
- {
- Info Single
- { ObjectCapacity S32 }
- { ObjectCount S32 }
- { PriceEnergyUnit S32 }
- { PriceObjectClaim S32 }
- { PricePublicObjectDecay S32 }
- { PricePublicObjectDelete S32 }
- { PriceParcelClaim S32 }
- { PriceParcelClaimFactor F32 }
- { PriceUpload S32 }
- { PriceRentLight S32 }
- { TeleportMinPrice S32 }
- { TeleportPriceExponent F32 }
- { EnergyEfficiency F32 }
- { PriceObjectRent F32 }
- { PriceObjectScaleFactor F32 }
- { PriceParcelRent S32 }
- { PriceGroupCreate S32 }
- }
-}
-
-// ***************************************************************************
-// Search messages
-// ***************************************************************************
-
-// AvatarPickerRequest
-// Get a list of names to select a person
-// viewer -> sim -> data
-// reliable
-{
- AvatarPickerRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { QueryID LLUUID }
- }
- {
- Data Single
- { Name Variable 1 }
- }
-}
-
-// backend implementation which tracks if the user is a god.
-{
- AvatarPickerRequestBackend Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { QueryID LLUUID }
- { GodLevel U8 }
- }
- {
- Data Single
- { Name Variable 1 }
- }
-}
-
-// AvatarPickerReply
-// List of names to select a person
-// reliable
-{
- AvatarPickerReply Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { QueryID LLUUID }
- }
- {
- Data Variable
- { AvatarID LLUUID }
- { FirstName Variable 1 }
- { LastName Variable 1 }
- }
-}
-
-// PlacesQuery
-// Used for getting a list of places for the group land panel
-// and the user land holdings panel. NOT for the directory.
-{
- PlacesQuery Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { QueryID LLUUID }
- }
- {
- TransactionData Single
- { TransactionID LLUUID }
- }
- {
- QueryData Single
- { QueryText Variable 1 }
- { QueryFlags U32 }
- { Category S8 }
- { SimName Variable 1 }
- }
-}
-
-// PlacesReply
-// dataserver -> simulator -> viewer
-// If the user has specified a location, use that to compute
-// global x,y,z. Otherwise, use center of the AABB.
-// reliable
-{
- PlacesReply Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { QueryID LLUUID }
- }
- {
- TransactionData Single
- { TransactionID LLUUID }
- }
- {
- QueryData Variable
- { OwnerID LLUUID }
- { Name Variable 1 }
- { Desc Variable 1 }
- { ActualArea S32 }
- { BillableArea S32 }
- { Flags U8 }
- { GlobalX F32 } // meters
- { GlobalY F32 } // meters
- { GlobalZ F32 } // meters
- { SimName Variable 1 }
- { SnapshotID LLUUID }
- { Dwell F32 }
- { Price S32 }
- }
-}
-
-// DirFindQuery viewer->sim
-// Message to start asking questions for the directory
-{
- DirFindQuery Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- { QueryText Variable 1 }
- { QueryFlags U32 }
- { QueryStart S32 } // prev/next page support
- }
-}
-
-// DirFindQueryBackend sim->data
-// Trusted message generated by receipt of DirFindQuery to sim.
-{
- DirFindQueryBackend Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- { QueryText Variable 1 }
- { QueryFlags U32 }
- { QueryStart S32 } // prev/next page support
- { EstateID U32 }
- { Godlike BOOL }
- { SpaceIP IPADDR } // check online for right farm
- }
-}
-
-
-// DirPlacesQuery viewer->sim
-// Used for the Find directory of places
-{
- DirPlacesQuery Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- { QueryText Variable 1 }
- { QueryFlags U32 }
- { Category S8 }
- { SimName Variable 1 }
- { QueryStart S32 }
- }
-}
-
-// DirPlacesQueryBackend sim->dataserver
-// Used for the Find directory of places.
-{
- DirPlacesQueryBackend Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- { QueryText Variable 1 }
- { QueryFlags U32 }
- { Category S8 }
- { SimName Variable 1 }
- { EstateID U32 }
- { Godlike BOOL }
- { QueryStart S32 }
- }
-}
-
-// DirPlacesReply dataserver->sim->viewer
-// If the user has specified a location, use that to compute
-// global x,y,z. Otherwise, use center of the AABB.
-// reliable
-{
- DirPlacesReply Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- QueryData Variable
- { QueryID LLUUID }
- }
- {
- QueryReplies Variable
- { ParcelID LLUUID }
- { Name Variable 1 }
- { ForSale BOOL }
- { Auction BOOL }
- { ReservedNewbie BOOL }
- { Dwell F32 }
- }
-}
-
-// DirPeopleQuery viewer->sim
-// ask about people. This gets translated into a DirPeopleQueryTrusted on
-// the simulator.
-// *NOTE: this message is not in use on the viewer. 2004.07.02 \P/hoenix
-{
- DirPeopleQuery Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- { QueryText Variable 1 }
- { Name Variable 1 }
- { Group Variable 1 }
- { Online U8 }
- { WantToFlags U32 }
- { SkillFlags U32 }
- { Reputation Variable 1 } // string representation of "< 1" or "> 6" or "= 99"
- { Distance Variable 1 } // string representation of "< 1" or "> 6" or "= 99"
- }
-}
-
-// DirPeopleQueryBackend sim->dataserver
-// continue query about people whith a space ip address.
-{
- DirPeopleQueryBackend Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- { QueryText Variable 1 }
- { Name Variable 1 }
- { Group Variable 1 }
- { Online U8 }
- { WantToFlags U32 }
- { SkillFlags U32 }
- { Reputation Variable 1 } // string representation of "< 1" or "> 6" or "= 99"
- { Distance Variable 1 } // string representation of "< 1" or "> 6" or "= 99"
- { EstateID U32 }
- { Godlike BOOL }
- { SpaceIP IPADDR } // used to check online status for the right farm
- }
-}
-
-// DirPeopleReply
-{
- DirPeopleReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- }
- {
- QueryReplies Variable
- { AgentID LLUUID }
- { FirstName Variable 1 }
- { LastName Variable 1 }
- { Group Variable 1 }
- { Online BOOL }
- { Reputation S32 }
- }
-}
-
-// DirEventsReply
-{
- DirEventsReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- }
- {
- QueryReplies Variable
- { OwnerID LLUUID }
- { Name Variable 1 }
- { EventID U32 }
- { Date Variable 1 }
- { UnixTime U32 }
- { EventFlags U32 }
- }
-}
-
-// DirGroupsQuery viewer->sim
-// reliable
-{
- DirGroupsQuery Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- { QueryText Variable 1 } // string
- }
-}
-
-// DirGroupsQueryBackend sim->dataserver
-// reliable
-{
- DirGroupsQueryBackend Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- { QueryText Variable 1 } // string
- { EstateID U32 }
- { Godlike BOOL }
- }
-}
-
-
-// DirGroupsReply
-// dataserver -> userserver -> viewer
-// reliable
-{
- DirGroupsReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- }
- {
- QueryReplies Variable
- { GroupID LLUUID }
- { GroupName Variable 1 } // string
- { Members S32 }
- { OpenEnrollment BOOL }
- { MembershipFee S32 }
- }
-}
-
-
-// DirClassifiedQuery viewer->sim
-// reliable
-{
- DirClassifiedQuery Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- { QueryText Variable 1 }
- { QueryFlags U32 }
- { Category U32 }
- }
-}
-
-// DirClassifiedQueryBackend sim->dataserver
-// reliable
-{
- DirClassifiedQueryBackend Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- { QueryText Variable 1 }
- { QueryFlags U32 }
- { Category U32 }
- { EstateID U32 }
- { Godlike BOOL }
- }
-}
-
-// DirClassifiedReply dataserver->sim->viewer
-// reliable
-{
- DirClassifiedReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- }
- {
- QueryReplies Variable
- { ClassifiedID LLUUID }
- { Name Variable 1 }
- { ClassifiedFlags U8 }
- { CreationDate U32 }
- { ExpirationDate U32 }
- { PriceForListing S32 }
- }
-}
-
-
-// AvatarClassifiedReply
-// dataserver -> simulator -> viewer
-// Send the header information for this avatar's classifieds
-// This fills in the tabs of the Classifieds panel.
-// reliable
-{
- AvatarClassifiedReply Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { TargetID LLUUID }
- }
- {
- Data Variable
- { ClassifiedID LLUUID }
- { Name Variable 1 }
- }
-}
-
-
-// ClassifiedInfoRequest
-// viewer -> simulator
-// simulator -> dataserver
-// reliable
-{
- ClassifiedInfoRequest Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { ClassifiedID LLUUID }
- }
-}
-
-
-// ClassifiedInfoReply
-// dataserver -> simulator
-// simulator -> viewer
-// reliable
-{
- ClassifiedInfoReply Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- Data Single
- { ClassifiedID LLUUID }
- { CreatorID LLUUID }
- { CreationDate U32 }
- { ExpirationDate U32 }
- { Category U32 }
- { Name Variable 1 }
- { Desc Variable 2 }
- { ParcelID LLUUID }
- { ParentEstate U32 }
- { SnapshotID LLUUID }
- { SimName Variable 1 }
- { PosGlobal LLVector3d }
- { ParcelName Variable 1 }
- { ClassifiedFlags U8 }
- { PriceForListing S32 }
- }
-}
-
-
-// ClassifiedInfoUpdate
-// Update a classified. ParcelID and EstateID are set
-// on the simulator as the message passes through.
-// viewer -> simulator -> dataserver
-// reliable
-{
- ClassifiedInfoUpdate Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { ClassifiedID LLUUID }
- { Category U32 }
- { Name Variable 1 }
- { Desc Variable 2 }
- { ParcelID LLUUID }
- { ParentEstate U32 }
- { SnapshotID LLUUID }
- { PosGlobal LLVector3d }
- { ClassifiedFlags U8 }
- { PriceForListing S32 }
- }
-}
-
-
-// ClassifiedDelete
-// Delete a classified from the database.
-// viewer -> simulator -> dataserver
-// reliable
-{
- ClassifiedDelete Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { ClassifiedID LLUUID }
- }
-}
-
-// ClassifiedGodDelete
-// Delete a classified from the database.
-// QueryID is needed so database can send a repeat list of
-// classified.
-// viewer -> simulator -> dataserver
-// reliable
-{
- ClassifiedGodDelete Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { ClassifiedID LLUUID }
- { QueryID LLUUID }
- }
-}
-
-
-
-// DirPicksQuery viewer->sim
-// reliable
-{
- DirPicksQuery Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- { QueryFlags U32 }
- }
-}
-
-// DirPicksQueryBackend sim->dataserver
-// reliable
-{
- DirPicksQueryBackend Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- { QueryFlags U32 }
- { EstateID U32 }
- { Godlike BOOL }
- }
-}
-
-// DirPicksReply dataserver->sim->viewer
-// reliable
-{
- DirPicksReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- }
- {
- QueryReplies Variable
- { PickID LLUUID }
- { Name Variable 1 }
- { Enabled BOOL }
- }
-}
-
-
-// DirLandQuery viewer->sim
-// Special query for the land for sale/auction panel.
-// reliable
-{
- DirLandQuery Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- { QueryFlags U32 }
- { ForSale BOOL }
- { Auction BOOL }
- { ReservedNewbie BOOL }
- }
-}
-
-// DirLandQueryBackend sim->dataserver
-// Special query for the land for sale/auction panel.
-{
- DirLandQueryBackend Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- { QueryFlags U32 }
- { ForSale BOOL }
- { Auction BOOL }
- { ReservedNewbie BOOL }
- { EstateID U32 }
- { Godlike BOOL }
- }
-}
-
-// DirLandReply
-// dataserver -> simulator -> viewer
-// reliable
-{
- DirLandReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- }
- {
- QueryReplies Variable
- { ParcelID LLUUID }
- { Name Variable 1 }
- { Auction BOOL }
- { ForSale BOOL }
- { ReservedNewbie BOOL }
- { SalePrice S32 }
- { ActualArea S32 }
- }
-}
-
-// DirPopularQuery viewer->sim
-// Special query for the land for sale/auction panel.
-// reliable
-{
- DirPopularQuery Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- { QueryFlags U32 }
- }
-}
-
-// DirPopularQueryBackend sim->dataserver
-// Special query for the land for sale/auction panel.
-// reliable
-{
- DirPopularQueryBackend Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- { QueryFlags U32 }
- { EstateID U32 }
- { Godlike BOOL }
- }
-}
-
-// DirPopularReply
-// dataserver -> simulator -> viewer
-// reliable
-{
- DirPopularReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- }
- {
- QueryReplies Variable
- { ParcelID LLUUID }
- { Name Variable 1 }
- { Dwell F32 }
- }
-}
-
-// ParcelInfoRequest
-// viewer -> simulator -> dataserver
-// reliable
-{
- ParcelInfoRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { ParcelID LLUUID }
- }
-}
-
-// ParcelInfoReply
-// dataserver -> simulator -> viewer
-// reliable
-{
- ParcelInfoReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- Data Single
- { ParcelID LLUUID }
- { OwnerID LLUUID }
- { Name Variable 1 }
- { Desc Variable 1 }
- { ActualArea S32 }
- { BillableArea S32 }
- { Flags U8 }
- { GlobalX F32 } // meters
- { GlobalY F32 } // meters
- { GlobalZ F32 } // meters
- { SimName Variable 1 }
- { SnapshotID LLUUID }
- { Dwell F32 }
- { SalePrice S32 }
- { AuctionID S32 }
- }
-}
-
-
-// ParcelObjectOwnersRequest
-// viewer -> simulator
-// reliable
-{
- ParcelObjectOwnersRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ParcelData Single
- { LocalID S32 }
- }
-}
-
-// simulator -> dataserver
-// reliable
-{
- OnlineStatusRequest Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { QueryID LLUUID }
- { EstateID U32 }
- { Godlike BOOL }
- { SpaceIP IPADDR } // check online for right farm
- }
- {
- Data Variable
- { ID LLUUID }
- }
-}
-
-// dataserver -> simulator
-// reliable
-{
- OnlineStatusReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { QueryID LLUUID }
- }
- {
- Data Variable
- { ID LLUUID } // only online agents are returned
- }
-}
-
-// ParcelObjectOwnersReply
-// simulator -> viewer
-// reliable
-{
- ParcelObjectOwnersReply Low Trusted Zerocoded
- {
- Data Variable
- { OwnerID LLUUID }
- { IsGroupOwned BOOL }
- { Count S32 }
- { OnlineStatus BOOL }
- }
-}
-
-// GroupNoticeListRequest
-// viewer -> simulator -> dataserver
-// reliable
-{
- GroupNoticesListRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { GroupID LLUUID }
- }
-}
-
-// GroupNoticesListReply
-// dataserver -> simulator -> viewer
-// reliable
-{
- GroupNoticesListReply Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { GroupID LLUUID }
- }
- {
- Data Variable
- { NoticeID LLUUID }
- { Timestamp U32 }
- { FromName Variable 2 }
- { Subject Variable 2 }
- { HasAttachment BOOL }
- { AssetType U8 }
- }
-}
-
-// GroupNoticeRequest
-// viewer -> simulator
-// simulator -> dataserver
-// reliable
-{
- GroupNoticeRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { GroupNoticeID LLUUID }
- }
-}
-
-// GroupNoticeAdd
-// Add a group notice.
-// simulator -> dataserver
-// reliable
-{
- GroupNoticeAdd Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- MessageBlock Single
- { ToGroupID LLUUID }
- { ID LLUUID }
- { Dialog U8 }
- { FromAgentName Variable 1 }
- { Message Variable 2 }
- { BinaryBucket Variable 2 }
- }
-}
-
-
-// GroupNoticeDelete
-// Delete a group notice from the database.
-// viewer -> simulator -> dataserver
-// reliable
-{
- GroupNoticeDelete Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { GroupNoticeID LLUUID }
- { GroupID LLUUID }
- }
-}
-
-
-
-// ****************************************************************************
-// Teleport messages
-//
-// The teleport messages are numerous, so I have attempted to give them a
-// consistent naming convention. Since there is a bit of glob pattern
-// aliasing, the rules are applied in order.
-//
-// Teleport* - viewer->sim or sim->viewer message which announces a
-// teleportation request, progrees, start, or end.
-// Data* - sim->data or data->sim trusted message.
-// Space* - sim->space or space->sim trusted messaging
-// *Lure - A lure message to pass around information.
-//
-// All actual viewer teleports will begin with a Teleport* message and
-// end in a TeleportStart, TeleportLocal or TeleportFailed message. The TeleportFailed
-// message may be returned by any process and must be routed through the
-// teleporting agent's simulator and back to the viewer.
-// ****************************************************************************
-
-// TeleportRequest
-// viewer -> sim specifying exact teleport destination
-{
- TeleportRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Info Single
- { RegionID LLUUID }
- { Position LLVector3 }
- { LookAt LLVector3 }
- }
-}
-
-// TeleportLocationRequest
-// viewer -> sim specifying exact teleport destination
-{
- TeleportLocationRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Info Single
- { RegionHandle U64 }
- { Position LLVector3 }
- { LookAt LLVector3 }
- }
-}
-
-// TeleportLocal
-// sim -> viewer reply telling the viewer that we've successfully TP'd
-// to somewhere else within the sim
-{
- TeleportLocal Low Trusted Unencoded
- {
- Info Single
- { AgentID LLUUID }
- { LocationID U32 }
- { Position LLVector3 } // region
- { LookAt LLVector3 }
- { TeleportFlags U32 }
- }
-}
-
-// TeleportLandmarkRequest viewer->sim
-// teleport to landmark asset ID destination. use LLUUD::null for home.
-{
- TeleportLandmarkRequest Low NotTrusted Zerocoded
- {
- Info Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { LandmarkID LLUUID }
- }
-}
-
-// TeleportProgress sim->viewer
-// Tell the agent how the teleport is going.
-{
- TeleportProgress Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Info Single
- { TeleportFlags U32 }
- { Message Variable 1 } // string
- }
-}
-
-// DataAgentAccessRequest sim->data
-// ask if agent ID can in fact teleport from their current location in
-// EstateID to the destination specified by RegionHandle. If allowed,
-// the handler will persist the location in user_start_location and
-// send back a DataAgentAccessReply. Otherwise, the handler will send back
-// a TeleportFailed.
-{
- DataAgentAccessRequest Low Trusted Unencoded
- {
- Info Single
- { AgentID LLUUID }
- { EstateID U32 }
- { RegionHandle U64 }
- { LocationID U32 }
- { LocationPos LLVector3 }
- { LocationLookAt LLVector3 }
- }
-}
-
-// DataAgentAccessReply data->sim
-// Message to let us know if AgentID is allowed to teleport to RegionHandle.
-{
- DataAgentAccessReply Low Trusted Unencoded
- {
- Info Single
- { AgentID LLUUID }
- }
-}
-
-// DataHomeLocationRequest sim->data
-// Request
-{
- DataHomeLocationRequest Low Trusted Zerocoded
- {
- Info Single
- { AgentID LLUUID }
- }
-}
-
-// DataHomeLocationReply data->sim
-// response is the location of agent home.
-{
- DataHomeLocationReply Low Trusted Unencoded
- {
- Info Single
- { AgentID LLUUID }
- { RegionHandle U64 }
- { Position LLVector3 } // region coords
- { LookAt LLVector3 }
- }
-}
-
-// SpaceLocationTeleportRequest sim->space
-// Reuqest for info about remote location
-{
- SpaceLocationTeleportRequest Low Trusted Unencoded
- {
- Info Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { CircuitCode U32 }
- { RegionHandle U64 }
- { Position LLVector3 } // region
- { LookAt LLVector3 }
- { TravelAccess U8 }
- { ParentEstateID U32 }
- { TeleportFlags U32 }
- }
-}
-
-// SpaceLocationTeleportReply space->sim
-// with info about remote location
-{
- SpaceLocationTeleportReply Low Trusted Unencoded
- {
- Info Single
- { AgentID LLUUID }
- { LocationID U32 }
- { SimIP IPADDR }
- { SimPort IPPORT }
- { RegionHandle U64 }
- { Position LLVector3 } // region
- { LookAt LLVector3 }
- { SimName Variable 1 }
- { SimAccess U8 }
- { TeleportFlags U32 }
- }
-}
-
-// TeleportFinish sim->viewer
-// called when all of the information has been collected and readied for
-// the agent.
-{
- TeleportFinish Low Trusted Unencoded
- {
- Info Single
- { AgentID LLUUID }
- { LocationID U32 }
- { SimIP IPADDR }
- { SimPort IPPORT }
- { RegionHandle U64 }
- { SeedCapability Variable 2 } // URL
- { SimAccess U8 }
- { TeleportFlags U32 }
- }
-}
-
-// StartLure viewer->sim
-// Sent from viewer to the local simulator to lure target id to near
-// agent id. This will generate an instant message that will be routed
-// through the space server and out to the userserver. When that IM
-// goes through the userserver and the TargetID is online, the
-// userserver will send an InitializeLure to the spaceserver. When that
-// packet is acked, the original instant message is finally forwarded to
-// TargetID.
-{
- StartLure Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Info Single
- { LureType U8 }
- { TargetID LLUUID }
- { Message Variable 1 }
- }
-}
-
-// TeleportLureRequest viewer->sim
-// Message from target of lure to begin the teleport process on the
-// local simulator.
-{
- TeleportLureRequest Low NotTrusted Unencoded
- {
- Info Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { LureID LLUUID }
- { TeleportFlags U32 }
- }
-}
-
-// TeleportCancel viewer->sim
-// reliable
-{
- TeleportCancel Low NotTrusted Unencoded
- {
- Info Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
-}
-
-// CompleteLure sim->space
-// message with final necessary info about accepted lure. The
-// spaceserver will reply with a SpaceLocationTeleportReply or
-// TeleportFailed and it becomes like any other teleport.
-{
- CompleteLure Low Trusted Unencoded
- {
- Info Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { LureID LLUUID }
- { CircuitCode U32 }
- { TravelAccess U8 }
- { ParentEstateID U32 }
- { TeleportFlags U32 }
- }
-}
-
-// TeleportStart sim->viewer
-// announce a successful teleport request to the viewer.
-{
- TeleportStart Low Trusted Unencoded
- {
- Info Single
- { TeleportFlags U32 }
- }
-}
-
-// TeleportFailed somehwere->sim->viewer
-// announce failure of teleport request
-{
- TeleportFailed Low Trusted Unencoded
- {
- Info Single
- { AgentID LLUUID }
- { Reason Variable 1 } // string
- }
-}
-
-// ***************************************************************************
-// Leader Board messages
-// ***************************************************************************
-{
- LeaderBoardRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { Type S32 }
- }
-}
-
-{
- LeaderBoardData Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- BoardData Single
- { Type S32 }
- { MinPlace S32 }
- { MaxPlace S32 }
- { TimeString Variable 1 } // string
- }
- {
- Entry Variable
- { Sequence S32 }
- { Place S32 }
- { ID LLUUID }
- { Score S32 }
- { Name Fixed 32 } // only send 32 characters of the name, to fit in an MTU
- }
-}
-
-// ***************************************************************************
-// Viewer to Simulator Messages
-// ***************************************************************************
-
-// RegisterNewAgent - Sent by viewer to simulator to tell the simulator
-// that it's connecting.
-// HACK -- If SessionID is null, don't bother asking for information
-// from the space server.
-{
- RegisterNewAgent Low NotTrusted Unencoded
- {
- HelloBlock Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { LocationID U32 } // which start location to use
- { Godlike BOOL }
- }
-}
-
-// viewer->sim
-// request a connection to the userserver
-//{
-// RequestUserserverConnection Low NotTrusted Unencoded
-// {
-// AgentInfo Single
-// { AgentID LLUUID }
-// { SessionID LLUUID }
-// }
-//}
-
-// sim->space->userserver
-//{
-// UserserverConnectionForAgent Low Trusted Unencoded
-// {
-// AgentInfo Single
-// { AgentID LLUUID }
-// { SessionID LLUUID }
-// }
-//}
-
-// userserver->space->sim->agent
-//{
-// UserserverReadyForAgent Low Trusted Unencoded
-// {
-// AgentInfo Single
-// { AgentID LLUUID }
-// { SessionID LLUUID }
-// }
-// {
-// HostInfo Single
-// { ServerIP IPADDR }
-// { ServerPort IPPORT }
-// }
-//}
-
-// Undo
-{
- Undo Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { GroupID LLUUID }
- }
- {
- ObjectData Variable
- { ObjectID LLUUID }
- }
-}
-
-
-// Redo
-{
- Redo Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { GroupID LLUUID }
- }
- {
- ObjectData Variable
- { ObjectID LLUUID }
- }
-}
-
-// UndoLand
-{
- UndoLand Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
-}
-
-
-// RedoLand
-{
- RedoLand Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
-}
-
-// MovedIntoSimulator - Sent by simulatorA to simulatorB to tell the
-// simulator that a viewer is moving from A to B
-// sim --> sim
-{
- MovedIntoSimulator High Trusted Unencoded
- {
- Sender Single
- { ID LLUUID }
- { SessionID LLUUID }
- { CircuitCode U32 }
- }
-}
-
-
-// AgentPause - viewer occasionally will block, inform simulator of this fact
-{
- AgentPause Low NotTrusted Unencoded
- {
- Sender Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { SerialNum U32 } // U32, used by both pause and resume. Non-increasing numbers are ignored.
- }
-}
-
-// AgentResume - unblock the agent
-{
- AgentResume Low NotTrusted Unencoded
- {
- Sender Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { SerialNum U32 } // U32, used by both pause and resume. Non-increasing numbers are ignored.
- }
-}
-
-
-// AgentUpdate - Camera info sent from viewer to simulator
-// or, more simply, two axes and compute cross product
-// State data is temporary, indicates current behavior state:
-// 0 = walking
-// 1 = mouselook
-// 2 = typing
-//
-// Center is region local (JNC 8.16.2001)
-// Camera center is region local (JNC 8.29.2001)
-{
- AgentUpdate High NotTrusted Zerocoded
- {
- AgentData Single
- { ID LLUUID }
- { BodyRotation LLQuaternion }
- { HeadRotation LLQuaternion }
- { State U8 }
- { CameraCenter LLVector3 }
- { CameraAtAxis LLVector3 }
- { CameraLeftAxis LLVector3 }
- { CameraUpAxis LLVector3 }
- { Far F32 }
- { ControlFlags U32 }
- { Flags U8 }
- }
-}
-
-// ChatFromViewer
-// Specifies the text to be said and the "type",
-// normal speech, shout, whisper.
-// with the specified radius
-{
- ChatFromViewer Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ChatData Single
- { Message Variable 2 }
- { Type U8 }
- { Channel S32 }
- }
-}
-
-
-// AgentThrottle
-{
- AgentThrottle Low NotTrusted Zerocoded
- {
- Sender Single
- { ID LLUUID }
- { CircuitCode U32 }
- { GenCounter U32 }
- }
- {
- Throttle Single
- { Throttles Variable 1 }
- }
-}
-
-
-// AgentFOV - Update to agent's field of view, angle is vertical, single F32 float in radians
-{
- AgentFOV Low NotTrusted Unencoded
- {
- Sender Single
- { ID LLUUID }
- { CircuitCode U32 }
- { GenCounter U32 }
- }
- {
- FOVBlock Single
- { VerticalAngle F32 }
- }
-}
-
-
-// AgentHeightWidth - Update to height and aspect, sent as height/width to save space
-// Usually sent when window resized or created
-{
- AgentHeightWidth Low NotTrusted Unencoded
- {
- Sender Single
- { ID LLUUID }
- { CircuitCode U32 }
- { GenCounter U32 }
- }
- {
- HeightWidthBlock Single
- { Height U16 }
- { Width U16 }
- }
-}
-
-
-// AgentSetAppearance - Update to agent appearance
-{
- AgentSetAppearance Low NotTrusted Zerocoded
- {
- Sender Single
- { ID LLUUID }
- { SerialNum U32 } // U32, Increases every time the appearance changes. A value of 0 resets.
- { Size LLVector3 }
- }
- {
- WearableData Variable
- { CacheID LLUUID }
- { TextureIndex U8 }
- }
- {
- ObjectData Single
- { TextureEntry Variable 2 }
- }
- {
- VisualParam Variable
- { ParamValue U8 }
- }
-}
-
-// AgentAnimation - Update animation state
-// viewer --> simulator
-{
- AgentAnimation High NotTrusted Unencoded
- {
- Sender Single
- { ID LLUUID }
- }
- {
- AnimationList Variable
- { AnimID LLUUID }
- { StartAnim BOOL }
- }
-}
-
-// AgentRequestSit - Try to sit on an object
-{
- AgentRequestSit High NotTrusted Zerocoded
- {
- Sender Single
- { ID LLUUID }
- }
- {
- TargetObject Single
- { TargetID LLUUID }
- { Offset LLVector3 }
- }
-}
-
-// AgentSit - Actually sit on object
-{
- AgentSit High NotTrusted Unencoded
- {
- Sender Single
- { ID LLUUID }
- }
-}
-
-// RefreshViewer - sent by viewer when it has missing geometry, etc., due to dropped packets.
-
-{
- RefreshViewer Low NotTrusted Unencoded
- {
- Sender Single
- { ID LLUUID }
- }
-}
-
-
-// AgentQuit - Sent by viewer when viewer exits normally
-// Fuse is used to allow Reset to be passed to neighbors
-// *NOTE: obsolete
-{
- AgentQuit Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
-}
-
-// quit message sent between simulators
-{
- AgentQuitCopy Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- FuseBlock Single
- { ViewerCircuitCode U32 }
- }
-}
-
-
-// Request Image - Sent by the viewer to request a specified image at a specified resolution
-
-{
- RequestImage High NotTrusted Unencoded
- {
- RequestImage Variable
- { Image LLUUID }
- { DiscardLevel S32 }
- { DownloadPriority F32 }
- { Packet U32 }
- }
-}
-
-// ImageNotInDatabase
-// Simulator informs viewer that a requsted image definitely does not exist in the asset database
-{
- ImageNotInDatabase Low Trusted Unencoded
- {
- ImageID Single
- { ID LLUUID }
- }
-}
-
-// RebakeAvatarTextures
-// simulator -> viewer request when a temporary baked avatar texture is not found
-{
- RebakeAvatarTextures Low Trusted Unencoded
- {
- TextureData Single
- { TextureID LLUUID }
- }
-}
-
-
-// SetAlwaysRun
-// Lets the viewer choose between running and walking
-{
- SetAlwaysRun Low NotTrusted Unencoded
- {
- Sender Single
- { ID LLUUID }
- { AlwaysRun BOOL }
- }
-}
-
-// ObjectAdd - create new object in the world
-// Simulator will assign ID and send message back to signal
-// object actually created.
-//
-// AddFlags (see also ObjectUpdate)
-// 0x01 - use physics
-// 0x02 - create selected
-//
-// If only one ImageID is sent for an object type that has more than
-// one face, the same image is repeated on each subsequent face.
-//
-// Data field is opaque type-specific data for this object
-{
- ObjectAdd Medium NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { GroupID LLUUID }
- }
- {
- ObjectData Single
- { PCode U8 }
- { Material U8 }
- { AddFlags U32 } // see object_flags.h
-
- { PathCurve U8 }
- { ProfileCurve U8 }
- { PathBegin U8 } // 0 to 1, quanta = 0.01
- { PathEnd U8 } // 0 to 1, quanta = 0.01
- { PathScaleX U8 } // 0 to 1, quanta = 0.01
- { PathScaleY U8 } // 0 to 1, quanta = 0.01
- { PathShearX U8 } // -.5 to .5, quanta = 0.01
- { PathShearY U8 } // -.5 to .5, quanta = 0.01
- { PathTwist S8 } // -1 to 1, quanta = 0.01
- { PathTwistBegin S8 } // -1 to 1, quanta = 0.01
- { PathRadiusOffset S8 } // -1 to 1, quanta = 0.01
- { PathTaperX S8 } // -1 to 1, quanta = 0.01
- { PathTaperY S8 } // -1 to 1, quanta = 0.01
- { PathRevolutions U8 } // 0 to 3, quanta = 0.015
- { PathSkew S8 } // -1 to 1, quanta = 0.01
- { ProfileBegin U8 } // 0 to 1, quanta = 0.01
- { ProfileEnd U8 } // 0 to 1, quanta = 0.01
- { ProfileHollow U8 } // 0 to 1, quanta = 0.01
-
- { BypassRaycast U8 }
- { RayStart LLVector3 }
- { RayEnd LLVector3 }
- { RayTargetID LLUUID }
- { RayEndIsIntersection U8 }
-
- { Scale LLVector3 }
- { Rotation LLQuaternion }
-
- { TextureEntry Variable 2 }
-
- { NameValue Variable 2 }
- { State U8 }
- }
- {
- InventoryData Variable
- { ItemID LLUUID }
- { FolderID LLUUID }
- { CreatorID LLUUID } // permissions
- { OwnerID LLUUID } // permissions
- { GroupID LLUUID } // permissions
- { BaseMask U32 } // permissions
- { OwnerMask U32 } // permissions
- { GroupMask U32 } // permissions
- { EveryoneMask U32 } // permissions
- { NextOwnerMask U32 } // permissions
- { GroupOwned BOOL } // permissions
- { AssetID LLUUID }
- { Type S8 }
- { InvType S8 }
- { Flags U32 }
- { SaleType U8 }
- { SalePrice S32 }
- { Name Variable 1 }
- { Description Variable 1 }
- { CreationDate S32 }
- { CRC U32 }
- }
- {
- InventoryFile Single
- { Filename Variable 1 }
- }
-}
-
-
-// ObjectDelete
-// viewer -> simulator
-{
- ObjectDelete Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { Force BOOL } // BOOL, god trying to force delete
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- }
-}
-
-
-// ObjectDuplicate
-// viewer -> simulator
-// Makes a copy of a set of objects, offset by a given amount
-{
- ObjectDuplicate Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { GroupID LLUUID }
- }
- {
- SharedData Single
- { Offset LLVector3 }
- { DuplicateFlags U32 } // see object_flags.h
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- }
-}
-
-
-// ObjectDuplicateOnRay
-// viewer -> simulator
-// Makes a copy of an object, using the add object raycast
-// code to abut it to other objects.
-{
- ObjectDuplicateOnRay Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { GroupID LLUUID }
- { RayStart LLVector3 } // region local
- { RayEnd LLVector3 } // region local
- { BypassRaycast BOOL }
- { RayEndIsIntersection BOOL }
- { CopyCenters BOOL }
- { CopyRotates BOOL }
- { RayTargetID LLUUID }
- { DuplicateFlags U32 } // see object_flags.h
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- }
-}
-
-
-// MultipleObjectUpdate
-// viewer -> simulator
-// updates position, rotation and scale in one message
-// positions sent as region-local floats
-{
- MultipleObjectUpdate Medium NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- { Type U8 }
- { Data Variable 1 } // custom type
- }
-}
-
-// RequestMultipleObjects
-// viewer -> simulator
-// reliable
-//
-// When the viewer gets a local_id/crc for an object that
-// it either doesn't have, or doesn't have the current version
-// of, it sends this upstream get get an update.
-//
-// CacheMissType 0 => full object (viewer doesn't have it)
-// CacheMissType 1 => CRC mismatch only
-{
- RequestMultipleObjects Medium NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- ObjectData Variable
- { CacheMissType U8 }
- { ID U32 }
- }
-}
-
-
-// ObjectPosition
-// viewer -> simulator
-{
- ObjectPosition Medium NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- { Position LLVector3 } // region
- }
-}
-
-
-// ObjectScale
-// viewer -> simulator
-{
- ObjectScale Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- { Scale LLVector3 }
- }
-}
-
-
-// ObjectRotation
-// viewer -> simulator
-{
- ObjectRotation Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- { Rotation LLQuaternion }
- }
-}
-
-
-// ObjectFlagUpdate
-// viewer -> simulator
-{
- ObjectFlagUpdate Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { ObjectLocalID U32 }
- { UsePhysics BOOL }
- { IsTemporary BOOL }
- { IsPhantom BOOL }
- { CastsShadows BOOL }
- }
-}
-
-
-// ObjectClickAction
-// viewer -> simulator
-{
- ObjectClickAction Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- { ClickAction U8 }
- }
-}
-
-
-// ObjectImage
-// viewer -> simulator
-{
- ObjectImage Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- { MediaURL Variable 1 }
- { TextureEntry Variable 2 }
- }
-}
-
-
-{
- ObjectMaterial Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- { Material U8 }
- }
-}
-
-
-{
- ObjectShape Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- { PathCurve U8 }
- { ProfileCurve U8 }
- { PathBegin U8 } // 0 to 1, quanta = 0.01
- { PathEnd U8 } // 0 to 1, quanta = 0.01
- { PathScaleX U8 } // 0 to 1, quanta = 0.01
- { PathScaleY U8 } // 0 to 1, quanta = 0.01
- { PathShearX U8 } // -.5 to .5, quanta = 0.01
- { PathShearY U8 } // -.5 to .5, quanta = 0.01
- { PathTwist S8 } // -1 to 1, quanta = 0.01
- { PathTwistBegin S8 } // -1 to 1, quanta = 0.01
- { PathRadiusOffset S8 } // -1 to 1, quanta = 0.01
- { PathTaperX S8 } // -1 to 1, quanta = 0.01
- { PathTaperY S8 } // -1 to 1, quanta = 0.01
- { PathRevolutions U8 } // 0 to 3, quanta = 0.015
- { PathSkew S8 } // -1 to 1, quanta = 0.01
- { ProfileBegin U8 } // 0 to 1, quanta = 0.01
- { ProfileEnd U8 } // 0 to 1, quanta = 0.01
- { ProfileHollow U8 } // 0 to 1, quanta = 0.01
- }
-}
-
-{
- ObjectExtraParams Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- { ParamType U16 }
- { ParamInUse BOOL }
- { ParamSize U32 }
- { ParamData Variable 1 }
- }
-}
-
-
-// ObjectOwner
-// To make public, set OwnerID to LLUUID::null.
-// TODO: Eliminate god-bit. Maybe not. God-bit is ok, because it's
-// known on the server.
-{
- ObjectOwner Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- HeaderData Single
- { Override BOOL } // BOOL, God-bit.
- { OwnerID LLUUID }
- { GroupID LLUUID }
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- }
-}
-
-// ObjectGroup
-// To make the object part of no group, set GroupID = LLUUID::null.
-// This call only works if objectid.ownerid == agentid.
-{
- ObjectGroup Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { GroupID LLUUID }
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- }
-}
-
-// Attempt to buy an object. This will only pack root objects.
-{
- ObjectBuy Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { GroupID LLUUID }
- { CategoryID LLUUID } // folder where it goes (if derezed)
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- { SaleType U8 } // U8 -> EForSale
- { SalePrice S32 }
- }
-}
-
-// viewer -> simulator
-
-// buy object inventory. If the transaction succeeds, it will add
-// inventory to the agent, and potentially remove the original.
-{
- BuyObjectInventory Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { ObjectID LLUUID }
- { ItemID LLUUID }
- { FolderID LLUUID }
- }
-}
-
-// sim -> viewer
-// Used to propperly handle buying asset containers
-{
- DerezContainer Low Trusted Zerocoded
- {
- Data Single
- { ObjectID LLUUID }
- { Delete BOOL } // BOOL
- }
-}
-
-// ObjectPermissions
-// Field - see llpermissionsflags.h
-// If Set is true, tries to turn on bits in mask.
-// If set is false, tries to turn off bits in mask.
-// BUG: This just forces the permissions field.
-{
- ObjectPermissions Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- HeaderData Single
- { Override BOOL } // BOOL, God-bit.
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- { Field U8 }
- { Set U8 }
- { Mask U32 }
- }
-}
-
-// set object sale information
-{
- ObjectSaleInfo Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ObjectData Variable
- { LocalID U32 }
- { SaleType U8 } // U8 -> EForSale
- { SalePrice S32 }
- }
-}
-
-
-// set object names
-{
- ObjectName Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ObjectData Variable
- { LocalID U32 }
- { Name Variable 1 }
- }
-}
-
-// set object descriptions
-{
- ObjectDescription Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ObjectData Variable
- { LocalID U32 }
- { Description Variable 1 }
- }
-}
-
-// set object category
-{
- ObjectCategory Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ObjectData Variable
- { LocalID U32 }
- { Category U32 }
- }
-}
-
-// ObjectSelect
-// Variable object data because rectangular selection can
-// generate a large list very quickly.
-{
- ObjectSelect Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- }
-
-}
-
-
-// ObjectDeselect
-{
- ObjectDeselect Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- }
-
-}
-
-// ObjectAttach
-{
- ObjectAttach Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { AttachmentPoint U8 }
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- { Rotation LLQuaternion }
- }
-}
-
-// ObjectDetach -- derezzes an attachment, marking its item in your inventory as not "(worn)"
-{
- ObjectDetach Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- }
-}
-
-
-// ObjectDrop -- drops an attachment from your avatar onto the ground
-{
- ObjectDrop Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- }
-}
-
-
-// ObjectLink
-{
- ObjectLink Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- }
-}
-
-// ObjectDelink
-{
- ObjectDelink Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- }
-}
-
-// ObjectHinge
-{
- ObjectHinge Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- JointType Single
- { Type U8 }
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- }
-
-}
-
-// ObjectDehinge
-{
- ObjectDehinge Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 }
- }
-
-}
-
-
-// ObjectGrab
-{
- ObjectGrab Low NotTrusted Zerocoded
- {
- Sender Single
- { ID LLUUID }
- }
- {
- ObjectData Single
- { LocalID U32 }
- { GrabOffset LLVector3 }
- }
-}
-
-
-// ObjectGrabUpdate
-// TODO: Quantize this data, reduce message size.
-// TimeSinceLast could go to 1 byte, since capped
-// at 100 on sim.
-{
- ObjectGrabUpdate Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- ObjectData Single
- { ObjectID LLUUID }
- { GrabOffsetInitial LLVector3 } // LLVector3
- { GrabPosition LLVector3 } // LLVector3, region local
- { TimeSinceLast U32 }
- }
-}
-
-
-// ObjectDeGrab
-{
- ObjectDeGrab Low NotTrusted Unencoded
- {
- Sender Single
- { ID LLUUID }
- }
- {
- ObjectData Single
- { LocalID U32 }
- }
-}
-
-
-// ObjectSpinStart
-{
- ObjectSpinStart Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- ObjectData Single
- { ObjectID LLUUID }
- }
-}
-
-
-// ObjectSpinUpdate
-{
- ObjectSpinUpdate Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- ObjectData Single
- { ObjectID LLUUID }
- { Rotation LLQuaternion }
- }
-}
-
-
-// ObjectSpinStop
-{
- ObjectSpinStop Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- ObjectData Single
- { ObjectID LLUUID }
- }
-}
-
-// Export selected objects
-{
- ObjectExportSelected Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { RequestID LLUUID }
- { VolumeDetail S16 }
- }
- {
- ObjectData Variable
- { ObjectID LLUUID }
- }
-}
-
-// Import an object
-{
- ObjectImport Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { FolderID LLUUID }
- }
- {
- AssetData Single
- { FileID LLUUID 1 }
- { ObjectName Variable 1 }
- { Description Variable 1 }
- }
-}
-
-// ModifyLand - sent to modify a piece of land on a simulator.
-// viewer -> sim
-{
- ModifyLand Low NotTrusted Zerocoded
- {
- ModifyBlock Single
- { AgentID LLUUID }
- { Action U8 }
- { BrushSize U8 }
- { Seconds F32 }
- { Height F32 }
- }
- {
- ParcelData Variable
- { LocalID S32 }
- { West F32 }
- { South F32 }
- { East F32 }
- { North F32 }
- }
-}
-
-
-// VelocityInterpolateOn
-{
- VelocityInterpolateOn Low NotTrusted Unencoded
-}
-
-
-// VelocityInterpolateOff
-{
- VelocityInterpolateOff Low NotTrusted Unencoded
-}
-
-// Save State
-{
- StateSave Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- DataBlock Single
- { Filename Variable 1 }
- }
-}
-
-
-// ReportAutosaveCrash
-{
- ReportAutosaveCrash Low NotTrusted Unencoded
- {
- AutosaveData Single
- { PID S32 }
- { Status S32 }
- }
-}
-
-
-
-// SimWideDeletes
-{
- SimWideDeletes Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- DataBlock Single
- { TargetID LLUUID }
- { Flags U32 }
- }
-}
-
-// Load State
-// Not in use \P/hoenix - 2004.07.14
-{
- StateLoad Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- DataBlock Single
- { Filename Variable 1 }
- }
-}
-
-// RequestObjectPropertiesFamily
-// Ask for extended information, such as creator, permissions, resources, etc.
-// Medium frequency because it is driven by mouse hovering over objects, which
-// occurs at high rates.
-{
- RequestObjectPropertiesFamily Medium NotTrusted Zerocoded
- {
- ObjectData Single
- { RequestFlags U32 }
- { AgentID LLUUID }
- { ObjectID LLUUID }
- }
-}
-
-
-// Track agent - this information is used when sending out the
-// coarse location update so that we know who you are tracking.
-// To stop tracking - send a null uuid as the prey.
-{
- TrackAgent Low NotTrusted Unencoded
- {
- AgentBlock Single
- { AgentID LLUUID }
- { PreyID LLUUID }
- }
-}
-
-
-// Grant agents the ability to modify your stuff. This message is sent
-// to the simulator, and then passed along to the dataserver for
-// persistance. The dataserver will push live updates through
-// AddModifyAbility messages to the simulator.
-// viewer -> simulator -> dataserver
-{
- GrantModification Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { GranterName Variable 1 }
- }
- {
- EmpoweredBlock Variable
- { EmpoweredID LLUUID }
- }
-}
-
-// Revoke the ability to modify your stuff. This message is sent to
-// the simulator, and then passed along to the dataserver for
-// persistance. The dataserver will push live updates through
-// RemoveModifyAbility messages to the simulator.
-// viewer -> simulator -> dataserver
-{
- RevokeModification Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { GranterName Variable 1 }
- }
- {
- RevokedBlock Variable
- { RevokedID LLUUID }
- }
-}
-
-// This message is sent from viewer->simulator->dataserver, which responds with
-// the complete list of all granted agents in the GrantedProxies message.
-{
- RequestGrantedProxies Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
-}
-
-// response to the message above
-{
- GrantedProxies Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- EmpoweredBlock Variable
- { EmpoweredID LLUUID }
- }
- {
- GranterBlock Variable
- { GranterID LLUUID }
- }
-}
-
-// This message is sent from the dataserver to the simulator to let
-// AgentID know that they can modify GranterID's stuff. This message is
-// percolated out to child cameras and the viewer. This message is
-// in response to GrantModification messages, request, or login.
-// ROUTED dataserver -> simulator -> spaceserver -> simulator
-// reliable
-{
- AddModifyAbility Low Trusted Zerocoded
- {
- TargetBlock Single
- { TargetIP IPADDR } // U32 encoded IP
- { TargetPort IPPORT }
- }
- {
- AgentBlock Single
- { AgentID LLUUID }
- }
- {
- GranterBlock Variable
- { GranterID LLUUID }
- }
-}
-
-// This message is sent from the dataserver to the simulator to let
-// AgentID know that they can no longer modify GranterID's stuff. This
-// message is percolated out to child cameras and the viewer. This
-// message is in response to RevokeModification messages.
-// ROUTED dataserver -> simulator -> spaceserver -> simulator
-// reliable
-{
- RemoveModifyAbility Low Trusted Unencoded
- {
- TargetBlock Single
- { TargetIP IPADDR } // U32 encoded IP
- { TargetPort IPPORT }
- }
- {
- AgentBlock Single
- { AgentID LLUUID }
- { RevokerID LLUUID }
- }
-}
-
-// end viewer to simulator section
-
-{
- ViewerStats Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { IP IPADDR }
- { StartTime U32 }
- { RunTime F32 } // F32
- { FPS F32 } // F32
- { Ping F32 } // F32
- { MetersTraveled F64 }
- { RegionsVisited S32 }
- { SysRAM U32 }
- { SysOS Variable 1 } // String
- { SysCPU Variable 1 } // String
- { SysGPU Variable 1 } // String
- }
-
- {
- DownloadTotals Single
- { World U32 }
- { Objects U32 }
- { Textures U32 }
- }
-
- {
- NetStats Multiple 2
- { Bytes U32 }
- { Packets U32 }
- { Compressed U32 }
- { Savings U32 }
- }
-
- {
- FailStats Single
- { SendPacket U32 }
- { Dropped U32 }
- { Resent U32 }
- { FailedResends U32 }
- { OffCircuit U32 }
- { Invalid U32 }
- }
-
- {
- MiscStats Variable
- { Type U32 }
- { Value F64 }
- }
-}
-
-// ScriptAnswerYes
-// reliable
-{
- ScriptAnswerYes Low NotTrusted Unencoded
- {
- Data Single
- { AgentID LLUUID }
- { TaskID LLUUID }
- { ItemID LLUUID }
- { Questions S32 }
- }
-}
-
-
-// complaint/bug-report
-// reliable
-{
- UserReport Low NotTrusted Zerocoded
- {
- ReportData Single
- { ReportType U8 } // BUG=1, COMPLAINT=2
- { Category U8 } // see sequence.user_report_category
- { ReporterID LLUUID }
- { Position LLVector3 } // screenshot position, region-local
- { CheckFlags U8 } // checkboxflags
- { ScreenshotID LLUUID }
- { ObjectID LLUUID }
- { Summary Variable 1 }
- { Details Variable 2 }
- { VersionString Variable 1 }
- }
- {
- MeanCollision Variable
- { Perp LLUUID }
- { Time U32 }
- { Mag F32 }
- { Type U8 }
- }
-}
-
-
-// ***************************************************************************
-// Simulator to Viewer Messages
-// ***************************************************************************
-
-// AlertMessage
-// Specifies the text to be posted in an alert dialog
-{
- AlertMessage Low Trusted Unencoded
- {
- AlertData Single
- { Message Variable 1 }
- }
-}
-
-// Send an AlertMessage to the named agent.
-// usually dataserver->simulator
-{
- AgentAlertMessage Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- AlertData Single
- { Modal BOOL }
- { Message Variable 1 }
- }
-}
-
-
-// MeanCollisionAlert
-// Specifies the text to be posted in an alert dialog
-{
- MeanCollisionAlert Low Trusted Zerocoded
- {
- MeanCollision Variable
- { Victim LLUUID }
- { Perp LLUUID }
- { Time U32 }
- { Mag F32 }
- { Type U8 }
- }
-}
-
-// ViewerFrozenMessage
-// Specifies the text to be posted in an alert dialog
-{
- ViewerFrozenMessage Low Trusted Unencoded
- {
- FrozenData Single
- { Data BOOL }
- }
-}
-
-// Health Message
-// Tells viewer what agent health is
-{
- HealthMessage Low Trusted Zerocoded
- {
- HealthData Single
- { Health F32 }
- }
-}
-
-// ChatFromSimulator
-// Chat text to appear on a user's screen
-// Position is region local.
-// Viewer can optionally use position to animate
-// If audible is CHAT_NOT_AUDIBLE, message will not be valid
-{
- ChatFromSimulator Low Trusted Unencoded
- {
- ChatData Single
- { FromName Variable 1 }
- { SourceID LLUUID } // agent id or object id
- { OwnerID LLUUID } // object's owner
- { SourceType U8 }
- { ChatType U8 }
- { Audible U8 }
- { Position LLVector3 }
- { Message Variable 2 } // UTF-8 text
- }
-}
-
-
-// Simulator statistics packet (goes out to viewer and dataserver/spaceserver)
-{
- SimStats Low Trusted Unencoded
- {
- Region Single
- { RegionX U32 }
- { RegionY U32 }
- { RegionFlags U32 }
- { ObjectCapacity U32 }
- }
- {
- Stat Variable
- { StatID U32 }
- { StatValue F32 }
- }
-}
-
-// viewer -> sim
-// reliable
-{
- RequestRegionInfo Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
-}
-
-// RegionInfo
-// Used to populate UI for both region/estate floater
-// and god tools floater
-// sim -> viewer
-// reliable
-{
- RegionInfo Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- RegionInfo Single
- { SimName Variable 1 } // string
- { EstateID U32 }
- { ParentEstateID U32 }
- { RegionFlags U32 }
- { SimAccess U8 }
- { MaxAgents U8 }
- { BillableFactor F32 }
- { ObjectBonusFactor F32 }
- { WaterHeight F32 }
- { TerrainRaiseLimit F32 }
- { TerrainLowerLimit F32 }
- { PricePerMeter S32 }
- { RedirectGridX S32 }
- { RedirectGridY S32 }
- { UseEstateSun BOOL }
- { SunHour F32 } // last value set by estate or region controls JC
- }
-}
-
-// GodUpdateRegionInfo
-// Sent from viewer to sim after a god has changed some
-// of the parameters in the god tools floater
-// viewer -> sim
-// reliable
-{
- GodUpdateRegionInfo Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- RegionInfo Single
- { SimName Variable 1 } // string
- { EstateID U32 }
- { ParentEstateID U32 }
- { RegionFlags U32 }
- { BillableFactor F32 }
- { PricePerMeter S32 }
- { RedirectGridX S32 }
- { RedirectGridY S32 }
- }
-}
-
-//NearestLandingRegionRequest
-//sim->dataserver
-//Sent from the region to the data server
-//to request the most up to date region for the requesting
-//region to redirect teleports to
-{
- NearestLandingRegionRequest Low Trusted Unencoded
- {
- RequestingRegionData Single
- { RegionHandle U64 }
- }
-}
-
-//NearestLandingPointReply
-//dataserver->sim
-//Sent from the data server to a region in reply
-//to the redirectregion request stating which region
-//the requesting region should redirect teleports to if necessary
-{
- NearestLandingRegionReply Low Trusted Unencoded
- {
- LandingRegionData Single
- { RegionHandle U64 }
- }
-}
-
-//NearestLandingPointUpdated
-//sim->dataserver
-//Sent from a region to the data server
-//to have the dataserver note/clear in the db
-//that the region has updated it's nearest landing point
-{
- NearestLandingRegionUpdated Low Trusted Unencoded
- {
- RegionData Single
- { RegionHandle U64 }
- }
-}
-
-
-//TeleportLandingStatusChanged
-//sim->dataserver
-//Sent from the region to the data server
-//to note that the region's teleportation landing status has changed
-{
- TeleportLandingStatusChanged Low Trusted Unencoded
- {
- RegionData Single
- { RegionHandle U64 }
- }
-}
-
-// RegionHandshake
-// Sent by region to viewer after it has received UseCircuitCode
-// from that viewer.
-// sim -> viewer
-// reliable
-{
- RegionHandshake Low Trusted Zerocoded
- {
- RegionInfo Single
- { RegionFlags U32 }
- { SimAccess U8 }
- { SimName Variable 1 } // string
- { SimOwner LLUUID }
- { IsEstateManager BOOL } // this agent, for this sim
- { WaterHeight F32 }
- { BillableFactor F32 }
- { CacheID LLUUID }
- { TerrainBase0 LLUUID }
- { TerrainBase1 LLUUID }
- { TerrainBase2 LLUUID }
- { TerrainBase3 LLUUID }
- { TerrainDetail0 LLUUID }
- { TerrainDetail1 LLUUID }
- { TerrainDetail2 LLUUID }
- { TerrainDetail3 LLUUID }
- { TerrainStartHeight00 F32 }
- { TerrainStartHeight01 F32 }
- { TerrainStartHeight10 F32 }
- { TerrainStartHeight11 F32 }
- { TerrainHeightRange00 F32 }
- { TerrainHeightRange01 F32 }
- { TerrainHeightRange10 F32 }
- { TerrainHeightRange11 F32 }
- }
-}
-
-// RegionHandshakeReply
-// viewer -> sim
-// reliable
-// Sent after viewer has initialized the (pre-existing)
-// LLViewerRegion with the name, access level, etc. and
-// has loaded the cache for the region.
-// After the simulator receives this, it will start sending
-// data about objects.
-{
- RegionHandshakeReply Low NotTrusted Zerocoded
- {
- RegionInfo Single
- { Flags U32 }
- }
-}
-
-// The CoarseLocationUpdate message is sent to notify the viewer of
-// the location of mappable objects in the region. 1 meter resolution is
-// sufficient for this. The index block is used to show where you are,
-// and where someone you are tracking is located. They are -1 if not
-// applicable.
-{
- CoarseLocationUpdate Medium Trusted Unencoded
- {
- Location Variable
- { X U8 }
- { Y U8 }
- { Z U8 } // Z in meters / 4
- }
- {
- Index Single
- { You S16 }
- { Prey S16 }
- }
-}
-
-// ImageData - sent to viewer to transmit information about an image
-{
- ImageData High Trusted Unencoded
- {
- ImageID Single
- { ID LLUUID }
- { Codec U8 }
- { Size U32 }
- { Packets U16 }
- }
- {
- ImageData Single
- { Data Variable 2 }
- }
-}
-
-// ImagePacket - follow on image data for images having > 1 packet of data
-{
- ImagePacket High Trusted Unencoded
- {
- ImageID Single
- { ID LLUUID }
- { Packet U16 }
- }
- {
- ImageData Single
- { Data Variable 2 }
- }
-}
-
-// LayerData - Sent to viewer - encodes layer data
-
-{
- LayerData High Trusted Unencoded
- {
- LayerID Single
- { Type U8 }
-
- }
- {
- LayerData Single
- { Data Variable 2 }
- }
-}
-
-// ObjectUpdate - Sent by objects from the simulator to the viewer
-//
-// If only one ImageID is sent for an object type that has more than
-// one face, the same image is repeated on each subsequent face.
-//
-// NameValue is a list of name-value strings, separated by \n characters,
-// terminated by \0
-//
-// Data is type-specific opaque data for this object
-{
- ObjectUpdate High Trusted Zerocoded
- {
- RegionData Single
- { RegionHandle U64 }
- { TimeDilation U16 }
- }
- {
- ObjectData Variable
- { ID U32 }
- { State U8 }
-
- { FullID LLUUID }
- { CRC U32 } // TEMPORARY HACK FOR JAMES
- { PCode U8 }
- { Material U8 }
- { ClickAction U8 }
- { Scale LLVector3 }
- { ObjectData Variable 1 }
-
- { ParentID U32 }
- { UpdateFlags U32 } // U32, see object_flags.h
-
- { PathCurve U8 }
- { ProfileCurve U8 }
- { PathBegin U8 } // 0 to 1, quanta = 0.01
- { PathEnd U8 } // 0 to 1, quanta = 0.01
- { PathScaleX U8 } // 0 to 1, quanta = 0.01
- { PathScaleY U8 } // 0 to 1, quanta = 0.01
- { PathShearX U8 } // -.5 to .5, quanta = 0.01
- { PathShearY U8 } // -.5 to .5, quanta = 0.01
- { PathTwist S8 } // -1 to 1, quanta = 0.01
- { PathTwistBegin S8 } // -1 to 1, quanta = 0.01
- { PathRadiusOffset S8 } // -1 to 1, quanta = 0.01
- { PathTaperX S8 } // -1 to 1, quanta = 0.01
- { PathTaperY S8 } // -1 to 1, quanta = 0.01
- { PathRevolutions U8 } // 0 to 3, quanta = 0.015
- { PathSkew S8 } // -1 to 1, quanta = 0.01
- { ProfileBegin U8 } // 0 to 1, quanta = 0.01
- { ProfileEnd U8 } // 0 to 1, quanta = 0.01
- { ProfileHollow U8 } // 0 to 1, quanta = 0.01
-
- { TextureEntry Variable 2 }
- { TextureAnim Variable 1 }
-
- { NameValue Variable 2 }
- { Data Variable 2 }
- { Text Variable 1 } // llSetText() hovering text
- { TextColor Fixed 4 } // actually, a LLColor4U
- { MediaURL Variable 1 } // URL for web page, movie, etc.
-
- // Info for particle systems
- { PSBlock Variable 1 }
-
- // Extra parameters
- { ExtraParams Variable 1 }
-
- // info for looped attached sounds
- // because these are almost always all zero
- // the hit after zero-coding is only 2 bytes
- // not the 42 you see here
- { Sound LLUUID }
- { OwnerID LLUUID } // HACK object's owner id, only set if non-null sound, for muting
- { Gain F32 }
- { Flags U8 }
- { Radius F32 } // cutoff radius
-
- // joint info -- is sent in the update of each joint-child-root
- { JointType U8 }
- { JointPivot LLVector3 }
- { JointAxisOrAnchor LLVector3 }
- }
-}
-
-
-// ObjectUpdateCompressed
-{
- ObjectUpdateCompressed High Trusted Unencoded
- {
- RegionData Single
- { RegionHandle U64 }
- { TimeDilation U16 }
- }
- {
- ObjectData Variable
- { UpdateFlags U32 }
- { Data Variable 2 }
- }
-}
-
-// ObjectUpdateCached
-// reliable
-{
- ObjectUpdateCached High Trusted Unencoded
- {
- RegionData Single
- { RegionHandle U64 }
- { TimeDilation U16 }
- }
- {
- ObjectData Variable
- { ID U32 }
- { CRC U32 }
- { UpdateFlags U32 }
- }
-}
-
-// packed terse object udpate format
-{
- ImprovedTerseObjectUpdate High Trusted Unencoded
- {
- RegionData Single
- { RegionHandle U64 }
- { TimeDilation U16 }
- }
- {
- ObjectData Variable
- { Data Variable 1 }
- { TextureEntry Variable 2 }
- }
-}
-
-// KillObject - Sent by objects to the viewer to tell them to kill themselves
-
-{
- KillObject High Trusted Unencoded
- {
- ObjectData Variable
- { ID U32 }
- }
-}
-
-// AgentToNewRegion - tells the viewer that it's agent has moved
-
-{
- AgentToNewRegion High Trusted Unencoded
- {
- RegionData Single
- { SessionID LLUUID }
- { IP IPADDR }
- { Port IPPORT }
- { Handle U64 }
- }
-}
-
-// CrossedRegion - new way to tell a viewer it has gone across a region
-// boundary
-{
- CrossedRegion Medium Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- RegionData Single
- { SimIP IPADDR }
- { SimPort IPPORT }
- { RegionHandle U64 }
- { SeedCapability Variable 2 } // URL
- }
- {
- Info Single
- { Position LLVector3 }
- { LookAt LLVector3 }
- }
-}
-
-// SimulatorViewerTimeMessage - Allows viewer to resynch to world time
-
-{
- SimulatorViewerTimeMessage Low Trusted Unencoded
- {
- TimeInfo Single
- { UsecSinceStart U64 }
- { SecPerDay U32 }
- { SecPerYear U32 }
- { SunDirection LLVector3 }
- { SunPhase F32 }
- { SunAngVelocity LLVector3 }
- }
-}
-
-// EnableSimulator - Preps a viewer to receive data from a simulator
-
-{
- EnableSimulator Low Trusted Unencoded
- {
- SimulatorInfo Single
- { Handle U64 }
- { IP IPADDR }
- { Port IPPORT }
- }
-}
-
-// DisableThisSimulator - Tells a viewer not to expect data from this simulator anymore
-
-{
- DisableSimulator Low Trusted Unencoded
-}
-
-// ConfirmEnableSimulator - A confirmation message sent from simulator to neighbors that the simulator
-// has successfully been enabled by the viewer
-
-{
- ConfirmEnableSimulator Medium Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
-}
-
-//-----------------------------------------------------------------------------
-// New Transfer system
-//-----------------------------------------------------------------------------
-
-// Request a new transfer (target->source)
-{
- TransferRequest Low NotTrusted Zerocoded
- {
- TransferInfo Single
- { TransferID LLUUID }
- { ChannelType S32 }
- { SourceType S32 }
- { Priority F32 }
- { Params Variable 2 }
- }
-}
-
-// Return info about a transfer/initiate transfer (source->target)
-// Possibly should have a Params field like above
-{
- TransferInfo Low NotTrusted Zerocoded
- {
- TransferInfo Single
- { TransferID LLUUID }
- { ChannelType S32 }
- { TargetType S32 }
- { Status S32 }
- { Size S32 }
- }
-}
-
-{
- TransferPacket High NotTrusted Unencoded
- {
- TransferData Single
- { TransferID LLUUID }
- { ChannelType S32 }
- { Packet S32 }
- { Status S32 }
- { Data Variable 2 }
- }
-}
-
-// Abort a transfer in progress (either from target->source or source->target)
-{
- TransferAbort Low NotTrusted Zerocoded
- {
- TransferInfo Single
- { TransferID LLUUID }
- { ChannelType S32 }
- }
-}
-
-// Change the priority of a transfer (target->source)
-{
- TransferPriority Low NotTrusted Zerocoded
- {
- TransferInfo Single
- { TransferID LLUUID }
- { ChannelType S32 }
- { Priority F32 }
- }
-}
-
-//-----------------------------------------------------------------------------
-// General file transfer
-//-----------------------------------------------------------------------------
-
-// RequestXfer - request an arbitrary xfer
-{
- RequestXfer Low NotTrusted Zerocoded
- {
- XferID Single
- { ID U64 }
- { Filename Variable 1 }
- { FilePath U8 } // ELLPath
- { DeleteOnCompletion BOOL } // BOOL
- { UseBigPackets BOOL } // BOOL
- { VFileID LLUUID }
- { VFileType S16 }
- }
-}
-
-// SendXferPacket - send an additional packet of an arbitrary xfer from sim -> viewer
-{
- SendXferPacket High NotTrusted Unencoded
- {
- XferID Single
- { ID U64 }
- { Packet U32 }
- }
- {
- DataPacket Single
- { Data Variable 2 }
- }
-}
-
-// ConfirmXferPacket
-{
- ConfirmXferPacket High NotTrusted Unencoded
- {
- XferID Single
- { ID U64 }
- { Packet U32 }
- }
-}
-
-// AbortXfer
-{
- AbortXfer Low NotTrusted Unencoded
- {
- XferID Single
- { ID U64 }
- { Result S32 }
- }
-}
-
-//-----------------------------------------------------------------------------
-// Avatar information
-//-----------------------------------------------------------------------------
-
-
-// RequestAvatarInfo
-{
- RequestAvatarInfo Low Trusted Unencoded
- {
- DataBlock Single
- { FullID LLUUID }
- }
-}
-
-// AvatarAnimation - Update animation state
-// simulator --> viewer
-{
- AvatarAnimation High Trusted Unencoded
- {
- Sender Single
- { ID LLUUID }
- }
- {
- AnimationList Variable
- { AnimID LLUUID }
- { AnimSequenceID S32 }
- }
- {
- AnimationSourceList Variable
- { ObjectID LLUUID }
- }
-}
-
-// AvatarAppearance - Update visual params
-{
- AvatarAppearance Low Trusted Zerocoded
- {
- Sender Single
- { ID LLUUID }
- { IsTrial BOOL }
- }
- {
- ObjectData Single
- { TextureEntry Variable 2 }
- }
- {
- VisualParam Variable
- { ParamValue U8 }
- }
-}
-
-// AvatarSitResponse - response to a request to sit on an object
-{
- AvatarSitResponse High Trusted Zerocoded
- {
- SitObject Single
- { ID LLUUID }
- }
- {
- SitTransform Single
- { AutoPilot BOOL }
- { SitPosition LLVector3 }
- { SitRotation LLQuaternion }
- { CameraEyeOffset LLVector3 }
- { CameraAtOffset LLVector3 }
- { ForceMouselook BOOL }
- }
-}
-
-// SetFollowCamProperties
-{
- SetFollowCamProperties Low Trusted Unencoded
- {
- ObjectData Single
- { ObjectID LLUUID }
- }
- {
- CameraProperty Variable
- { Type S32 }
- { Value F32 }
- }
-}
-
-// ClearFollowCamProperties
-{
- ClearFollowCamProperties Low Trusted Unencoded
- {
- ObjectData Single
- { ObjectID LLUUID }
- }
-}
-
-// CameraConstraint - new camera distance limit (based on collision with objects)
-{
- CameraConstraint High Trusted Zerocoded
- {
- CameraCollidePlane Single
- { Plane LLVector4 }
- }
-}
-
-// ObjectProperties
-// Extended information such as creator, permissions, etc.
-// Medium because potentially driven by mouse hover events.
-{
- 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 }
-// { TaxRate F32 } // F32
- { SaleType U8 } // U8 -> EForSale
- { SalePrice S32 }
- { AggregatePerms U8 }
- { AggregatePermTextures U8 }
- { AggregatePermTexturesOwner U8 }
- { Category U32 } // LLCategory
- { InventorySerial S16 } // S16
- { ItemID LLUUID }
- { FolderID LLUUID }
- { FromTaskID LLUUID }
- { LastOwnerID LLUUID }
- { Name Variable 1 }
- { Description Variable 1 }
- { TouchName Variable 1 }
- { SitName Variable 1 }
- { TextureID Variable 1 }
- }
-}
-
-// ObjectPropertiesFamily
-// Medium because potentially driven by mouse hover events.
-{
- ObjectPropertiesFamily Medium Trusted Zerocoded
- {
- ObjectData Single
- { RequestFlags U32 }
- { ObjectID LLUUID }
- { OwnerID LLUUID }
- { GroupID LLUUID }
- { BaseMask U32 }
- { OwnerMask U32 }
- { GroupMask U32 }
- { EveryoneMask U32 }
- { NextOwnerMask U32 }
- { OwnershipCost S32 }
- { SaleType U8 } // U8 -> EForSale
- { SalePrice S32 }
- { Category U32 } // LLCategory
- { LastOwnerID LLUUID }
- { Name Variable 1 }
- { Description Variable 1 }
- }
-}
-
-// RequestPayPrice
-// viewer -> sim
-{
- RequestPayPrice Low NotTrusted Unencoded
- {
- ObjectData Single
- { ObjectID LLUUID }
- }
-}
-
-// PayPriceReply
-// sim -> viewer
-{
- PayPriceReply Low Trusted Unencoded
- {
- ObjectData Single
- { ObjectID LLUUID }
- { DefaultPayPrice S32 }
- }
- {
- ButtonData Variable
-
- { PayButton S32 }
- }
-}
-
-// KickUser
-// *FIXME*
-// Kick off a logged-in user, such as when two people log in with the
-// same account name.
-// ROUTED dataserver -> userserver -> spaceserver -> simulator -> viewer
-// reliable, but that may not matter if a system component is quitting
-{
- KickUser Low Trusted Unencoded
- {
- TargetBlock Single
- { TargetIP IPADDR } // U32 encoded IP
- { TargetPort IPPORT }
- }
- {
- UserInfo Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { Reason Variable 2 } // string
- }
-}
-
-// ack sent from the simulator up to the main database so that login
-// can continue.
-{
- KickUserAck Low Trusted Unencoded
- {
- UserInfo Single
- { SessionID LLUUID }
- { Flags U32 }
- }
-}
-
-// GodKickUser
-// When a god wants someone kicked
-// viewer -> sim
-// reliable
-{
- GodKickUser Low NotTrusted Unencoded
- {
- UserInfo Single
- { GodID LLUUID }
- { GodSessionID LLUUID }
- { AgentID LLUUID }
- { KickFlags U32 }
- { Reason Variable 2 } // string
- }
-}
-
-// SystemKickUser
-// user->space, reliable
-{
- SystemKickUser Low Trusted Unencoded
- {
- AgentInfo Variable
- { AgentID LLUUID }
- }
-}
-
-// EjectUser
-// viewer -> sim
-// reliable
-{
- EjectUser Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { TargetID LLUUID }
- { Flags U32 }
- }
-}
-
-// FreezeUser
-// Freeze someone who is on my land.
-// viewer -> sim
-// reliable
-{
- FreezeUser Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { TargetID LLUUID }
- { Flags U32 }
- }
-}
-
-
-// AvatarPropertiesRequest
-// viewer -> simulator
-// reliable
-{
- AvatarPropertiesRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { AvatarID LLUUID }
- }
-}
-
-// AvatarPropertiesRequestBackend
-// simulator -> dataserver
-// reliable
-{
- AvatarPropertiesRequestBackend Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { AvatarID LLUUID }
- { GodLevel U8 }
- }
-}
-// AvatarPropertiesReply
-// dataserver -> simulator
-// simulator -> viewer
-// reliable
-{
- AvatarPropertiesReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID } // your id
- { AvatarID LLUUID } // avatar you're asking about
- }
- {
- PropertiesData Single
- { ImageID LLUUID }
- { FLImageID LLUUID }
- { PartnerID LLUUID }
- { AboutText Variable 2 } // string, up to 512
- { WantToMask U32 }
- { WantToText Variable 1 } // string
- { SkillsMask U32 }
- { SkillsText Variable 1 } // string
- { FLAboutText Variable 1 } // string
- { BornOn Variable 1 } // string
- { CharterMember Variable 1 } // special - usually U8
- { AllowPublish BOOL } // whether profile is externally visible or not
- { MaturePublish BOOL } // profile is "mature"
- { Identified BOOL } // whether avatar has provided payment info
- { Transacted BOOL } // whether avatar has actively used payment info
- }
-}
-
-// AvatarGroupsReply
-// dataserver -> simulator
-// simulator -> viewer
-// reliable
-{
- AvatarGroupsReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID } // your id
- { AvatarID LLUUID } // avatar you're asking about
- }
- {
- GroupData Variable
- { GroupPowers U64 }
- { AcceptNotices BOOL }
- { GroupTitle Variable 1 }
- { GroupID LLUUID }
- { GroupName Variable 1 }
- { GroupInsigniaID LLUUID }
- }
-}
-
-
-// AvatarPropertiesUpdate
-// viewer -> simulator
-// simulator -> dataserver
-// reliable
-{
- AvatarPropertiesUpdate Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- PropertiesData Single
- { AvatarID LLUUID }
- { ImageID LLUUID }
- { FLImageID LLUUID }
- { AboutText Variable 2 } // string, up to 512
- { FLAboutText Variable 1 }
- { WantToMask U32 }
- { WantToText Variable 1 } // string
- { SkillsMask U32 }
- { SkillsText Variable 1 } // string
- { AllowPublish BOOL } // whether profile is externally visible or not
- { MaturePublish BOOL } // profile is "mature"
- }
-}
-
-// AvatarStatisticsReply
-// dataserver -> simulator
-// simulator -> viewer
-// reliable
-{
- AvatarStatisticsReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- AvatarData Single
- { AvatarID LLUUID }
- }
- {
- StatisticsData Variable
- { Name Variable 1 } // string
- { Positive S32 }
- { Negative S32 }
- }
-}
-
-
-// AvatarNotesReply
-// dataserver -> simulator
-// simulator -> viewer
-// reliable
-{
- AvatarNotesReply Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- Data Single
- { TargetID LLUUID }
- { Notes Variable 2 } // string
- }
-}
-
-
-// AvatarNotesUpdate
-// viewer -> simulator -> dataserver
-// reliable
-{
- AvatarNotesUpdate Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- Data Single
- { TargetID LLUUID }
- { Notes Variable 2 } // string
- }
-}
-
-
-// AvatarPicksReply
-// dataserver -> simulator -> viewer
-// Send the header information for this avatar's picks
-// This fills in the tabs of the Picks panel.
-// reliable
-{
- AvatarPicksReply Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { TargetID LLUUID }
- }
- {
- Data Variable
- { PickID LLUUID }
- { PickName Variable 1 } // string
- }
-}
-
-
-// EventInfoRequest
-// viewer -> simulator
-// simulator -> dataserver
-// reliable
-{
- EventInfoRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- EventData Single
- { EventID U32 }
- }
-}
-
-
-// EventInfoReply
-// dataserver -> simulator
-// simulator -> viewer
-// reliable
-{
- EventInfoReply Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- EventData Single
- { EventID U32 }
- { Creator Variable 1 }
- { Name Variable 1 }
- { Category Variable 1 }
- { Desc Variable 2 }
- { Date Variable 1 }
- { DateUTC U32 }
- { Duration U32 }
- { Cover U32 }
- { Amount U32 }
- { SimName Variable 1 }
- { GlobalPos LLVector3d }
- { EventFlags U32 }
- }
-}
-
-
-// EventNotificationAddRequest
-// viewer -> simulator
-// simulator -> dataserver
-// reliable
-{
- EventNotificationAddRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- EventData Single
- { EventID U32 }
- }
-}
-
-
-// EventNotificationRemoveRequest
-// viewer -> simulator
-// simulator -> dataserver
-// reliable
-{
- EventNotificationRemoveRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- EventData Single
- { EventID U32 }
- }
-}
-
-// EventGodDelete
-// viewer -> simulator
-// simulator -> dataserver
-// QueryData is used to resend a search result after the deletion
-// reliable
-{
- EventGodDelete Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- EventData Single
- { EventID U32 }
- }
- {
- QueryData Single
- { QueryID LLUUID }
- { QueryText Variable 1 }
- { QueryFlags U32 }
- { QueryStart S32 } // prev/next page support
- }
-}
-
-// PickInfoRequest
-// viewer -> simulator
-// simulator -> dataserver
-// If CreatorID is not null, then we're looking for an agent pick
-// or picks.
-// reliable
-{
- PickInfoRequest Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { PickID LLUUID }
- }
-}
-
-
-// PickInfoReply
-// dataserver -> simulator
-// simulator -> viewer
-// reliable
-{
- PickInfoReply Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- Data Single
- { PickID LLUUID }
- { CreatorID LLUUID }
- { TopPick BOOL }
- { ParcelID LLUUID }
- { Name Variable 1 }
- { Desc Variable 2 }
- { SnapshotID LLUUID }
- { User Variable 1 }
- { OriginalName Variable 1 }
- { SimName Variable 1 }
- { PosGlobal LLVector3d }
- { SortOrder S32 }
- { Enabled BOOL }
- }
-}
-
-
-// PickInfoUpdate
-// Update a pick. ParcelID is set on the simulator as the message
-// passes through.
-// If TopPick is TRUE, the simulator will only pass on the message
-// if the agent_id is a god.
-// viewer -> simulator -> dataserver
-// reliable
-{
- PickInfoUpdate Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { PickID LLUUID }
- { CreatorID LLUUID }
- { TopPick BOOL }
- { ParcelID LLUUID }
- { Name Variable 1 }
- { Desc Variable 2 }
- { SnapshotID LLUUID }
- { PosGlobal LLVector3d }
- { SortOrder S32 }
- { Enabled BOOL }
- }
-}
-
-
-// PickDelete
-// Delete a non-top pick from the database.
-// viewer -> simulator -> dataserver
-// reliable
-{
- PickDelete Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { PickID LLUUID }
- }
-}
-
-// PickGodDelete
-// Delete a pick from the database.
-// QueryID is needed so database can send a repeat list of
-// picks.
-// viewer -> simulator -> dataserver
-// reliable
-{
- PickGodDelete Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { PickID LLUUID }
- { QueryID LLUUID }
- }
-}
-
-
-// ScriptQuestion
-// reliable
-{
- ScriptQuestion Low Trusted Unencoded
- {
- Data Single
- { TaskID LLUUID }
- { ItemID LLUUID }
- { ObjectName Variable 1 }
- { ObjectOwner Variable 1 }
- { Questions S32 }
- }
-}
-
-// ScriptControlChange
-// reliable
-{
- ScriptControlChange Low Trusted Unencoded
- {
- Data Variable
- { TakeControls BOOL }
- { Controls U32 }
- { PassToAgent BOOL }
- }
-}
-
-// ScriptDialog
-// sim -> viewer
-// reliable
-{
- ScriptDialog Low Trusted Zerocoded
- {
- Data Single
- { ObjectID LLUUID }
- { FirstName Variable 1 }
- { LastName Variable 1 }
- { ObjectName Variable 1 }
- { Message Variable 2 }
- { ChatChannel S32 }
- { ImageID LLUUID }
- }
- {
- Buttons Variable
- { ButtonLabel Variable 1 }
- }
-}
-
-
-// ScriptDialogReply
-// viewer -> sim
-// reliable
-{
- ScriptDialogReply Low NotTrusted Zerocoded
- {
- Data Single
- { AgentID LLUUID }
- { ObjectID LLUUID }
- { ChatChannel S32 }
- { ButtonIndex S32 }
- { ButtonLabel Variable 1 }
- }
-}
-
-
-// ForceScriptControlRelease
-// reliable
-{
- ForceScriptControlRelease Low NotTrusted Unencoded
- {
- Data Single
- { ID LLUUID }
- }
-}
-
-// RevokePermissions
-// reliable
-{
- RevokePermissions Low NotTrusted Unencoded
- {
- Data Single
- { AgentID LLUUID }
- { ObjectID LLUUID }
- { ObjectPermissions U32 }
- }
-}
-
-// LoadURL
-// sim -> viewer
-// Ask the user if they would like to load a URL
-// reliable
-{
- LoadURL Low Trusted Unencoded
- {
- Data Single
- { ObjectName Variable 1 }
- { ObjectID LLUUID }
- { OwnerID LLUUID }
- { OwnerIsGroup BOOL }
- { Message Variable 1 }
- { URL Variable 1 }
- }
-}
-
-// ScriptTeleportRequest
-// reliable
-{
- ScriptTeleportRequest Low Trusted Unencoded
- {
- Data Single
- { ObjectName Variable 1 }
- { SimName Variable 1 }
- { SimPosition LLVector3 }
- { LookAt LLVector3 }
- }
-}
-
-
-
-
-// ***************************************************************************
-// Land Parcel system
-// ***************************************************************************
-
-// ParcelOverlay
-// We send N packets per region to the viewer.
-// N = 4, currently. At 256x256 meter regions, 4x4 meter parcel grid,
-// there are 4096 parcel units per region. At N = 4, that's 1024 units
-// per packet, allowing 8 bit bytes.
-// sim -> viewer
-// reliable
-{
- ParcelOverlay Low Trusted Zerocoded
- {
- ParcelData Single
- { SequenceID S32 } // 0...3, which piece of region
- { Data Variable 2 } // packed bit-field, (grids*grids)/N
- }
-}
-
-
-// ParcelPropertiesRequest
-// SequenceID should be -1 or -2, and is echoed back in the
-// parcel properties message.
-// viewer -> sim
-// reliable
-{
- ParcelPropertiesRequest Medium NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ParcelData Single
- { SequenceID S32 }
- { West F32 }
- { South F32 }
- { East F32 }
- { North F32 }
- { SnapSelection BOOL }
- }
-}
-
-// ParcelPropertiesRequestByID
-// viewer -> sim
-// reliable
-{
- ParcelPropertiesRequestByID Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ParcelData Single
- { SequenceID S32 }
- { LocalID S32 }
- }
-}
-
-// ParcelProperties
-// sequence id = -1 for parcels that you explicitly selected
-// For agents, sequence id increments every time the agent transits into
-// a new parcel. It is used to detect out-of-order agent parcel info updates.
-// Bitmap = packed bit field, one bit per parcel grid, on if that grid is
-// part of the selected parcel.
-// sim -> viewer
-// WARNING: This packet is potentially large. With max length name,
-// description, music URL and media URL, it is 1526 + sizeof ( LLUUID ) bytes.
-{
- ParcelProperties High Trusted Zerocoded
- {
- ParcelData Single
- { RequestResult S32 }
- { SequenceID S32 }
- { SnapSelection BOOL }
- { SelfCount S32 }
- { OtherCount S32 }
- { PublicCount S32 }
- { LocalID S32 }
- { OwnerID LLUUID }
- { IsGroupOwned BOOL }
- { AuctionID U32 }
- { ReservedNewbie BOOL }
- { ClaimDate S32 } // time_t
- { ClaimPrice S32 }
- { RentPrice S32 }
- { AABBMin LLVector3 }
- { AABBMax LLVector3 }
- { Bitmap Variable 2 } // packed bit-field
- { Area S32 }
- { Status U8 } // owned vs. pending
- { SimWideMaxPrims S32 }
- { SimWideTotalPrims S32 }
- { MaxPrims S32 }
- { TotalPrims S32 }
- { OwnerPrims S32 }
- { GroupPrims S32 }
- { OtherPrims S32 }
- { SelectedPrims S32 }
- { ParcelPrimBonus F32 }
-
- { OtherCleanTime S32 }
-
- { ParcelFlags U32 }
- { SalePrice S32 }
- { Name Variable 1 } // string
- { Desc Variable 1 } // string
- { MusicURL Variable 1 } // string
- { MediaURL Variable 1 } // string
- { MediaID LLUUID }
- { MediaAutoScale U8 }
- { GroupID LLUUID }
- { PassPrice S32 }
- { PassHours F32 }
- { Category U8 }
- { AuthBuyerID LLUUID }
- { SnapshotID LLUUID }
- { UserLocation LLVector3 }
- { UserLookAt LLVector3 }
- { LandingType U8 }
- { RegionPushOverride BOOL }
- { RegionDenyAnonymous BOOL }
- { RegionDenyIdentified BOOL }
- { RegionDenyTransacted BOOL }
- }
-}
-
-// ParcelPropertiesUpdate
-// viewer -> sim
-// reliable
-{
- ParcelPropertiesUpdate Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ParcelData Single
- { LocalID S32 }
- { Flags U32 }
-
- { ParcelFlags U32 }
- { SalePrice S32 }
- { Name Variable 1 } // string
- { Desc Variable 1 } // string
- { MusicURL Variable 1 } // string
- { MediaURL Variable 1 } // string
- { MediaID LLUUID }
- { MediaAutoScale U8 }
- { GroupID LLUUID }
- { PassPrice S32 }
- { PassHours F32 }
- { Category U8 }
- { AuthBuyerID LLUUID }
- { SnapshotID LLUUID }
- { UserLocation LLVector3 }
- { UserLookAt LLVector3 }
- { LandingType U8 }
- }
-}
-
-// ParcelReturnObjects
-// viewer -> sim
-// reliable
-{
- ParcelReturnObjects Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ParcelData Single
- { LocalID S32 }
- { ReturnType U32 }
- }
- {
- TaskIDs Variable
- { TaskID LLUUID }
- }
- {
- OwnerIDs Variable
- { OwnerID LLUUID }
- }
-}
-
-// ParcelSetOtherCleanTime
-// viewer -> sim
-// reliable
-{
- ParcelSetOtherCleanTime Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ParcelData Single
- { LocalID S32 }
- { OtherCleanTime S32 }
- }
-}
-
-
-// Disable makes objects nonphysical and turns off their scripts.
-// ParcelDisableObjects
-// viewer -> sim
-// reliable
-{
- ParcelDisableObjects Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ParcelData Single
- { LocalID S32 }
- { ReturnType U32 }
- }
- {
- TaskIDs Variable
- { TaskID LLUUID }
- }
- {
- OwnerIDs Variable
- { OwnerID LLUUID }
- }
-}
-
-
-// ParcelSelectObjects
-// viewer -> sim
-// reliable
-{
- ParcelSelectObjects Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ParcelData Single
- { LocalID S32 }
- { ReturnType U32 }
- }
- {
- ReturnIDs Variable
- { ReturnID LLUUID }
- }
-}
-
-
-// EstateCovenantRequest
-// viewer -> sim
-// reliable
-{
- EstateCovenantRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
-}
-
-// EstateCovenantReply
-// sim -> viewer
-// reliable
-{
- EstateCovenantReply Low Trusted Unencoded
- {
- Data Single
- { CovenantID LLUUID }
- { CovenantTimestamp U32 }
- { EstateName Variable 1 } // string
- { EstateOwnerID LLUUID }
- }
-}
-
-
-// ForceObjectSelect
-// sim -> viewer
-// reliable
-{
- ForceObjectSelect Low Trusted Unencoded
- {
- Header Single
- { ResetList BOOL }
- }
- {
- Data Variable
- { LocalID U32 }
- }
-}
-
-
-// ParcelBuyPass - purchase a temporary access pass
-// viewer -> sim
-// reliable
-{
- ParcelBuyPass Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ParcelData Single
- { LocalID S32 }
- }
-}
-
-// ParcelDeedToGroup - deed a patch of land to a group
-// viewer -> sim
-// reliable
-{
- ParcelDeedToGroup Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { GroupID LLUUID }
- { LocalID S32 } // parcel id
- }
-}
-
-// reserved for when island owners force re-claim parcel
-{
- ParcelReclaim Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { LocalID S32 } // parcel id
- }
-}
-
-// ParcelClaim - change the owner of a patch of land
-// viewer -> sim
-// reliable
-{
- ParcelClaim Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { GroupID LLUUID }
- { IsGroupOwned BOOL }
- { Final BOOL } // true if buyer is in tier
- }
- {
- ParcelData Variable
- { West F32 }
- { South F32 }
- { East F32 }
- { North F32 }
- }
-}
-
-// ParcelJoin - Take all parcels which are owned by agent and inside
-// rectangle, and make them 1 parcel if they all are leased.
-// viewer -> sim
-// reliable
-{
- ParcelJoin Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ParcelData Single
- { West F32 }
- { South F32 }
- { East F32 }
- { North F32 }
- }
-}
-
-// ParcelDivide
-// If the selection is a subsection of exactly one parcel,
-// chop out that section and make a new parcel of it.
-// viewer -> sim
-// reliable
-{
- ParcelDivide Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ParcelData Single
- { West F32 }
- { South F32 }
- { East F32 }
- { North F32 }
- }
-}
-
-// ParcelRelease
-// Release a parcel to public
-// viewer -> sim
-// reliable
-{
- ParcelRelease Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { LocalID S32 } // parcel ID
- }
-}
-
-// ParcelBuy - change the owner of a patch of land.
-// viewer -> sim
-// reliable
-{
- ParcelBuy Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { GroupID LLUUID }
- { IsGroupOwned BOOL }
- { RemoveContribution BOOL }
- { LocalID S32 }
- { Final BOOL } // true if buyer is in tier
- }
-}
-
-
-// ParcelGodForceOwner Unencoded
-{
- ParcelGodForceOwner Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { OwnerID LLUUID }
- { LocalID S32 } // parcel ID
- }
-}
-
-
-// viewer -> sim
-// ParcelAccessListRequest
-{
- ParcelAccessListRequest Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { SequenceID S32 }
- { Flags U32 }
- { LocalID S32 }
- }
-}
-
-
-// sim -> viewer
-// ParcelAccessListReply
-{
- ParcelAccessListReply Low Trusted Zerocoded
- {
- Data Single
- { AgentID LLUUID }
- { SequenceID S32 }
- { Flags U32 }
- { LocalID S32 }
- }
- {
- List Variable
- { ID LLUUID }
- { Time S32 } // time_t
- { Flags U32 }
- }
-}
-
-// viewer -> sim
-// ParcelAccessListUpdate
-{
- ParcelAccessListUpdate Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { Flags U32 }
- { LocalID S32 }
- { TransactionID LLUUID }
- { SequenceID S32 }
- { Sections S32 }
- }
- {
- List Variable
- { ID LLUUID }
- { Time S32 } // time_t
- { Flags U32 }
- }
-}
-
-
-// viewer -> sim -> dataserver
-// reliable
-{
- ParcelDwellRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { LocalID S32 }
- { ParcelID LLUUID } // filled in on sim
- }
-}
-
-
-// dataserver -> sim -> viewer
-// reliable
-{
- ParcelDwellReply Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- Data Single
- { LocalID S32 }
- { ParcelID LLUUID }
- { Dwell F32 }
- }
-}
-
-// sim -> dataserver
-// This message is used to check if a user can buy a parcel. If
-// successful, the transaction is approved through a money balance reply
-// with the same transaction id.
-{
- RequestParcelTransfer Low Trusted Zerocoded
- {
- Data Single
- { TransactionID LLUUID }
- { TransactionTime U32 } // utc seconds since epoch
- { SourceID LLUUID }
- { DestID LLUUID }
- { OwnerID LLUUID }
- { Flags U8 } // see lltransactiontypes.h
- { TransactionType S32 } // see lltransactiontypes.h
- { Amount S32 }
- { BillableArea S32 }
- { ActualArea S32 }
- { Final BOOL } // true if buyer should be in tier
- { ReservedNewbie BOOL }
- }
-}
-
-// sim ->dataserver
-// This message is used to send up complete parcel properties for
-// persistance in the database.
-// If you add something here, you should probably also change the
-// simulator's database update query on startup.
-{
- UpdateParcel Low Trusted Zerocoded
- {
- ParcelData Single
- { ParcelID LLUUID }
- { RegionHandle U64 }
- { OwnerID LLUUID }
- { GroupOwned BOOL }
- { Status U8 }
- { Name Variable 1 }
- { Description Variable 1 }
- { MusicURL Variable 1 }
- { RegionX F32 }
- { RegionY F32 }
- { ActualArea S32 }
- { BillableArea S32 }
- { ShowDir BOOL }
- { IsForSale BOOL }
- { Category U8 }
- { SnapshotID LLUUID }
- { UserLocation LLVector3 }
- { SalePrice S32 }
- { AuthorizedBuyerID LLUUID }
- { ReservedNewbie BOOL }
- { AllowPublish BOOL }
- { MaturePublish BOOL }
- }
-}
-
-// sim -> dataserver or space ->sim
-// This message is used to tell the dataserver that a parcel has been
-// removed.
-{
- RemoveParcel Low Trusted Unencoded
- {
- ParcelData Variable
- { ParcelID LLUUID }
- }
-}
-
-// sim -> dataserver
-// Merges some of the database information for parcels (dwell).
-{
- MergeParcel Low Trusted Unencoded
- {
- MasterParcelData Single
- { MasterID LLUUID }
- }
- {
- SlaveParcelData Variable
- { SlaveID LLUUID }
- }
-}
-
-// sim -> dataserver
-{
- LogParcelChanges Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- RegionData Single
- { RegionHandle U64 }
- }
- {
- ParcelData Variable
- { ParcelID LLUUID }
- { OwnerID LLUUID }
- { IsOwnerGroup BOOL }
- { ActualArea S32 }
- { Action S8 }
- { TransactionID LLUUID }
- }
-}
-
-// userserver -> dataserver
-// Used to request all parcel sales in the database
-//{
-// RequestParcelSales Low Trusted Unencoded
-//}
-
-// dataserver -> userserver -> spaceserver
-// response of all (up to max packet size) parcel sales in the database.
-// each block in the meassage represents a parcel that a human agreed
-// to pay US$.
-//{
-// BulkParcelSales Low Trusted Unencoded
-// {
-// ParcelData Variable
-// { RegionHandle U64 }
-// { ParcelID LLUUID }
-// { BuyerID LLUUID }
-// }
-//}
-
-// sim -> dataserver
-{
- CheckParcelSales Low Trusted Unencoded
- {
- RegionData Variable
- { RegionHandle U64 }
- }
-}
-
-// dataserver -> simulator
-// tell a particular simulator to finish parcel sale.
-{
- ParcelSales Low Trusted Unencoded
- {
- ParcelData Variable
- { ParcelID LLUUID }
- { BuyerID LLUUID }
- }
-}
-
-// viewer -> sim
-// mark parcel and double secret agent content on parcel as owned by
-// governor/maint and adjusts permissions approriately. Godlike request.
-{
- ParcelGodMarkAsContent Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ParcelData Single
- { LocalID S32 }
- }
-}
-
-// viewer -> sim
-{
- ParcelGodReserveForNewbie Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ParcelData Single
- { LocalID S32 }
- { SnapshotID LLUUID }
- }
-}
-
-// viewer -> sim
-// start an auction. viewer fills in the appropriate date, simulator
-// validates and fills in the rest of the information to start an auction
-// on a parcel. Processing currently requires that AgentID is a god.
-{
- ViewerStartAuction Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ParcelData Single
- { LocalID S32 }
- { SnapshotID LLUUID }
- }
-}
-
-// sim -> dataserver
-// Once all of the data has been gathered,
-{
- StartAuction Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- ParcelData Single
- { ParcelID LLUUID }
- { SnapshotID LLUUID }
- { Name Variable 1 } // string
- }
-}
-
-// dataserver -> sim
-{
- ConfirmAuctionStart Low Trusted Unencoded
- {
- AuctionData Single
- { ParcelID LLUUID }
- { AuctionID U32 }
- }
-}
-
-// sim -> dataserver
-// Tell the dataserver that an auction has completed.
-{
- CompleteAuction Low Trusted Unencoded
- {
- ParcelData Variable
- { ParcelID LLUUID }
- }
-}
-
-// Tell the dataserver that an auction has been canceled.
-{
- CancelAuction Low Trusted Unencoded
- {
- ParcelData Variable
- { ParcelID LLUUID }
- }
-}
-
-// userserver -> dataserver
-// Used to request all parcel sales in the database
-//{
-// RequestParcelAuctions Low Trusted Unencoded
-//}
-
-// dataserver -> userserver -> spaceserver
-// response of all (up to max packet size) parcel sales in the database.
-// each block in the meassage represents a parcel that a human agreed
-// to pay US$.
-//{
-// BulkParcelAuctions Low Trusted Unencoded
-// {
-// ParcelData Variable
-// { RegionHandle U64 }
-// { ParcelID LLUUID }
-// { WinnerID LLUUID }
-// }
-//}
-
-// sim -> dataserver
-{
- CheckParcelAuctions Low Trusted Unencoded
- {
- RegionData Variable
- { RegionHandle U64 }
- }
-}
-
-// dataserver -> sim
-// tell a particular simulator to finish parcel sale.
-{
- ParcelAuctions Low Trusted Unencoded
- {
- ParcelData Variable
- { ParcelID LLUUID }
- { WinnerID LLUUID }
- }
-}
-
-// ***************************************************************************
-// UUID to name lookup
-// ***************************************************************************
-
-// UUIDNameRequest
-// Translate a UUID into first and last names
-{
- UUIDNameRequest Low NotTrusted Unencoded
- {
- UUIDNameBlock Variable
- { ID LLUUID }
- }
-}
-
-// UUIDNameReply
-// Translate a UUID into first and last names
-{
- UUIDNameReply Low Trusted Unencoded
- {
- UUIDNameBlock Variable
- { ID LLUUID }
- { FirstName Variable 1 }
- { LastName Variable 1 }
- }
-}
-
-// UUIDGroupNameRequest
-// Translate a UUID into a group name
-{
- UUIDGroupNameRequest Low NotTrusted Unencoded
- {
- UUIDNameBlock Variable
- { ID LLUUID }
- }
-}
-
-// UUIDGroupNameReply
-// Translate a UUID into a group name
-{
- UUIDGroupNameReply Low Trusted Unencoded
- {
- UUIDNameBlock Variable
- { ID LLUUID }
- { GroupName Variable 1 }
- }
-}
-
-// end uuid to name lookup
-
-// ***************************************************************************
-// Simulator to Simulator Messages
-// ***************************************************************************
-
-// ChatPass
-// Chat message transmission to neighbors
-// Chat is region local to receiving simulator.
-// Type is one of CHAT_TYPE_NORMAL, _WHISPER, _SHOUT
-{
- ChatPass Low Trusted Zerocoded
- {
- ChatData Single
- { Channel S32 }
- { Position LLVector3 }
- { ID LLUUID }
- { OwnerID LLUUID }
- { Name Variable 1 }
- { SourceType U8 }
- { Type U8 }
- { Radius F32 }
- { SimAccess U8 }
- { Message Variable 2 }
- }
-}
-
-// Edge data - compressed edge data
-
-{
- EdgeDataPacket High Trusted Zerocoded
- {
- EdgeData Single
- { LayerType U8 }
- { Direction U8 }
- { LayerData Variable 2 }
- }
-}
-
-// Sim status, condition of this sim
-// sent reliably, when dirty
-{
- SimStatus Medium Trusted Unencoded
- {
- SimStatus Single
- { CanAcceptAgents BOOL }
- { CanAcceptTasks BOOL }
- }
-}
-
-// Child Agent Update - agents send child agents to neighboring simulators.
-// This will create a child camera if there isn't one at the target already
-// Can't send viewer IP and port between simulators -- the port may get remapped
-// if the viewer is behind a Network Address Translation (NAT) box.
-//
-// Note: some of the fields of this message really only need to be sent when an
-// agent crosses a region boundary and changes from a child to a main agent
-// (such as Head/BodyRotation, ControlFlags, Animations etc)
-// simulator -> simulator
-// reliable
-{
- ChildAgentUpdate High Trusted Zerocoded
- {
- AgentData Single
-
- { RegionHandle U64 }
- { ViewerCircuitCode U32 }
- { AgentID LLUUID }
- { SessionID LLUUID }
-
- { AgentPos LLVector3 }
- { AgentVel LLVector3 }
- { Center LLVector3 }
- { Size LLVector3 }
- { AtAxis LLVector3 }
- { LeftAxis LLVector3 }
- { UpAxis LLVector3 }
- { ChangedGrid BOOL } // BOOL
-
- { Far F32 }
- { Aspect F32 }
- { Throttles Variable 1 }
- { LocomotionState U32 }
- { HeadRotation LLQuaternion }
- { BodyRotation LLQuaternion }
- { ControlFlags U32 }
- { EnergyLevel F32 }
- { GodLevel U8 } // Changed from BOOL to U8, and renamed GodLevel (from Godlike)
- { AlwaysRun BOOL }
- { PreyAgent LLUUID }
- { AgentAccess U8 }
- { AgentTextures Variable 2 }
- { ActiveGroupID LLUUID }
- }
- {
- GroupData Variable
- { GroupID LLUUID }
- { GroupPowers U64 }
- { AcceptNotices BOOL }
- }
- {
- AnimationData Variable
- { Animation LLUUID }
- { ObjectID LLUUID }
- }
- {
- GranterBlock Variable
- { GranterID LLUUID }
- }
- {
- NVPairData Variable
- { NVPairs Variable 2 }
- }
- {
- VisualParam Variable
- { ParamValue U8 }
- }
-}
-
-// ChildAgentAlive
-// sent to child agents just to keep them alive
-{
- ChildAgentAlive High Trusted Unencoded
- {
- AgentData Single
- { RegionHandle U64 }
- { ViewerCircuitCode U32 }
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
-}
-
-// ChildAgentPositionUpdate
-// sent to child agents just to keep them alive
-{
- ChildAgentPositionUpdate High Trusted Unencoded
- {
- AgentData Single
-
- { RegionHandle U64 }
- { ViewerCircuitCode U32 }
- { AgentID LLUUID }
- { SessionID LLUUID }
-
- { AgentPos LLVector3 }
- { AgentVel LLVector3 }
- { Center LLVector3 }
- { Size LLVector3 }
- { AtAxis LLVector3 }
- { LeftAxis LLVector3 }
- { UpAxis LLVector3 }
- { ChangedGrid BOOL }
- }
-}
-
-
-// Obituary for child agents - make sure the parent know the child is dead
-// This way, children can be reliably restarted
-{
- ChildAgentDying Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
-}
-
-
-// This is sent if a full child agent hasn't been accepted yet
-{
- ChildAgentUnknown Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
-}
-
-// Pass Object Between Simulators
-//
-// BUG compress rotation
-// BUG compress scale
-{
- PassObject High Trusted Zerocoded
- {
- ObjectData Single
- { ID LLUUID }
- { ParentID LLUUID }
-
- { CreatorID LLUUID } // permissions
- { OwnerID LLUUID } // permissions
- { GroupID LLUUID } // permissions
- { BaseMask U32 } // permissions
- { OwnerMask U32 } // permissions
- { GroupMask U32 } // permissions
- { EveryoneMask U32 } // permissions
- { NextOwnerMask U32 } // permissions
- { GroupOwned BOOL } // permissions
-
- { PCode U8 }
- { Material U8 }
- { State U8 }
- { Scale LLVector3 }
- { UsePhysics U8 }
-
- { PosX S16 }
- { PosY S16 }
- { PosZ S16 }
-
- { VelX S16 }
- { VelY S16 }
- { VelZ S16 }
-
- { Rotation LLQuaternion }
-
- { AngVelX S16 }
- { AngVelY S16 }
- { AngVelZ S16 }
-
- { PathCurve U8 }
- { ProfileCurve U8 }
- { PathBegin U8 } // 0 to 1, quanta = 0.01
- { PathEnd U8 } // 0 to 1, quanta = 0.01
- { PathScaleX U8 } // 0 to 1, quanta = 0.01
- { PathScaleY U8 } // 0 to 1, quanta = 0.01
- { PathShearX U8 } // -.5 to .5, quanta = 0.01
- { PathShearY U8 } // -.5 to .5, quanta = 0.01
- { PathTwist S8 } // -1 to 1, quanta = 0.01
- { PathTwistBegin S8 } // -1 to 1, quanta = 0.01
- { PathRadiusOffset S8 } // -1 to 1, quanta = 0.01
- { PathTaperX S8 } // -1 to 1, quanta = 0.01
- { PathTaperY S8 } // -1 to 1, quanta = 0.01
- { PathRevolutions U8 } // 0 to 3, quanta = 0.015
- { PathSkew S8 } // -1 to 1, quanta = 0.01
- { ProfileBegin U8 } // 0 to 1, quanta = 0.01
- { ProfileEnd U8 } // 0 to 1, quanta = 0.01
- { ProfileHollow U8 } // 0 to 1, quanta = 0.01
-
- { TextureEntry Variable 2 }
-
- { SubType S16 }
- { Active U8 }
-
- { Data Variable 2 }
- }
- {
- NVPairData Variable
- { NVPairs Variable 2 }
- }
-}
-
-// This message is sent how objects get passed between regions.
-{
- AtomicPassObject High Trusted Unencoded
- {
- TaskData Single
- { TaskID LLUUID }
- { AttachmentNeedsSave BOOL } // true iff is attachment and needs asset saved
- }
-}
-
-
-// KillChildAgents - A new agent has connected to the simulator . . . make sure that any old child cameras are blitzed
-{
- KillChildAgents Low Trusted Unencoded
- {
- IDBlock Single
- { AgentID LLUUID }
- }
-}
-
-
-// GetScriptRunning - asks if a script is running or not. the simulator
-// responds with ScriptRunningReply
-{
- GetScriptRunning Low NotTrusted Unencoded
- {
- Script Single
- { ObjectID LLUUID }
- { ItemID LLUUID }
- }
-}
-
-// ScriptRunningReply - response from simulator to message above
-{
- ScriptRunningReply Low NotTrusted Unencoded
- {
- Script Single
- { ObjectID LLUUID }
- { ItemID LLUUID }
- { Running BOOL }
- }
-}
-
-
-// SetScriptRunning - makes a script active or inactive (Enable may be
-// true or false)
-{
- SetScriptRunning Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Script Single
- { ObjectID LLUUID }
- { ItemID LLUUID }
- { Running BOOL }
- }
-}
-
-// ScriptReset - causes a script to reset
-{
- ScriptReset Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Script Single
- { ObjectID LLUUID }
- { ItemID LLUUID }
- }
-}
-
-// ScriptSensorRequest - causes the receiving sim to run a script sensor and return the results
-{
- ScriptSensorRequest Low Trusted Zerocoded
- {
- Requester Single
- { SourceID LLUUID }
- { RequestID LLUUID }
- { SearchID LLUUID }
- { SearchPos LLVector3 }
- { SearchDir LLQuaternion }
- { SearchName Variable 1 }
- { Type S32 }
- { Range F32 }
- { Arc F32 }
- { RegionHandle U64 }
- { SearchRegions U8 }
- }
-}
-
-// ScriptSensorReply - returns the request script search information back to the requester
-{
- ScriptSensorReply Low Trusted Zerocoded
- {
- Requester Single
- { SourceID LLUUID }
- }
- {
- SensedData Variable
- { ObjectID LLUUID }
- { OwnerID LLUUID }
- { GroupID LLUUID }
- { Position LLVector3 }
- { Velocity LLVector3 }
- { Rotation LLQuaternion }
- { Name Variable 1 }
- { Type S32 }
- { Range F32 }
- }
-}
-
-//-----------------------------------------------------------------------------
-// Login and Agent Motion
-//-----------------------------------------------------------------------------
-
-// viewer -> sim
-// agent is coming into the region. The region should be expecting the
-// agent.
-{
- CompleteAgentMovement Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { CircuitCode U32 }
- }
-}
-
-// sim -> viewer
-{
- AgentMovementComplete Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { Position LLVector3 }
- { LookAt LLVector3 }
- { RegionHandle U64 }
- { Timestamp U32 }
- }
-}
-
-// sim->dataserver
-// log the fact that the agent has logged in.
-{
- LogLogin Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { ViewerDigest LLUUID }
- { LastExecFroze BOOL }
- { SpaceIP IPADDR }
- }
-}
-
-// LoginRequestSafe
-// Attempt to log into the system with an auth token obtained via a
-// secure out of band mechanism (such as a TLS tunnel)
-// viewer -> userserver
-// unreliable
-//{
-// LoginRequestSafe Low NotTrusted Unencoded
-// {
-// LoginBlock Single
-// { AuthToken LLUUID } // session id really
-// { ViewerDigest LLUUID } // MD5 of viewer exe
-// { LastExecFroze BOOL }
-// }
-//}
-
-// LoginReply
-// Identifies the session, or sends LLUUID::null if invalid
-// userserver -> viewer
-//{
-// LoginReply Low Trusted Zerocoded
-// {
-// UserData Single
-// { Firstname Variable 1 } // string, canonical caps
-// { Lastname Variable 1 } // string, canonical caps
-// { SessionID LLUUID }
-// { AgentID LLUUID }
-// { ErrorMessage Variable 1 }
-// { AgentAccess U8 }
-// { GroupOfficer BOOL }
-// { GroupTitle Variable 1 }
-// { GroupID LLUUID }
-// { GroupName Variable 1 }
-// { GroupInsigniaID LLUUID }
-// { LoginFlags U32 } // bitfield
-// { SunTextureID LLUUID }
-// { MoonTextureID LLUUID }
-// { CloudTextureID LLUUID }
-// { TOSAssetID LLUUID } // Null if TOS agreement is current
-// { CriticalMessageAssetID LLUUID } // Null if message is current
-// { TrialDaysLeft S32 } // Zero if not trial
-// { ServerUTCTime U32 } // time_t, unix time format
-// }
-// {
-// StartLocationData Variable
-// { LocationID U32 }
-// { LocationRegionX U32 } // U32, meters to southwest
-// { LocationRegionY U32 }
-// { LocationPos LLVector3 } // Vector3, region coords
-// { LocationLookAt LLVector3 } // Vector3
-// }
-//}
-
-// DataserverLoginRequestSafe
-// userserver -> dataserver
-//{
-// DataserverLoginRequestSafe Low Trusted Unencoded
-// {
-// UserData Single
-// { AuthToken LLUUID } // session id really
-// { IP IPADDR }
-// { Port IPPORT }
-// { SpaceIP IPADDR }
-// { ViewerDigest LLUUID }
-// { LastExecFroze BOOL }
-// }
-//}
-
-// DataServerLoginReply
-// TimeValid is true if user is allowed to log in at this time
-// dataserver -> userserver
-// reliable
-//{
-// DataServerLoginReply Low Trusted Zerocoded
-// {
-// UserData Single
-// { Firstname Variable 1 } // string
-// { Lastname Variable 1 } // string
-// { IP IPADDR } // don't think this is valid JC 6/02
-// { Port IPPORT } // don't think this is valid JC 6/02
-// { LoginValid BOOL }
-// { TimeValid BOOL }
-// { ErrorMessage Variable 1 } // string
-// { AgentID LLUUID }
-// { SessionID LLUUID }
-// { LimitedToEstate U32 }
-// { AgentAccess U8 }
-// { GroupOfficer BOOL }
-// { GroupTitle Variable 1 }
-// { GroupID LLUUID }
-// { GroupName Variable 1 }
-// { GroupInsigniaID LLUUID }
-// { LoginFlags U32 } // bitfield
-// { SunTextureID LLUUID }
-// { MoonTextureID LLUUID }
-// { CloudTextureID LLUUID }
-// { TOSAssetID LLUUID } // Null if TOS agreement is current
-// { CriticalMessageAssetID LLUUID } // Null if message is current
-// { TrialDaysLeft S32 } // Zero if not trial
-// { ServerUTCTime U32 } // time_t, unix time format
-// { SpaceIP IPADDR }
-// { ViewerDigest LLUUID }
-// { LastExecFroze BOOL }
-// }
-// {
-// StartLocationData Variable
-// { LocationID U32 }
-// { LocationRegionX U32 }
-// { LocationRegionY U32 }
-// { LocationPos LLVector3 } // Vector3
-// { LocationLookAt LLVector3 } // Vector3
-// }
-//}
-
-// The user agrees to the current Terms of Service
-// or clicks OK on the current critical message
-// type 0 = TOS
-// type 1 = critical message
-// viewer -> userserver -> dataserver
-//{
-// TOSAgreement Low NotTrusted Unencoded
-// {
-// AgentBlock Single
-// { AgentID LLUUID }
-// { Type S32 }
-// }
-//}
-
-// This message is sent from the viewer on login or on demand from the
-// userserver.
-// viewer -> userserver
-{
- ConnectAgentToUserserver Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
-}
-
-// This message is sent from the userserver when it does not have
-// trusted connection or known agent on the circuit.
-{
- ConnectToUserserver Low Trusted Unencoded
-}
-
-//-----------------------------------------------------------------------------
-// Logout
-//-----------------------------------------------------------------------------
-
-// userserver -> dataserver
-{
- DataServerLogout Low Trusted Unencoded
- {
- UserData Single
- { AgentID LLUUID }
- { ViewerIP IPADDR }
- { Disconnect BOOL }
- { SessionID LLUUID }
- }
-}
-
-// LogoutRequest
-// viewer -> sim
-// reliable
-{
- LogoutRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
-}
-
-// FinalizeLogout
-// Callback for when sim is done uploading assets to asset server
-// viewer -> sim
-// reliable
-{
- FinalizeLogout Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
-}
-
-// LogoutReply
-// it's ok for the viewer to quit.
-// sim -> viewer
-// reliable
-// Includes inventory items to update with new asset ids
-{
- LogoutReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- InventoryData Variable
- { ItemID LLUUID } // null if list is actually empty (but has one entry 'cause it can't have none)
- { NewAssetID LLUUID }
- }
-}
-
-
-
-// LogoutDemand
-{
- LogoutDemand Low Trusted Unencoded
- {
- LogoutBlock Single
- { SessionID LLUUID }
- }
-}
-
-
-//-----------------------------------------------------------------------------
-// Viewer to UserServer Messages
-//-----------------------------------------------------------------------------
-
-// ViewerLoginLocationRequest
-// viewer -> userserver
-// *NOTE: obsolete
-{
- ViewerLoginLocationRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- PositionBlock Single
- { ViewerRegion U64 }
- { ViewerPosition LLVector3 }
- }
- {
- URLBlock Single
- { SimName Variable 1 }
- { Pos LLVector3 }
- }
-}
-
-// ViewerSimLocationRequest
-// viewer -> userserver
-// *NOTE: obsolete
-{
- ViewerSimLocationRequest Low NotTrusted Unencoded
- {
- PositionBlock Single
- { AgentID LLUUID }
- { SimName Variable 1 }
- }
-}
-
-// RequestLocationGetAccess
-// userserver -> dataserver
-// *NOTE: obsolete.
-{
- RequestLocationGetAccess Low Trusted Unencoded
- {
- PositionBlock Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { ViewerIP IPADDR }
- { ViewerPort IPPORT }
- { ViewerRegion U64 }
- { ViewerPosition LLVector3 }
- }
-}
-
-// RequestLocationGetAccessReply
-// dataserver -> userserver
-// *NOTE: obsolete.
-{
- RequestLocationGetAccessReply Low Trusted Unencoded
- {
- PositionBlock Single
- { ViewerIP IPADDR }
- { ViewerPort IPPORT }
- { ViewerRegion U64 }
- { ViewerPosition LLVector3 }
- { TravelAccess U8 }
- }
-}
-
-
-// UserListRequest
-// Get a list of the current system users
-// viewer -> userserver
-//*NOTE: obsolete
-{
- UserListRequest Low NotTrusted Unencoded
-}
-
-
-//-----------------------------------------------------------------------------
-// Instant Message
-//-----------------------------------------------------------------------------
-
-// ImprovedInstantMessage
-// This message can potentially route all over the place
-// ParentEstateID: parent estate id of the source estate
-// RegionID: region id of the source of the IM.
-// Position: position of the sender in region local coordinates
-// Dialog see llinstantmessage.h for values
-// ID May be used by dialog. Interpretation depends on context.
-// BinaryBucket May be used by some dialog types
-// reliable
-{
- ImprovedInstantMessage Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- MessageBlock Single
- { FromGroup BOOL }
- { ToAgentID LLUUID }
- { ParentEstateID U32 }
- { RegionID LLUUID }
- { Position LLVector3 }
- { Offline U8 }
- { Dialog U8 } // U8 - IM type
- { ID LLUUID }
- { Timestamp U32 }
- { FromAgentName Variable 1 }
- { Message Variable 2 }
- { BinaryBucket Variable 2 }
- }
-}
-
-// Start group IM session. If everyone is 1, then offline users also
-// get the messages.
-{
- StartGroupIM Low NotTrusted Unencoded
- {
- SessionBlock Single
- { SessionID LLUUID }
- { Everyone U8 }
- }
- {
- Participants Variable
- { AgentID LLUUID }
- }
-}
-
-// drop out from a group instant message
-{
- DropGroupIM Low NotTrusted Unencoded
- {
- SessionBlock Single
- { SessionID LLUUID }
- { AgentID LLUUID }
- }
-}
-
-// Group instant messaging
-{
- GroupIM Low NotTrusted Unencoded
- {
- MessageBlock Single
- { SessionID LLUUID }
- { FromID LLUUID }
- { FromAgentName Variable 1 }
- { Message Variable 2 }
- }
-}
-
-// RetrieveInstantMessages - used to get instant messages that
-// were persisted out to the database while the user was offline
-{
- RetrieveInstantMessages Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
-}
-
-// DequeueInstantMessages - used to get messages out of the IM
-// queue that have come from outside of the system.
-{
- DequeueInstantMessages Low Trusted Unencoded
-}
-
-// FindAgent - used to find an agent's global position. I used a
-// variable sized LocationBlock so that the message can be recycled with
-// minimum new messages and handlers.
-{
- FindAgent Low NotTrusted Unencoded
- {
- AgentBlock Single
- { Hunter LLUUID }
- { Prey LLUUID }
- { SpaceIP IPADDR }
- }
- {
- LocationBlock Variable
- { GlobalX F64 }
- { GlobalY F64 }
- }
-}
-
-// This message is sent viewer->userserver to track if other agents
-// come on or off line.
-{
- TrackOnlineStatus Low NotTrusted Zerocoded
- {
- AgentBlock Variable
- { AgentID LLUUID }
- }
-}
-
-// This message is sent viewer->userserver to ignore logon and logoff
-// events for the specified agents. This is typically sent when a
-// calling card is deleted or cancelled.
-{
- IgnoreOnlineStatus Low NotTrusted Zerocoded
- {
- AgentBlock Variable
- { AgentID LLUUID }
- }
-}
-
-// Set godlike to 1 if you want to become godlike.
-// Set godlike to 0 if you want to relinquish god powers.
-// viewer -> simulator -> dataserver
-// reliable
-{
- RequestGodlikePowers Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- RequestBlock Single
- { Godlike BOOL }
- { Token LLUUID } // viewer packs a null, sim packs token
- }
-}
-
-// At the simulator, turn the godlike bit on.
-// At the viewer, show the god menu.
-// dataserver -> simulator -> viewer
-// reliable
-{
- GrantGodlikePowers Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- GrantData Single
- { GodLevel U8 }
- { Token LLUUID } // checked on sim, ignored on viewer
- }
-}
-
-// GodlikeMessage - generalized construct for Gods to send messages
-// around the system. Each Request has it's own internal protocol.
-{
- GodlikeMessage Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- MethodData Single
- { Method Variable 1 }
- { Invoice LLUUID }
- }
- {
- ParamList Variable
- { Parameter Variable 1 }
- }
-}
-
-// EstateOwnerMessage
-// format must be identical to above
-{
- EstateOwnerMessage Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- MethodData Single
- { Method Variable 1 }
- { Invoice LLUUID }
- }
- {
- ParamList Variable
- { Parameter Variable 1 }
- }
-}
-
-// GenericMessage
-// format must be identical to above
-// As above, but don't have to be god or estate owner to send.
-{
- GenericMessage Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- MethodData Single
- { Method Variable 1 }
- { Invoice LLUUID }
- }
- {
- ParamList Variable
- { Parameter Variable 1 }
- }
-}
-
-// ***************************************************************************
-// Requests for possessions, acquisition, money, etc
-// ***************************************************************************
-
-// request for mute list
-{
- MuteListRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- MuteData Single
- { MuteCRC U32 }
- }
-}
-
-// update/add someone in the mute list
-{
- UpdateMuteListEntry Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- MuteData Single
- { MuteID LLUUID }
- { MuteName Variable 1 }
- { MuteType S32 }
- { MuteFlags U32 }
- }
-}
-
-// Remove a mute list entry.
-{
- RemoveMuteListEntry Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- MuteData Single
- { MuteID LLUUID }
- { MuteName Variable 1 }
- }
-}
-
-
-// viewer -> userserver, gimme inventory
-//{
-// InventoryRequest Low NotTrusted Unencoded
-// {
-// InventoryData Single
-// { AgentID LLUUID }
-// { CacheCRC U32 }
-// }
-//}
-
-//
-// Inventory update messages
-//
-{
- UpdateInventoryItem Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- InventoryData Variable
- { ItemID LLUUID }
- { FolderID LLUUID }
-
- { CreatorID LLUUID } // permissions
- { OwnerID LLUUID } // permissions
- { GroupID LLUUID } // permissions
- { BaseMask U32 } // permissions
- { OwnerMask U32 } // permissions
- { GroupMask U32 } // permissions
- { EveryoneMask U32 } // permissions
- { NextOwnerMask U32 } // permissions
- { GroupOwned BOOL } // permissions
-
- { AssetID LLUUID }
- { Type S8 }
- { InvType S8 }
- { Flags U32 }
- { SaleType U8 }
- { SalePrice S32 }
- { Name Variable 1 }
- { Description Variable 1 }
- { CreationDate S32 }
- { CRC U32 }
- }
-}
-
-// When all that has updated is the asset, we can crunch this down.
-{
- UpdateInventoryItemAsset Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- InventoryData Variable
- { ItemID LLUUID }
- { AssetID LLUUID }
- }
-}
-
-{
- MoveInventoryItem Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { Stamp BOOL } // should the server re-timestamp?
- }
- {
- InventoryData Variable
- { ItemID LLUUID }
- { FolderID LLUUID }
- }
-}
-
-// copy inventory item by item id to specified destination folder,
-// send out bulk inventory update when done.
-// currently only sim->data, but it is general enough to be
-// a viewer request.
-{
- CopyInventoryItem Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- InventoryData Variable
- { OldItemID LLUUID }
- { NewFolderID LLUUID }
- }
-}
-
-{
- RemoveInventoryItem Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- InventoryData Variable
- { ItemID LLUUID }
- }
-}
-
-{
- ChangeInventoryItemFlags Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- InventoryData Variable
- { ItemID LLUUID }
- { Flags U32 }
- }
-}
-
-
-{
- SaveAssetIntoInventory Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- InventoryData Single
- { ItemID LLUUID }
- { NewAssetID LLUUID }
- }
-}
-
-{
- CreateInventoryFolder Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- FolderData Single
- { FolderID LLUUID }
- { ParentID LLUUID }
- { Type S8 }
- { Name Variable 1 }
- }
-}
-
-{
- UpdateInventoryFolder Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- FolderData Variable
- { FolderID LLUUID }
- { ParentID LLUUID }
- { Type S8 }
- { Name Variable 1 }
- }
-}
-
-{
- MoveInventoryFolder Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { Stamp BOOL } // should the server re-timestamp children
- }
- {
- InventoryData Variable
- { FolderID LLUUID }
- { ParentID LLUUID }
- }
-}
-
-{
- RemoveInventoryFolder Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- FolderData Variable
- { FolderID LLUUID }
- }
-}
-
-// Get inventory segment.
-{
- FetchInventoryDescendents Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- InventoryData Single
- { FolderID LLUUID }
- { OwnerID LLUUID }
- { SortOrder S32 } // 0 = name, 1 = time
- { FetchFolders BOOL } // false will omit folders in query
- { FetchItems BOOL } // false will omit items in query
- }
-}
-
-// return inventory segment.
-// *NOTE: This could be compressed more since we already know the
-// parent_id for folders and the folder_id for items, but this is
-// reasonable until we heve server side inventory.
-{
- InventoryDescendents Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { FolderID LLUUID }
- { OwnerID LLUUID } // owner of the folders creatd.
- { Version S32 } // version of the folder for caching
- { Descendents S32 } // count to help with caching
- }
- {
- FolderData Variable
- { FolderID LLUUID }
- { ParentID LLUUID }
- { Type S8 }
- { Name Variable 1 }
- }
- {
- ItemData Variable
- { ItemID LLUUID }
- { FolderID LLUUID }
- { CreatorID LLUUID } // permissions
- { OwnerID LLUUID } // permissions
- { GroupID LLUUID } // permissions
- { BaseMask U32 } // permissions
- { OwnerMask U32 } // permissions
- { GroupMask U32 } // permissions
- { EveryoneMask U32 } // permissions
- { NextOwnerMask U32 } // permissions
- { GroupOwned BOOL } // permissions
- { AssetID LLUUID }
- { Type S8 }
- { InvType S8 }
- { Flags U32 }
- { SaleType U8 }
- { SalePrice S32 }
- { Name Variable 1 }
- { Description Variable 1 }
- { CreationDate S32 }
- { CRC U32 }
- }
-}
-
-// Get inventory item(s) - response comes through FetchInventoryReply
-{
- FetchInventory Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- InventoryData Variable
- { OwnerID LLUUID }
- { ItemID LLUUID }
- }
-}
-
-// response to fetch inventory
-{
- FetchInventoryReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- InventoryData Variable
- { ItemID LLUUID }
- { FolderID LLUUID }
-
- { CreatorID LLUUID } // permissions
- { OwnerID LLUUID } // permissions
- { GroupID LLUUID } // permissions
- { BaseMask U32 } // permissions
- { OwnerMask U32 } // permissions
- { GroupMask U32 } // permissions
- { EveryoneMask U32 } // permissions
- { NextOwnerMask U32 } // permissions
- { GroupOwned BOOL } // permissions
-
- { AssetID LLUUID }
- { Type S8 }
- { InvType S8 }
- { Flags U32 }
- { SaleType U8 }
- { SalePrice S32 }
- { Name Variable 1 }
- { Description Variable 1 }
- { CreationDate S32 }
- { CRC U32 }
- }
-}
-
-// Can only fit around 7 items per packet - that's the way it goes. At
-// least many bulk updates can be packed.
-{
- BulkUpdateInventory Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { TransactionID LLUUID }
- }
- {
- FolderData Variable
- { FolderID LLUUID }
- { ParentID LLUUID }
- { Type S8 }
- { Name Variable 1 }
- }
- {
- ItemData Variable
- { ItemID LLUUID }
- { FolderID LLUUID }
- { CreatorID LLUUID } // permissions
- { OwnerID LLUUID } // permissions
- { GroupID LLUUID } // permissions
- { BaseMask U32 } // permissions
- { OwnerMask U32 } // permissions
- { GroupMask U32 } // permissions
- { EveryoneMask U32 } // permissions
- { NextOwnerMask U32 } // permissions
- { GroupOwned BOOL } // permissions
- { AssetID LLUUID }
- { Type S8 }
- { InvType S8 }
- { Flags U32 }
- { SaleType U8 }
- { SalePrice S32 }
- { Name Variable 1 }
- { Description Variable 1 }
- { CreationDate S32 }
- { CRC U32 }
- }
-}
-
-
-
-// request permissions for agent id to get the asset for owner_id's
-// item_id.
-{
- RequestInventoryAsset Low Trusted Unencoded
- {
- QueryData Single
- { QueryID LLUUID }
- { AgentID LLUUID }
- { OwnerID LLUUID }
- { ItemID LLUUID }
- }
-}
-
-// response to RequestInventoryAsset
-// lluuid will be null if agentid in the request above cannot read asset
-{
- InventoryAssetResponse Low Trusted Unencoded
- {
- QueryData Single
- { QueryID LLUUID }
- { AssetID LLUUID }
- { IsReadable BOOL }
- }
-}
-
-// This is the new improved way to remove inventory items. It is
-// currently only supported in viewer->userserver->dataserver
-// messages typically initiated by an empty trash method.
-{
- RemoveInventoryObjects Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- FolderData Variable
- { FolderID LLUUID }
- }
- {
- ItemData Variable
- { ItemID LLUUID }
- }
-}
-
-// This is how you remove inventory when you're not even sure what it
-// is - only it's parenting.
-{
- PurgeInventoryDescendents Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- InventoryData Single
- { FolderID LLUUID }
- }
-}
-
-// These messages are viewer->simulator requests to update a task's
-// inventory.
-// if Key == 0, itemid is the key. if Key == 1, assetid is the key.
-{
- UpdateTaskInventory Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- UpdateData Single
- { LocalID U32 }
- { Key U8 }
- }
- {
- InventoryData Single
- { ItemID LLUUID }
- { FolderID LLUUID }
- { CreatorID LLUUID } // permissions
- { OwnerID LLUUID } // permissions
- { GroupID LLUUID } // permissions
- { BaseMask U32 } // permissions
- { OwnerMask U32 } // permissions
- { GroupMask U32 } // permissions
- { EveryoneMask U32 } // permissions
- { NextOwnerMask U32 } // permissions
- { GroupOwned BOOL } // permissions
- { AssetID LLUUID }
- { Type S8 }
- { InvType S8 }
- { Flags U32 }
- { SaleType U8 }
- { SalePrice S32 }
- { Name Variable 1 }
- { Description Variable 1 }
- { CreationDate S32 }
- { CRC U32 }
- }
-}
-
-{
- RemoveTaskInventory Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- InventoryData Single
- { LocalID U32 }
- { ItemID LLUUID }
- }
-}
-
-{
- MoveTaskInventory Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { FolderID LLUUID }
- }
- {
- InventoryData Single
- { LocalID U32 }
- { ItemID LLUUID }
- }
-}
-
-{
- RequestTaskInventory Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- InventoryData Single
- { LocalID U32 }
- }
-}
-
-{
- ReplyTaskInventory Low Trusted Zerocoded
- {
- InventoryData Single
- { TaskID LLUUID }
- { Serial S16 } // S16
- { Filename Variable 1 }
- }
-}
-
-// These messages are viewer->simulator requests regarding objects
-// which are currently being simulated. The viewer will get an
-// UpdateInventoryItem response if a DeRez succeeds, and the object
-// will appear if a RezObject succeeds.
-// The Destination field tells where the derez should wind up, and the
-// meaning of DestinationID depends on it. For example, if the
-// destination is a category, then the destination is the category id. If
-// the destination is a task inventory, then the destination id is the
-// task id.
-// The transaction id is generated by the viewer on derez, and then
-// the packets are counted and numbered. The rest of the information is
-// just duplicated (it's not that much, and derezzes that span multiple
-// packets will be rare.)
-{
- DeRezObject Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- AgentBlock Single
- { GroupID LLUUID }
- { Destination U8 }
- { DestinationID LLUUID } // see above
- { TransactionID LLUUID }
- { PacketCount U8 }
- { PacketNumber U8 }
- }
- {
- ObjectData Variable
- { ObjectLocalID U32 } // object id in world
- }
-}
-
-// This message is sent when a derez succeeds, but there's no way to
-// know, since no inventory is created on the viewer. For example, when
-// saving into task inventory.
-{
- DeRezAck Low Trusted Unencoded
-}
-
-// This message is sent from viewer -> simulator when the viewer wants
-// to rez an object out of inventory.
-{
- RezObject Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { GroupID LLUUID }
- }
- {
- RezData Single
- { FromTaskID LLUUID }
- { BypassRaycast U8 }
- { RayStart LLVector3 }
- { RayEnd LLVector3 }
- { RayTargetID LLUUID }
- { RayEndIsIntersection BOOL }
- { RezSelected BOOL }
- { RemoveItem BOOL }
- { ItemFlags U32 }
- { GroupMask U32 }
- { EveryoneMask U32 }
- { NextOwnerMask U32 }
- }
- {
- InventoryData Single
- { ItemID LLUUID }
- { FolderID LLUUID }
- { CreatorID LLUUID } // permissions
- { OwnerID LLUUID } // permissions
- { GroupID LLUUID } // permissions
- { BaseMask U32 } // permissions
- { OwnerMask U32 } // permissions
- { GroupMask U32 } // permissions
- { EveryoneMask U32 } // permissions
- { NextOwnerMask U32 } // permissions
- { GroupOwned BOOL } // permissions
- { AssetID LLUUID }
- { Type S8 }
- { InvType S8 }
- { Flags U32 }
- { SaleType U8 }
- { SalePrice S32 }
- { Name Variable 1 }
- { Description Variable 1 }
- { CreationDate S32 }
- { CRC U32 }
- }
-}
-
-// if declined, the destid agent from the GiveInventory message
-// responds with this message to the userserver
-{
- DeclineInventory Low NotTrusted Unencoded
- {
- InfoBlock Single
- { TransactionID LLUUID }
- }
-}
-
-// userserver -> dataserver
-// sent during agent to agent inventory transfers
-{
- TransferInventory Low Trusted Zerocoded
- {
- InfoBlock Single
- { SourceID LLUUID }
- { DestID LLUUID }
- { TransactionID LLUUID }
- }
- {
- InventoryBlock Variable
- { InventoryID LLUUID }
- { Type S8 }
- }
-}
-
-// dataserver -> userserver
-// InventoryID is the id of the inventory object that the end user
-// should discard if they deny the transfer.
-{
- TransferInventoryAck Low Trusted Zerocoded
- {
- InfoBlock Single
- { TransactionID LLUUID }
- { InventoryID LLUUID }
- }
-}
-
-// Relationships - the start will be a request from sourceid to dest
-// id when they are located near each other.
-{
- RequestFriendship Low NotTrusted Unencoded
- {
- AgentBlock Single
- { SourceID LLUUID }
- { FolderID LLUUID } // source ID's calling card folder
- { DestID LLUUID }
- { TransactionID LLUUID }
- }
-}
-
-{
- AcceptFriendship Low NotTrusted Unencoded
- {
- TransactionBlock Single
- { TransactionID LLUUID }
- }
- {
- FolderData Variable
- { FolderID LLUUID } // place to put calling card.
- }
-}
-
-{
- DeclineFriendship Low NotTrusted Unencoded
- {
- TransactionBlock Single
- { TransactionID LLUUID }
- }
-}
-
-
-//{
-// AddCallingCard Low NotTrusted Unencoded
-// {
-// CardBlock Variable
-// { SourceUUID LLUUID }
-// { DestUUID LLUUID }
-// { Name Variable 1 }
-// }
-//}
-
-{
- FormFriendship Low Trusted Unencoded
- {
- AgentBlock Single
- { SourceID LLUUID }
- { DestID LLUUID }
- }
-}
-
-// Cancels user relationship
-// Updates inventory for both users.
-// Stops agent tracking in userserver.
-// viewer -> userserver -> dataserver
-// reliable
-{
- TerminateFriendship Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ExBlock Single
- { OtherID LLUUID }
- }
-}
-
-// used to give someone a calling card.
-{
- OfferCallingCard Low NotTrusted Unencoded
- {
- AgentBlock Single
- { SourceID LLUUID }
- { DestID LLUUID }
- { TransactionID LLUUID }
- }
-}
-
-{
- AcceptCallingCard Low NotTrusted Unencoded
- {
- TransactionBlock Single
- { TransactionID LLUUID }
- }
- {
- FolderData Variable
- { FolderID LLUUID } // place to put calling card.
- }
-}
-
-{
- DeclineCallingCard Low NotTrusted Unencoded
- {
- TransactionBlock Single
- { TransactionID LLUUID }
- }
-}
-
-
-// Rez a script onto an object
-{
- RezScript Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { GroupID LLUUID }
- }
- {
- UpdateBlock Single
- { ObjectLocalID U32 } // object id in world
- { Enabled BOOL } // is script rezzed in enabled?
- }
- {
- InventoryBlock Single
- { ItemID LLUUID }
- { FolderID LLUUID }
- { CreatorID LLUUID } // permissions
- { OwnerID LLUUID } // permissions
- { GroupID LLUUID } // permissions
- { BaseMask U32 } // permissions
- { OwnerMask U32 } // permissions
- { GroupMask U32 } // permissions
- { EveryoneMask U32 } // permissions
- { NextOwnerMask U32 } // permissions
- { GroupOwned BOOL } // permissions
- { AssetID LLUUID }
- { Type S8 }
- { InvType S8 }
- { Flags U32 }
- { SaleType U8 }
- { SalePrice S32 }
- { Name Variable 1 }
- { Description Variable 1 }
- { CreationDate S32 }
- { CRC U32 }
- }
-}
-
-// Create inventory
-{
- CreateInventoryItem Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- InventoryBlock Single
- { FolderID LLUUID }
- { NextOwnerMask U32 }
- { Type S8 }
- { InvType S8 }
- { Name Variable 1 }
- { Description Variable 1 }
- }
-}
-
-// give agent a landmark for an event.
-{
- CreateLandmarkForEvent Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- EventData Single
- { EventID U32 }
- }
- {
- InventoryBlock Single
- { FolderID LLUUID }
- { Name Variable 1 }
- }
-}
-
-{
- EventLocationRequest Low Trusted Zerocoded
- {
- QueryData Single
- { QueryID LLUUID }
- }
- {
- EventData Single
- { EventID U32 }
- }
-}
-
-{
- EventLocationReply Low Trusted Zerocoded
- {
- QueryData Single
- { QueryID LLUUID }
- }
- {
- EventData Single
- { Success BOOL }
- { RegionID LLUUID }
- { RegionPos LLVector3 }
- }
-}
-
-// get information about landmarks. Used by viewers for determining
-// the location of a landmark, and by simulators for teleport
-{
- RegionHandleRequest Low NotTrusted Unencoded
- {
- RequestBlock Single
- { RegionID LLUUID }
- }
-}
-
-//{
-// RegionIDRequest Low NotTrusted Unencoded
-// {
-// RequestBlock Single
-// { RegionHandle U64 }
-// }
-//}
-
-{
- RegionIDAndHandleReply Low Trusted Unencoded
- {
- ReplyBlock Single
- { RegionID LLUUID }
- { RegionHandle U64 }
- }
-}
-
-// Move money from one agent to another. Validation will happen at the
-// simulator, the dataserver will actually do the work. Dataserver
-// generates a MoneyBalance message in reply. The simulator
-// will generate a MoneyTransferBackend in response to this.
-// viewer -> simulator -> dataserver
-{
- MoneyTransferRequest Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- MoneyData Single
- { SourceID LLUUID }
- { DestID LLUUID } // destination of the transfer
- { Flags U8 }
- { Amount S32 }
- { AggregatePermNextOwner U8 }
- { AggregatePermInventory U8 }
- { TransactionType S32 } // see lltransactiontypes.h
- { Description Variable 1 } // string, name of item for purchases
- }
-}
-
-// And, the money transfer
-{
- MoneyTransferBackend Low Trusted Zerocoded
- {
- MoneyData Single
- { TransactionID LLUUID }
- { TransactionTime U32 } // utc seconds since epoch
- { SourceID LLUUID }
- { DestID LLUUID } // destination of the transfer
- { Flags U8 }
- { Amount S32 }
- { AggregatePermNextOwner U8 }
- { AggregatePermInventory U8 }
- { TransactionType S32 } // see lltransactiontypes.h
- { Description Variable 1 } // string, name of item for purchases
- }
-}
-
-// This message is used to coalesce money transfers on a per-agent
-// basis. It should only be involved in sim->dataserver money communication.
-{
- BulkMoneyTransfer Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { RegionX U32 }
- { RegionY U32 }
- }
- {
- MoneyData Variable
- { TransactionID LLUUID }
- { DestID LLUUID } // destination of the transfer
- { Flags U8 }
- { Amount S32 }
- { TransactionType S32 } // see lltransactiontypes.h
- { Description Variable 1 } // string, name of purchased item
- }
-}
-
-
-// This message is sent sim -> viewer when the simulator is queueing
-// up transactions. This is because we do not have an authoritative
-// balance from the dataserver, but we want to 'guess' how much
-// money the agent has on the viewer.
-{
- AdjustBalance Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { Delta S32 }
- }
-}
-
-// viewer -> userserver -> dataserver
-// Reliable
-{
- MoneyBalanceRequest Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- MoneyData Single
- { TransactionID LLUUID }
- }
-}
-
-
-// dataserver -> simulator -> viewer
-{
- MoneyBalanceReply Low Trusted Zerocoded
- {
- MoneyData Single
- { AgentID LLUUID }
- { TransactionID LLUUID }
- { TransactionSuccess BOOL } // BOOL
- { MoneyBalance S32 }
- { SquareMetersCredit S32 }
- { SquareMetersCommitted S32 }
- { Description Variable 1 } // string
- }
-}
-
-
-// RoutedMoneyBalanceReply
-// This message is used when a dataserver needs to send updated
-// money balance information to a simulator other than the one it
-// is connected to. It uses the standard TransferBlock format.
-// dataserver -> simulator -> spaceserver -> simulator -> viewer
-// reliable
-{
- RoutedMoneyBalanceReply Low Trusted Zerocoded
- {
- TargetBlock Single
- { TargetIP IPADDR } // U32 encoded IP
- { TargetPort IPPORT }
- }
- {
- MoneyData Single
- { AgentID LLUUID }
- { TransactionID LLUUID }
- { TransactionSuccess BOOL } // BOOL
- { MoneyBalance S32 }
- { SquareMetersCredit S32 }
- { SquareMetersCommitted S32 }
- { Description Variable 1 } // string
- }
-}
-
-
-// This will give you a partial money history on the requested agentid.
-// Reliable
-{
- MoneyHistoryRequest Low NotTrusted Unencoded
- {
- MoneyData Single
- { AgentID LLUUID }
- { StartPeriod S32 }
- { EndPeriod S32 }
- }
-}
-
-// Reliable
-{
- MoneyHistoryReply Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- MoneyData Single
- { StartPeriod S32 }
- { EndPeriod S32 }
- { Balance S32 }
- { StartDate Variable 1 } // string
- { TaxEstimate S32 }
- { StipendEstimate S32 }
- { BonusEstimate S32 }
- }
- {
- HistoryData Variable
- { Description Variable 1 } // string
- { Amount S32 }
- }
-}
-
-
-// CurrentInterval = 0 => this period (week, day, etc.)
-// CurrentInterval = 1 => last period
-// viewer -> userserver -> dataserver
-// reliable
-{
- MoneySummaryRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- MoneyData Single
- { RequestID LLUUID }
- { IntervalDays S32 }
- { CurrentInterval S32 }
- }
-}
-
-
-// dataserver -> userserver -> viewer
-// Reliable
-{
- MoneySummaryReply Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- MoneyData Single
- { RequestID LLUUID }
- { IntervalDays S32 }
- { CurrentInterval S32 }
- { StartDate Variable 1 } // string
- { Balance S32 }
- { TotalCredits S32 }
- { TotalDebits S32 }
- { ObjectTaxCurrent S32 }
- { LightTaxCurrent S32 }
- { LandTaxCurrent S32 }
- { GroupTaxCurrent S32 }
- { ParcelDirFeeCurrent S32 }
- { ObjectTaxEstimate S32 }
- { LightTaxEstimate S32 }
- { LandTaxEstimate S32 }
- { GroupTaxEstimate S32 }
- { ParcelDirFeeEstimate S32 }
- { StipendEstimate S32 }
- { BonusEstimate S32 }
- { LastTaxDate Variable 1 } // string
- { TaxDate Variable 1 } // string
- }
-}
-
-
-// Reliable
-{
- MoneyDetailsRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- MoneyData Single
- { RequestID LLUUID }
- { IntervalDays S32 }
- { CurrentInterval S32 }
- }
-}
-
-// Reliable
-{
- MoneyDetailsReply Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- MoneyData Single
- { RequestID LLUUID }
- { IntervalDays S32 }
- { CurrentInterval S32 }
- { StartDate Variable 1 } // string
- }
- {
- HistoryData Variable
- { Description Variable 1 } // string
- { Amount S32 }
- }
-}
-
-
-// Reliable
-{
- MoneyTransactionsRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- MoneyData Single
- { RequestID LLUUID }
- { IntervalDays S32 }
- { CurrentInterval S32 }
- }
-}
-
-// Reliable
-{
- MoneyTransactionsReply Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- MoneyData Single
- { RequestID LLUUID }
- { IntervalDays S32 }
- { CurrentInterval S32 }
- { StartDate Variable 1 } // string
- }
- {
- HistoryData Variable
- { Time Variable 1 } // string
- { User Variable 1 } // string
- { Type S32 }
- { Item Variable 1 } // string
- { Amount S32 }
- }
-}
-
-//---------------------------------------------------------------------------
-// Gesture saves/loads
-//---------------------------------------------------------------------------
-
-// viewer -> userserver -> dataserver
-// dataserver -> userserver -> viewer
-{
- GestureUpdate Medium NotTrusted Unencoded
- {
- AgentBlock Single
- { AgentID LLUUID }
- { Filename Variable 1 } // String
- { ToViewer BOOL } // BOOL, direction this is going
- }
-}
-
-// viewer -> userserver -> dataserver
-{
- GestureRequest Low NotTrusted Unencoded
- {
- AgentBlock Single
- { AgentID LLUUID }
- { Reset BOOL } // 0=no reset, 1=male, 2=female
- }
-}
-
-// Tell the database that some gestures are now active
-// viewer -> sim -> data
-{
- ActivateGestures Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { Flags U32 }
- }
- {
- Data Variable
- { ItemID LLUUID }
- { AssetID LLUUID }
- { GestureFlags U32 }
- }
-}
-
-// Tell the database some gestures are no longer active
-// viewer -> sim -> data
-{
- DeactivateGestures Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { Flags U32 }
- }
- {
- Data Variable
- { ItemID LLUUID }
- { GestureFlags U32 }
- }
-}
-
-//---------------------------------------------------------------------------
-//
-//---------------------------------------------------------------------------
-
-// userserver -> viewer, up-to-date inventory is here
-// could be sent as a result of spam
-// as well as in response to InventoryRequest
-{
- InventoryUpdate Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- InventoryData Single
- { IsComplete U8 }
- { Filename Variable 1 }
- }
-}
-
-// possible alternate to InventoryUpdate - tells viewer to load cached inventory
-//{
-// UseCachedInventory Low Trusted Unencoded
-// {
-// InventoryData Single
-// { AgentID LLUUID }
-// }
-//}
-
-// dataserver-> userserver -> viewer to move around the mute list
-{
- MuteListUpdate Low Trusted Unencoded
- {
- MuteData Single
- { AgentID LLUUID }
- { Filename Variable 1 }
- }
-}
-
-// tell viewer to use the local mute cache
-{
- UseCachedMuteList Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
-}
-
-
-// UserLoginLocationReply
-// userserver -> viewer
-{
- UserLoginLocationReply Low Trusted Zerocoded
- {
- AgentData Single
- { SessionID LLUUID }
- { Message Variable 1 }
- }
- {
- RegionInfo Single
- { LocationValid BOOL }
- { GridsPerEdge U32 }
- { MetersPerGrid F32 }
- { Handle U64 }
- { UsecSinceStart U64 }
- { SecPerDay U32 }
- { SecPerYear U32 }
- { SunDirection LLVector3 }
- { SunAngVelocity LLVector3 }
- }
- {
- SimulatorBlock Single
- { IP IPADDR }
- { Port IPPORT }
- }
- {
- URLBlock Single
- { LocationID U32 }
- { LocationLookAt LLVector3 }
- }
-}
-
-// UserSimLocationReply
-// userserver -> viewer
-{
- UserSimLocationReply Low Trusted Unencoded
- {
- SimulatorBlock Single
- { AccessOK U8 }
- { SimName Variable 1 }
- { SimHandle U64 }
- }
-}
-
-// UserListReply
-// Return a list of users on the system
-{
- UserListReply Low Trusted Unencoded
- {
- UserBlock Variable
- { FirstName Variable 1 }
- { LastName Variable 1 }
- { Status U8 }
- }
-}
-
-// notification for login and logout.
-// source_sim -> dest_viewer
-{
- OnlineNotification Low Trusted Unencoded
- {
- AgentBlock Variable
- { AgentID LLUUID }
- }
-}
-{
- OfflineNotification Low Trusted Unencoded
- {
- AgentBlock Variable
- { AgentID LLUUID }
- }
-}
-
-
-// SetStartLocationRequest
-// viewer -> sim
-// failure checked at sim and triggers ImprovedInstantMessage
-// success triggers SetStartLocation
-{
- SetStartLocationRequest Low NotTrusted Zerocoded
- {
- StartLocationData Single
- { AgentID LLUUID }
- { SimName Variable 1 } // string
- { LocationID U32 }
- { LocationPos LLVector3 } // region coords
- { LocationLookAt LLVector3 }
- }
-}
-
-// SetStartLocation
-// sim -> dataserver
-{
- SetStartLocation Low Trusted Zerocoded
- {
- StartLocationData Single
- { AgentID LLUUID }
- { RegionID LLUUID }
- { LocationID U32 }
- { RegionHandle U64 }
- { LocationPos LLVector3 } // region coords
- { LocationLookAt LLVector3 }
- }
-}
-
-
-
-// UserLoginLocationRequest
-// userserver -> spaceserver
-{
- UserLoginLocationRequest Low Trusted Zerocoded
- {
- UserBlock Single
- { SessionID LLUUID }
- { TravelAccess U8 }
- { FirstLogin BOOL }
- { LimitedToEstate U32 }
- }
- {
- PositionBlock Single
- { ViewerRegion U64 }
- { ViewerPosition LLVector3 }
- }
- {
- URLBlock Single
- { SimName Variable 1 }
- { Pos LLVector3 }
- }
-}
-
-// SpaceLoginLocationReply
-// spaceserver -> userserver
-// not reliable
-{
- SpaceLoginLocationReply Low Trusted Zerocoded
- {
- UserBlock Single
- { SessionID LLUUID }
- { LocationID U32 }
- { LocationPos LLVector3 }
- { LocationLookAt LLVector3 }
- }
- {
- SimulatorBlock Single
- { IP IPADDR }
- { Port IPPORT }
- { CircuitCode U32 }
- { Name Variable 1 }
- { SimAccess U8 }
- }
- {
- RegionInfo Single
- { GridsPerEdge U32 }
- { MetersPerGrid F32 }
- { Handle U64 }
- { UsecSinceStart U64 }
- { SecPerDay U32 }
- { SecPerYear U32 }
- { SunDirection LLVector3 }
- { SunAngVelocity LLVector3 }
- }
-}
-
-
-// ***************************************************************************
-// Launcher messages
-// ***************************************************************************
-
-
-// NetTest - This goes back and forth to the space server because of
-// problems determining the port
-{
- NetTest Low NotTrusted Unencoded
- {
- NetBlock Single
- { Port IPPORT }
- }
-}
-
-// SetChildCount - Sent to launcher to adjust nominal child count
-// Simulator sends this increase the sim/cpu ratio on startup
-{
- SetCPURatio Low NotTrusted Unencoded
- {
- Data Single
- { Ratio U8 }
- }
-}
-
-
-
-// SimCrashed - Sent to dataserver when the sim goes down.
-// Maybe we should notify the spaceserver as well?
-{
- SimCrashed Low NotTrusted Unencoded
- {
- Data Single
- { RegionX U32 }
- { RegionY U32 }
- }
- {
- Users Variable
- { AgentID LLUUID }
- }
-}
-
-// ***************************************************************************
-// Simulator to QuerySim
-// ***************************************************************************
-
-// SimulatorPauseState - what parts of the sim are paused
-
-{
- SimulatorPauseState Low NotTrusted Unencoded
- {
- PauseBlock Single
- { SimPaused U32 }
- { LayersPaused U32 }
- { TasksPaused U32 }
- }
-}
-
-// SimulatorThrottleSettings - what are the current throttle settings?
-
-{
- SimulatorThrottleSettings Low NotTrusted Unencoded
- {
- Sender Single
- { ID LLUUID }
- }
- {
- Throttle Single
- { Throttles Variable 1 }
- }
-}
-
-// ***************************************************************************
-// Name Value Pair messages
-// ***************************************************************************
-
-// NameValuePair - if the specific task exists on simulator, add or replace this name value pair
-{
- NameValuePair Low Trusted Unencoded
- {
- TaskData Single
- { ID LLUUID }
- }
- {
- NameValueData Variable
- { NVPair Variable 2 }
- }
-}
-
-// NameValuePair - if the specific task exists on simulator or dataserver, remove the name value pair (value is ignored)
-{
- RemoveNameValuePair Low Trusted Unencoded
- {
- TaskData Single
- { ID LLUUID }
- }
- {
- NameValueData Variable
- { NVPair Variable 2 }
- }
-}
-
-
-// GetNameValuePair - if the specific task exists on simulator, get the value of this NameVale pair (if it exists)
-// FIXME: No transmit. 12 Sep 2002 mark
-{
- GetNameValuePair Low NotTrusted Unencoded
- {
- TaskData Single
- { ID LLUUID }
- }
- {
- NameValueName Variable
- { Name Variable 2 }
- }
-}
-
-// ***************************************************************************
-// Add/Remove Attachment messages
-// ***************************************************************************
-
-
-// Simulator informs Dataserver of new attachment or attachment asset update
-{
- UpdateAttachment Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- AttachmentBlock Single
- { AttachmentPoint U8 }
- }
- {
- OperationData Single
- { AddItem BOOL }
- { UseExistingAsset BOOL }
- }
- {
- InventoryData Single // Standard inventory item block
- { ItemID LLUUID }
- { FolderID LLUUID }
-
- { CreatorID LLUUID } // permissions
- { OwnerID LLUUID } // permissions
- { GroupID LLUUID } // permissions
- { BaseMask U32 } // permissions
- { OwnerMask U32 } // permissions
- { GroupMask U32 } // permissions
- { EveryoneMask U32 } // permissions
- { NextOwnerMask U32 } // permissions
- { GroupOwned BOOL } // permissions
-
- { AssetID LLUUID }
- { Type S8 }
- { InvType S8 }
- { Flags U32 }
- { SaleType U8 }
- { SalePrice S32 }
- { Name Variable 1 }
- { Description Variable 1 }
- { CreationDate S32 }
- { CRC U32 }
- }
-}
-
-// Simulator informs Dataserver that attachment has been taken off
-{
- RemoveAttachment Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- AttachmentBlock Single
- { AttachmentPoint U8 }
- { ItemID LLUUID }
- }
-}
-
-
-// ***************************************************************************
-// GUIDed Sound messages
-// ***************************************************************************
-
-// SoundTrigger - Sent by simulator to viewer to trigger sound outside current region
-{
- SoundTrigger High NotTrusted Unencoded
- {
- SoundData Single
- { SoundID LLUUID }
- { OwnerID LLUUID }
- { ObjectID LLUUID }
- { ParentID LLUUID } // null if this object is the parent
- { Handle U64 } // region handle
- { Position LLVector3 } // region local
- { Gain F32 }
- }
-}
-
-// AttachedSound - Sent by simulator to viewer to play sound attached with an object
-{
- AttachedSound Medium Trusted Unencoded
- {
- DataBlock Single
- { SoundID LLUUID }
- { ObjectID LLUUID }
- { OwnerID LLUUID }
- { Gain F32 }
- { Flags U8 }
- }
-}
-
-// AttachedSoundGainChange - Sent by simulator to viewer to change an attached sounds' volume
-
-{
- AttachedSoundGainChange Medium Trusted Unencoded
- {
- DataBlock Single
- { ObjectID LLUUID }
- { Gain F32 }
- }
-}
-
-// AttachedSoundCutoffRadius - Sent by simulator to viewer to change an attached sounds' cutoff radius
-
-{
- AttachedSoundCutoffRadius Medium Trusted Unencoded
- {
- DataBlock Single
- { ObjectID LLUUID }
- { Radius F32 }
- }
-}
-
-// PreloadSound - Sent by simulator to viewer to preload sound for an object
-
-{
- PreloadSound Medium Trusted Unencoded
- {
- DataBlock Variable
- { ObjectID LLUUID }
- { OwnerID LLUUID }
- { SoundID LLUUID }
- }
-}
-
-
-// *************************************************************************
-// Asset storage messages
-// *************************************************************************
-
-// current assumes an existing UUID, need to enhance for new assets
-{
- AssetUploadRequest Low NotTrusted Unencoded
- {
- AssetBlock Single
- { UUID LLUUID }
- { Type S8 }
- { Tempfile BOOL }
- { StoreLocal BOOL }
- { AssetData Variable 2 } // Optional: the actual asset data if the whole thing will fit it this packet
- }
-}
-
-{
- AssetUploadComplete Low NotTrusted Unencoded
- {
- AssetBlock Single
- { UUID LLUUID }
- { Type S8 }
- { Success BOOL }
- }
-}
-
-//
-// Reputation
-//
-{
- ReputationAgentAssign Low NotTrusted Unencoded
- {
- DataBlock Single
- { RatorID LLUUID }
- { RateeID LLUUID }
- { Behavior F32 } // float, usually -1 or +1
- { Appearance F32 } // float, usually -1 or +1
- { Building F32 } // float, usually -1 or +1
- }
-}
-
-// ReputationIndividualRequest
-// Gets From's rating of To.
-// reliable
-{
- ReputationIndividualRequest Low NotTrusted Unencoded
- {
- ReputationData Single
- { FromID LLUUID }
- { ToID LLUUID }
- }
-}
-
-// ReputationIndividualReply
-// reliable
-{
- ReputationIndividualReply Low Trusted Unencoded
- {
- ReputationData Single
- { FromID LLUUID }
- { ToID LLUUID }
- { Behavior F32 } // float, usually -1 or +1
- { Appearance F32 } // float, usually -1 or +1
- { Building F32 } // float, usually -1 or +1
- }
-}
-
-
-// Script on simulator asks dataserver if there are any email messages
-// waiting.
-{
- EmailMessageRequest Low Trusted Unencoded
- {
- DataBlock Single
- { ObjectID LLUUID }
- { FromAddress Variable 1 }
- { Subject Variable 1 }
- }
-}
-
-// Dataserver gives simulator the oldest email message in the queue, along with
-// how many messages are left in the queue. And passes back the filter used to request emails.
-{
- EmailMessageReply Low Trusted Unencoded
- {
- DataBlock Single
- { ObjectID LLUUID }
- { More U32 } //U32
- { Time U32 } //U32
- { FromAddress Variable 1 }
- { Subject Variable 1 }
- { Data Variable 2 }
- { MailFilter Variable 1 }
- }
-}
-
-// Script on simulator sends mail to another script
-{
- InternalScriptMail Medium Trusted Unencoded
- {
- DataBlock Single
- { From Variable 1 }
- { To LLUUID }
- { Subject Variable 1 }
- { Body Variable 2 }
- }
-}
-
-// Script on simulator asks dataserver for information
-{
- ScriptDataRequest Low Trusted Unencoded
- {
- DataBlock Variable
- { Hash U64 }
- { RequestType S8 }
- { Request Variable 2 }
- }
-}
-
-// Data server responds with data
-{
- ScriptDataReply Low Trusted Unencoded
- {
- DataBlock Variable
- { Hash U64 }
- { Reply Variable 2 }
- }
-}
-
-
-//-----------------------------------------------------------------------------
-// Group messages
-//-----------------------------------------------------------------------------
-
-// CreateGroupRequest
-// viewer -> simulator
-// simulator -> dataserver
-// reliable
-{
- CreateGroupRequest Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- GroupData Single
- { Name Variable 1 } // string
- { Charter Variable 2 } // string
- { ShowInList BOOL }
- { InsigniaID LLUUID }
- { MembershipFee S32 } // S32
- { OpenEnrollment BOOL } // BOOL (U8)
- { AllowPublish BOOL } // whether profile is externally visible or not
- { MaturePublish BOOL } // profile is "mature"
- }
-}
-
-// CreateGroupReply
-// dataserver -> simulator
-// simulator -> viewer
-// reliable
-{
- CreateGroupReply Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- ReplyData Single
- { GroupID LLUUID }
- { Success BOOL }
- { Message Variable 1 } // string
- }
-}
-
-// UpdateGroupInfo
-// viewer -> simulator
-// simulator -> dataserver
-// reliable
-{
- UpdateGroupInfo Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- GroupData Single
- { GroupID LLUUID }
- { Charter Variable 2 } // string
- { ShowInList BOOL }
- { InsigniaID LLUUID }
- { MembershipFee S32 }
- { OpenEnrollment BOOL }
- { AllowPublish BOOL }
- { MaturePublish BOOL }
- }
-}
-
-// GroupRoleChanges
-// viewer -> simulator -> dataserver
-// reliable
-{
- GroupRoleChanges Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { GroupID LLUUID }
- }
- {
- RoleChange Variable
- { RoleID LLUUID }
- { MemberID LLUUID }
- { Change U32 }
- }
-}
-
-// JoinGroupRequest
-// viewer -> simulator -> dataserver
-// reliable
-{
- JoinGroupRequest Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- GroupData Single
- { GroupID LLUUID }
- }
-}
-
-// JoinGroupReply
-// dataserver -> simulator -> viewer
-{
- JoinGroupReply Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- GroupData Single
- { GroupID LLUUID }
- { Success BOOL }
- }
-}
-
-
-// EjectGroupMemberRequest
-// viewer -> simulator -> dataserver
-// reliable
-{
- EjectGroupMemberRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- GroupData Single
- { GroupID LLUUID }
- }
- {
- EjectData Variable
- { EjecteeID LLUUID }
- }
-}
-
-// EjectGroupMemberReply
-// dataserver -> simulator -> viewer
-// reliable
-{
- EjectGroupMemberReply Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- GroupData Single
- { GroupID LLUUID }
- }
- {
- EjectData Single
- { Success BOOL }
- }
-}
-
-// LeaveGroupRequest
-// viewer -> simulator -> dataserver
-// reliable
-{
- LeaveGroupRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- GroupData Single
- { GroupID LLUUID }
- }
-}
-
-// LeaveGroupReply
-// dataserver -> simulator -> viewer
-{
- LeaveGroupReply Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- GroupData Single
- { GroupID LLUUID }
- { Success BOOL }
- }
-}
-
-// InviteGroupRequest
-// viewer -> simulator -> dataserver
-// reliable
-{
- InviteGroupRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID } // UUID of inviting agent
- { SessionID LLUUID }
- }
- {
- GroupData Single
- { GroupID LLUUID }
- }
- {
- InviteData Variable
- { InviteeID LLUUID }
- { RoleID LLUUID }
- }
-}
-
-// InviteGroupResponse
-// simulator -> dataserver
-// reliable
-{
- InviteGroupResponse Low Trusted Unencoded
- {
- InviteData Single
- { AgentID LLUUID }
- { InviteeID LLUUID }
- { GroupID LLUUID }
- { RoleID LLUUID }
- { MembershipFee S32 }
- }
-}
-
-// GroupProfileRequest
-// viewer-> simulator -> dataserver
-// reliable
-{
- GroupProfileRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- GroupData Single
- { GroupID LLUUID }
- }
-}
-
-// GroupProfileReply
-// dataserver -> simulator -> viewer
-// reliable
-{
- GroupProfileReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- GroupData Single
- { GroupID LLUUID }
- { Name Variable 1 } // string
- { Charter Variable 2 } // string
- { ShowInList BOOL }
- { MemberTitle Variable 1 } // string
- { PowersMask U64 } // U32 mask
- { InsigniaID LLUUID }
- { FounderID LLUUID }
- { MembershipFee S32 }
- { OpenEnrollment BOOL } // BOOL (U8)
- { Money S32 }
- { GroupMembershipCount S32 }
- { GroupRolesCount S32 }
- { AllowPublish BOOL }
- { MaturePublish BOOL }
- { OwnerRole LLUUID }
- }
-}
-
-// CurrentInterval = 0 => this period (week, day, etc.)
-// CurrentInterval = 1 => last period
-// viewer -> simulator -> dataserver
-// reliable
-{
- GroupAccountSummaryRequest Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { GroupID LLUUID }
- }
- {
- MoneyData Single
- { RequestID LLUUID }
- { IntervalDays S32 }
- { CurrentInterval S32 }
- }
-}
-
-
-// dataserver -> simulator -> viewer
-// Reliable
-{
- GroupAccountSummaryReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { GroupID LLUUID }
- }
- {
- MoneyData Single
- { RequestID LLUUID }
- { IntervalDays S32 }
- { CurrentInterval S32 }
- { StartDate Variable 1 } // string
- { Balance S32 }
- { TotalCredits S32 }
- { TotalDebits S32 }
- { ObjectTaxCurrent S32 }
- { LightTaxCurrent S32 }
- { LandTaxCurrent S32 }
- { GroupTaxCurrent S32 }
- { ParcelDirFeeCurrent S32 }
- { ObjectTaxEstimate S32 }
- { LightTaxEstimate S32 }
- { LandTaxEstimate S32 }
- { GroupTaxEstimate S32 }
- { ParcelDirFeeEstimate S32 }
- { NonExemptMembers S32 }
- { LastTaxDate Variable 1 } // string
- { TaxDate Variable 1 } // string
- }
-}
-
-
-// Reliable
-{
- GroupAccountDetailsRequest Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { GroupID LLUUID }
- }
- {
- MoneyData Single
- { RequestID LLUUID }
- { IntervalDays S32 }
- { CurrentInterval S32 }
- }
-}
-
-// Reliable
-{
- GroupAccountDetailsReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { GroupID LLUUID }
- }
- {
- MoneyData Single
- { RequestID LLUUID }
- { IntervalDays S32 }
- { CurrentInterval S32 }
- { StartDate Variable 1 } // string
- }
- {
- HistoryData Variable
- { Description Variable 1 } // string
- { Amount S32 }
- }
-}
-
-
-// Reliable
-{
- GroupAccountTransactionsRequest Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { GroupID LLUUID }
- }
- {
- MoneyData Single
- { RequestID LLUUID }
- { IntervalDays S32 }
- { CurrentInterval S32 }
- }
-}
-
-// Reliable
-{
- GroupAccountTransactionsReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { GroupID LLUUID }
- }
- {
- MoneyData Single
- { RequestID LLUUID }
- { IntervalDays S32 }
- { CurrentInterval S32 }
- { StartDate Variable 1 } // string
- }
- {
- HistoryData Variable
- { Time Variable 1 } // string
- { User Variable 1 } // string
- { Type S32 }
- { Item Variable 1 } // string
- { Amount S32 }
- }
-}
-
-// GroupActiveProposalsRequest
-// viewer -> simulator -> dataserver
-//reliable
-{
- GroupActiveProposalsRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- GroupData Single
- { GroupID LLUUID }
- }
- {
- TransactionData Single
- { TransactionID LLUUID }
- }
-}
-
-// GroupActiveProposalItemReply
-// dataserver -> simulator -> viewer
-// reliable
-{
- GroupActiveProposalItemReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { GroupID LLUUID }
- }
- {
- TransactionData Single
- { TransactionID LLUUID }
- { TotalNumItems U32 }
- }
- {
- ProposalData Variable
- { VoteID LLUUID }
- { VoteInitiator LLUUID }
- { TerseDateID Variable 1 } // string
- { StartDateTime Variable 1 } // string
- { EndDateTime Variable 1 } // string
- { AlreadyVoted BOOL }
- { VoteCast Variable 1 } // string
- { Majority F32 }
- { Quorum S32 }
- { ProposalText Variable 1 } // string
- }
-}
-
-// GroupVoteHistoryRequest
-// viewer -> simulator -> dataserver
-//reliable
-{
- GroupVoteHistoryRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- GroupData Single
- { GroupID LLUUID }
- }
- {
- TransactionData Single
- { TransactionID LLUUID }
- }
-}
-
-// GroupVoteHistoryItemReply
-// dataserver -> simulator -> viewer
-// reliable
-{
- GroupVoteHistoryItemReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { GroupID LLUUID }
- }
- {
- TransactionData Single
- { TransactionID LLUUID }
- { TotalNumItems U32 }
- }
- {
- HistoryItemData Single
- { VoteID LLUUID }
- { TerseDateID Variable 1 } // string
- { StartDateTime Variable 1 } // string
- { EndDateTime Variable 1 } // string
- { VoteInitiator LLUUID }
- { VoteType Variable 1 } // string
- { VoteResult Variable 1 } // string
- { Majority F32 }
- { Quorum S32 }
- { ProposalText Variable 2 } // string
- }
- {
- VoteItem Variable
- { CandidateID LLUUID }
- { VoteCast Variable 1 } // string
- { NumVotes S32 }
- }
-}
-
-// StartGroupProposal
-// viewer -> simulator -> dataserver
-// reliable
-{
- StartGroupProposal Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ProposalData Single
- { GroupID LLUUID }
- { Quorum S32 }
- { Majority F32 } // F32
- { Duration S32 } // S32, seconds
- { ProposalText Variable 1 } // string
- }
-}
-
-// GroupProposalBallot
-// viewer -> simulator -> dataserver
-// reliable
-{
- GroupProposalBallot Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ProposalData Single
- { ProposalID LLUUID }
- { GroupID LLUUID }
- { VoteCast Variable 1 } // string
- }
-}
-
-// TallyVotes userserver -> dataserver
-// reliable
-{
- TallyVotes Low Trusted Unencoded
-}
-
-
-
-// GroupMembersRequest
-// get the group members
-// simulator -> dataserver
-// reliable
-{
- GroupMembersRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- GroupData Single
- { GroupID LLUUID }
- { RequestID LLUUID }
- }
-}
-
-// GroupMembersReply
-// list of uuids for the group members
-// dataserver -> simulator
-// reliable
-{
- GroupMembersReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- GroupData Single
- { GroupID LLUUID }
- { RequestID LLUUID }
- { MemberCount S32 }
- }
- {
- MemberData Variable
- { AgentID LLUUID }
- { Contribution S32 }
- { OnlineStatus Variable 1 } // string
- { AgentPowers U64 }
- { Title Variable 1 } // string
- { IsOwner BOOL }
- }
-}
-
-// used to switch an agent's currently active group.
-// viewer -> simulator -> dataserver -> AgentDataUpdate...
-{
- ActivateGroup Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { GroupID LLUUID }
- }
-}
-
-// viewer -> simulator -> dataserver
-{
- SetGroupContribution Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { GroupID LLUUID }
- { Contribution S32 }
- }
-}
-
-// viewer -> simulator -> dataserver
-{
- SetGroupAcceptNotices Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { GroupID LLUUID }
- { AcceptNotices BOOL }
- }
-}
-
-// GroupRoleDataRequest
-// viewer -> simulator -> dataserver
-{
- GroupRoleDataRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- GroupData Single
- { GroupID LLUUID }
- { RequestID LLUUID }
- }
-}
-
-
-// GroupRoleDataReply
-// All role data for this group
-// dataserver -> simulator -> agent
-{
- GroupRoleDataReply Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- GroupData Single
- { GroupID LLUUID }
- { RequestID LLUUID }
- { RoleCount S32 }
- }
- {
- RoleData Variable
- { RoleID LLUUID }
- { Name Variable 1 }
- { Title Variable 1 }
- { Description Variable 1 }
- { Powers U64 }
- { Members U32 }
- }
-}
-
-// GroupRoleMembersRequest
-// viewer -> simulator -> dataserver
-{
- GroupRoleMembersRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- GroupData Single
- { GroupID LLUUID }
- { RequestID LLUUID }
- }
-}
-
-// GroupRoleMembersReply
-// All role::member pairs for this group.
-// dataserver -> simulator -> agent
-{
- GroupRoleMembersReply Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { GroupID LLUUID }
- { RequestID LLUUID }
- { TotalPairs U32 }
- }
- {
- MemberData Variable
- { RoleID LLUUID }
- { MemberID LLUUID }
- }
-}
-
-// GroupTitlesRequest
-// viewer -> simulator -> dataserver
-{
- GroupTitlesRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { GroupID LLUUID }
- { RequestID LLUUID }
- }
-}
-
-
-// GroupTitlesReply
-// dataserver -> simulator -> viewer
-{
- GroupTitlesReply Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { GroupID LLUUID }
- { RequestID LLUUID }
- }
- {
- GroupData Variable
- { Title Variable 1 } // string
- { RoleID LLUUID }
- { Selected BOOL }
- }
-}
-
-// GroupTitleUpdate
-// viewer -> simulator -> dataserver
-{
- GroupTitleUpdate Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { GroupID LLUUID }
- { TitleRoleID LLUUID }
- }
-}
-
-// GroupRoleUpdate
-// viewer -> simulator -> dataserver
-{
- GroupRoleUpdate Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { GroupID LLUUID }
- }
- {
- RoleData Variable
- { RoleID LLUUID }
- { Name Variable 1 }
- { Description Variable 1 }
- { Title Variable 1 }
- { Powers U64 }
- { UpdateType U8 }
- }
-}
-
-
-
-// Request the members of the live help group needed for requesting agent.
-// userserver -> dataserver
-{
- LiveHelpGroupRequest Low Trusted Unencoded
- {
- RequestData Single
- { RequestID LLUUID }
- { AgentID LLUUID }
- }
-}
-
-// Send down the group
-// dataserver -> userserver
-{
- LiveHelpGroupReply Low Trusted Unencoded
- {
- ReplyData Single
- { RequestID LLUUID }
- { GroupID LLUUID }
- { Selection Variable 1 } // selection criteria all or active
- }
-}
-
-//-----------------------------------------------------------------------------
-// Wearable messages
-//-----------------------------------------------------------------------------
-
-// AgentWearablesRequest
-// (a.k.a. "Tell me what the avatar is wearing.")
-// viewer -> userserver -> dataserver
-// reliable
-{
- AgentWearablesRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID } // UUID
- }
-}
-
-// AgentWearablesUpdate
-// (a.k.a. "Here's what the avatar is wearing now.")
-// viewer -> userserver -> dataserver
-// dataserver -> userserver -> viewer
-// reliable
-{
- AgentWearablesUpdate Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SerialNum U32 } // U32, Increases every time the wearables change for a given agent. Used to avoid processing out of order packets.
- }
- {
- WearableData Variable
- { ItemID LLUUID }
- { AssetID LLUUID }
- { WearableType U8 } // U8, LLWearable::EWearType
- }
-}
-
-// AgentCachedTexture
-// viewer queries for cached textures on dataserver (via simulator)
-// viewer -> simulator -> dataserver
-// reliable
-{
- AgentCachedTexture Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { SerialNum S32 }
- }
- {
- WearableData Variable
- { ID LLUUID }
- { TextureIndex U8 }
- }
-}
-
-// AgentCachedTextureResponse
-// response to viewer queries for cached textures on dataserver (via simulator)
-// dataserver -> simulator -> viewer
-// reliable
-{
- AgentCachedTextureResponse Low Trusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- { SerialNum S32 }
- }
- {
- WearableData Variable
- { TextureID LLUUID }
- { TextureIndex U8 }
- { HostName Variable 1 }
- }
-}
-
-// Request an AgentDataUpdate without changing any agent data.
-{
- AgentDataUpdateRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
-}
-
-// AgentDataUpdate
-// Updates a viewer or simulator's impression of agent-specific information.
-// Used, for example, when an agent's group changes.
-// dataserver -> simulator -> viewer
-// reliable
-{
- AgentDataUpdate Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { FirstName Variable 1 } // string
- { LastName Variable 1 } // string
- { GroupTitle Variable 1 } // string
- { ActiveGroupID LLUUID } // active group
- { GroupPowers U64 }
- { GroupName Variable 1 } // string
- }
-}
-
-
-// GroupDataUpdate
-// This is a bunch of group data that needs to be appropriatly routed based on presence info.
-// dataserver -> simulator
-{
- GroupDataUpdate Low Trusted Zerocoded
- {
- AgentGroupData Variable
- { AgentID LLUUID }
- { GroupID LLUUID }
- { AgentPowers U64 }
- { GroupTitle Variable 1 }
- }
-}
-
-// AgentGroupDataUpdate
-// Updates a viewer or simulator's impression of the groups an agent is in.
-// dataserver -> simulator -> viewer
-// reliable
-{
- AgentGroupDataUpdate Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- GroupData Variable
- { GroupID LLUUID }
- { GroupPowers U64 }
- { AcceptNotices BOOL }
- { GroupInsigniaID LLUUID }
- { Contribution S32 }
- { GroupName Variable 1 } // string
- }
-}
-
-// AgentDropGroup
-// Updates the viewer / simulator that an agent is no longer part of a group
-// dataserver -> simulator -> viewer
-// dataserver -> userserver
-// reliable
-{
- AgentDropGroup Low Trusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { GroupID LLUUID }
- }
-}
-
-// LogTextMessage
-// Asks the dataserver to log the contents of this message in the
-// chat and IM log table.
-// Sent from userserver (IM logging) and simulator (chat logging).
-{
- LogTextMessage Low Trusted Zerocoded
- {
- DataBlock Variable
- { FromAgentId LLUUID }
- { ToAgentId LLUUID }
- { GlobalX F64 }
- { GlobalY F64 }
- { Time U32 } // utc seconds since epoch
- { Message Variable 2 } // string
- }
-}
-
-// ViewerEffect
-// Viewer side effect that's sent from one viewer, and broadcast to other agents nearby
-{
- ViewerEffect Medium NotTrusted Zerocoded
- {
- Effect Variable
- { ID LLUUID } // UUID of the effect
- { Type U8 } // Type of the effect
- { Duration F32 } // F32 time (seconds)
- { Color Fixed 4 } // Color4U
- { TypeData Variable 1 } // Type specific data
- }
-}
-
-// SetSunPhase
-// Sets the current phase of the sun - propagated from viewer->sim->spaceserver (if godlike)
-{
- SetSunPhase Medium NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- Data Single
- { Phase F32 } // F32 (radians)
- }
-}
-
-// CreateTrustedCircuit
-// Sent to establish a trust relationship between two components.
-// Only sent in response to a DenyTrustedCircuit message.
-{
- CreateTrustedCircuit Low NotTrusted Unencoded
- {
- DataBlock Single
- { EndPointID LLUUID }
- { Digest Fixed 32 } // 32 hex digits == 1 MD5 Digest
- }
-}
-
-// DenyTrustedCircuit
-// Sent :
-// - in response to failed CreateTrustedCircuit
-// - to force the remote end-point to try to establish a trusted circuit
-// - the reception of a trusted message on a non-trusted circuit
-// This allows us to re-auth a circuit if it gets closed due to timeouts or network failures.
-{
- DenyTrustedCircuit Low NotTrusted Unencoded
- {
- DataBlock Single
- { EndPointID LLUUID }
- }
-}
-
-
-{
- RezSingleAttachmentFromInv Low NotTrusted Zerocoded
- {
- ObjectData Single
- { AgentID LLUUID }
- { AssetID LLUUID } // asset id in inventory
- { ItemID LLUUID } // inventory item id
- { AttachmentPt U8 } // 0 for default
- { ItemFlags U32 }
- { GroupMask U32 }
- { EveryoneMask U32 }
- { NextOwnerMask U32 }
- { Name Variable 1 }
- { Description Variable 1 }
- }
-}
-
-{
- RezMultipleAttachmentsFromInv Low NotTrusted Zerocoded
- {
- HeaderData Single
- { CompoundMsgID LLUUID } // All messages a single "compound msg" must have the same id
- { TotalObjects U8 }
- { AgentID LLUUID }
- { FirstDetachAll U8 }
- }
- {
- ObjectData Variable // 1 to 4 of these per packet
- { AssetID LLUUID } // asset id in inventory
- { ItemID LLUUID } // inventory item id
- { AttachmentPt U8 } // 0 for default
- { ItemFlags U32 }
- { GroupMask U32 }
- { EveryoneMask U32 }
- { NextOwnerMask U32 }
- { Name Variable 1 }
- { Description Variable 1 }
- }
-}
-
-
-{
- DetachAttachmentIntoInv Low NotTrusted Unencoded
- {
- ObjectData Single
- { AgentID LLUUID }
- { ItemID LLUUID }
- }
-}
-
-
-// Viewer -> Sim
-// Used in "Make New Outfit"
-{
- CreateNewOutfitAttachments Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- HeaderData Single
- { NewFolderID LLUUID }
- }
- {
- ObjectData Variable
- { OldItemID LLUUID }
- { OldFolderID LLUUID }
- }
-}
-
-//-----------------------------------------------------------------------------
-// Personal information messages
-//-----------------------------------------------------------------------------
-
-{
- UserInfoRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
-}
-
-{
- UserInfoReply Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- UserData Single
- { IMViaEMail BOOL }
- { EMail Variable 2 }
- }
-}
-
-{
- UpdateUserInfo Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- UserData Single
- { IMViaEMail BOOL }
- }
-}
-
-
-//-----------------------------------------------------------------------------
-// System operations and maintenance
-//-----------------------------------------------------------------------------
-
-// GodExpungeUser is sent from a viewer or other untrusted source to
-// start the process for getting rid of a list of users. The message
-// goes to the userserver, checks for godhood, and forwards the
-// request to the dataserver. The dataserver then marks the user as being
-// expunged and sends a StartExpungeProcess out to the simulators.
-{
- GodExpungeUser Low NotTrusted Zerocoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- ExpungeData Variable
- { AgentID LLUUID }
- }
-}
-
-// StartExpungeProcess is sent from the dataserver to the userserver,
-// and from there relayed to the simulators which mark parcels and
-// objects owned by the agent as being expunged.
-{
- StartExpungeProcess Low Trusted Zerocoded
- {
- ExpungeData Variable
- { AgentID LLUUID }
- }
-}
-
-// StartExpungeProcessAck - is sent from the userserver to anyone who
-// sends a StartExpungeProcess. This is used to aid scripting the
-// expunge process, since the message system does not generate
-// any errors if you attempt to connect to a non-existant host within
-// a reasonable timeframe for scripting
-{
- StartExpungeProcessAck Low Trusted Unencoded
-}
-
-// Message to rename identified parcels. script -> userserver -> dataserver
-{
- StartParcelRename Low Trusted Unencoded
- {
- ParcelData Variable
- { ParcelID LLUUID }
- { NewName Variable 1 } // string
- }
-}
-
-// ack the last message. userserver->script
-{
- StartParcelRenameAck Low Trusted Unencoded
-}
-
-// dataserver -> userserver -> spaceserver
-{
- BulkParcelRename Low Trusted Zerocoded
- {
- ParcelData Variable
- { RegionHandle U64 }
- { ParcelID LLUUID }
- { NewName Variable 1 } // string
- }
-}
-
-// spaceserver -> sim
-// tell a particular simulator to rename a parcel
-{
- ParcelRename Low Trusted Unencoded
- {
- ParcelData Variable
- { ParcelID LLUUID }
- { NewName Variable 1 } // string
- }
-}
-
-// message to remove specified parcels. script -> userserver -> dataserver
-{
- StartParcelRemove Low Trusted Unencoded
- {
- ParcelData Variable
- { ParcelID LLUUID }
- }
-}
-
-// ack the start parcel remove message
-{
- StartParcelRemoveAck Low Trusted Unencoded
-}
-
-// dataserver -> userserver -> spaceserver
-// The space server will then slice this message into a series of
-// RemoveParcel messages.
-{
- BulkParcelRemove Low Trusted Zerocoded
- {
- ParcelData Variable
- { RegionHandle U64 }
- { ParcelID LLUUID }
- }
-}
-
-
-// viewer -> sim
-// initiate upload. primarily used for uploading raw files.
-{
- InitiateUpload Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- FileData Single
- { BaseFilename Variable 1 } // string
- { SourceFilename Variable 1 } // string
- }
-}
-
-// sim -> viewer
-// initiate upload. primarily used for uploading raw files.
-{
- InitiateDownload Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- }
- {
- FileData Single
- { SimFilename Variable 1 } // string
- { ViewerFilename Variable 1 } // string
- }
-}
-
-// Generalized system message. Each Requst has its own protocol for
-// the StringData block format and contents.
-{
- SystemMessage Low Trusted Zerocoded
- {
- MethodData Single
- { Method Variable 1 }
- { Invoice LLUUID }
- { Digest Fixed 32 } // 32 hex digits == 1 MD5 Digest
- }
- {
- ParamList Variable
- { Parameter Variable 1 }
- }
-}
-
-
-//-----------------------------------------------------------------------------
-// map messages
-//-----------------------------------------------------------------------------
-
-// viewer -> sim
-// reliable
-// This message is sent up from the viewer to (eventually) get a list
-// of all map layers and NULL-layer sims.
-// Returns: MapLayerReply and MapBlockReply
-{
- MapLayerRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { Flags U32 }
- { EstateID U32 } // filled in on sim
- { Godlike BOOL } // filled in on sim
- }
-}
-
-// sim -> viewer
-{
- MapLayerReply Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { Flags U32 }
- }
- {
- LayerData Variable
- { Left U32 }
- { Right U32 }
- { Top U32 }
- { Bottom U32 }
- { ImageID LLUUID }
- }
-}
-
-// viewer -> sim
-// This message is sent up from the viewer to get a list
-// of the sims in a specified region.
-// Returns: MapBlockReply
-{
- MapBlockRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { Flags U32 }
- { EstateID U32 } // filled in on sim
- { Godlike BOOL } // filled in on sim
- }
- {
- PositionData Single
- { MinX U16 } // in region-widths
- { MaxX U16 } // in region-widths
- { MinY U16 } // in region-widths
- { MaxY U16 } // in region-widths
- }
-}
-
-// viewer -> sim
-// This message is sent up from the viewer to get a list
-// of the sims with a given name.
-// Returns: MapBlockReply
-{
- MapNameRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { Flags U32 }
- { EstateID U32 } // filled in on sim
- { Godlike BOOL } // filled in on sim
- }
- {
- NameData Single
- { Name Variable 1 } // string
- }
-}
-
-// sim -> viewer
-{
- MapBlockReply Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { Flags U32 }
- }
- {
- Data Variable
- { X U16 } // in region-widths
- { Y U16 } // in region-widths
- { Name Variable 1 } // string
- { Access U8 } // PG, mature, etc.
- { RegionFlags U32 }
- { WaterHeight U8 } // meters
- { Agents U8 }
- { MapImageID LLUUID }
- }
-}
-
-// viewer -> sim
-// This message is sent up from the viewer to get a list
-// of the items of a particular type on the map.
-// Used for Telehubs, Agents, Events, Popular Places, etc.
-// Returns: MapBlockReply
-{
- MapItemRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { Flags U32 }
- { EstateID U32 } // filled in on sim
- { Godlike BOOL } // filled in on sim
- }
- {
- RequestData Single
- { ItemType U32 }
- { RegionHandle U64 } // filled in on sim
- }
-}
-
-// sim -> viewer
-{
- MapItemReply Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { Flags U32 }
- }
- {
- RequestData Single
- { ItemType U32 }
- }
- {
- Data Variable
- { X U32 } // global position
- { Y U32 } // global position
- { ID LLUUID } // identifier id
- { Extra S32 } // extra information
- { Extra2 S32 } // extra information
- { Name Variable 1 } // identifier string
- }
-}
-
-//-----------------------------------------------------------------------------
-// Postcard messages
-//-----------------------------------------------------------------------------
-// reliable
-{
- SendPostcard Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { AssetID LLUUID }
- { PosGlobal LLVector3d } // Where snapshot was taken
- { To Variable 1 } // dest email address(es)
- { From Variable 1 } // src email address(es)
- { Name Variable 1 } // src name
- { Subject Variable 1 } // mail subject
- { Msg Variable 2 } // message text
- { AllowPublish BOOL } // Allow publishing on the web.
- { MaturePublish BOOL } // profile is "mature"
- }
-}
-
-// RPC messages
-// Script on simulator requests rpc channel from rpcserver
-// simulator -> dataserver -> MySQL
-{
- RpcChannelRequest Low Trusted Unencoded
- {
- DataBlock Single
- { GridX U32 }
- { GridY U32 }
- { TaskID LLUUID }
- { ItemID LLUUID }
- }
-}
-
-// RpcServer allocated a session for the script
-// ChannelID will be the NULL UUID if unable to register
-// dataserver -> simulator
-{
- RpcChannelReply Low Trusted Unencoded
- {
- DataBlock Single
- { TaskID LLUUID }
- { ItemID LLUUID }
- { ChannelID LLUUID }
- }
-}
-
-// Inbound RPC requests follow this path:
-// RpcScriptRequestInbound: rpcserver -> spaceserver
-// RpcScriptRequestInboundForward: spaceserver -> simulator
-// reply: simulator -> rpcserver
-{
- RpcScriptRequestInbound Low NotTrusted Unencoded
- {
- TargetBlock Single
- { GridX U32 }
- { GridY U32 }
- }
- {
- DataBlock Single
- { TaskID LLUUID }
- { ItemID LLUUID }
- { ChannelID LLUUID }
- { IntValue U32 }
- { StringValue Variable 2 } // string
- }
-}
-
-// spaceserver -> simulator
-{
- RpcScriptRequestInboundForward Low Trusted Unencoded
- {
- DataBlock Single
- { RPCServerIP IPADDR }
- { RPCServerPort IPPORT }
- { TaskID LLUUID }
- { ItemID LLUUID }
- { ChannelID LLUUID }
- { IntValue U32 }
- { StringValue Variable 2 } // string
- }
-}
-
-// simulator -> rpcserver
-// Not trusted because trust establishment doesn't work here.
-{
- RpcScriptReplyInbound Low NotTrusted Unencoded
- {
- DataBlock Single
- { TaskID LLUUID }
- { ItemID LLUUID }
- { ChannelID LLUUID }
- { IntValue U32 }
- { StringValue Variable 2 } // string
- }
-}
-
-// Simulator asks for what sim a script lives on (intersim object->object email delivery)
-// simulator -> dataserver
-{
- MailTaskSimRequest Low NotTrusted Unencoded
- {
- DataBlock Single
- { TaskID LLUUID }
- }
-}
-
-// Reply from dataserver to simulator about where a mailping needs to go.
-// Same as below, but needs to be different as it has different routing.
-{
- MailTaskSimReply Low NotTrusted Unencoded
- {
- TargetBlock Single
- { TargetIP Variable 1 } // String IP
- { TargetPort IPPORT }
- }
- {
- DataBlock Single
- { TaskID LLUUID }
- }
-}
-
-// ScriptMailRegistration
-// Simulator -> dataserver
-{
- ScriptMailRegistration Low NotTrusted Unencoded
- {
- DataBlock Single
- { TargetIP Variable 1 } // String IP
- { TargetPort IPPORT }
- { TaskID LLUUID }
- { Flags U32 }
- }
-}
-
-
-// MailPingBounce
-// This is sent to the RPC server when the sim can not be found.
-// Not currently used.
-// Spaceserver -> RPC server
-{
- MailPingBounce Low NotTrusted Unencoded
- {
- DataBlock Single
- { TargetIP IPADDR }
- { TargetPort IPPORT }
- { TaskID LLUUID }
- { Flags U32 }
- }
-}
-
-
-// ParcelMediaCommandMessage
-// Sends a parcel media command
-{
- ParcelMediaCommandMessage Low NotTrusted Unencoded
- {
- CommandBlock Single
- { Flags U32 }
- { Command U32 }
- { Time F32 }
- }
-}
-
-// ParcelMediaUpdate
-// Sends a parcel media update to a single user
-// For global updates use the parcel manager.
-{
- ParcelMediaUpdate Low NotTrusted Unencoded
- {
- DataBlock Single
- { MediaURL Variable 1 } // string
- { MediaID LLUUID }
- { MediaAutoScale U8 }
- }
-}
-
-// LandStatRequest
-// Sent by the viewer to request collider/script information for a parcel
-{
- LandStatRequest Low NotTrusted Unencoded
- {
- AgentData Single
- { AgentID LLUUID }
- { SessionID LLUUID }
- }
- {
- RequestData Single
- { ReportType U32 }
- { RequestFlags U32 }
- { Filter Variable 1 }
- { ParcelLocalID S32 1 }
- }
-}
-
-// LandStatReply
-// Sent by the simulator in response to LandCollidersRequest
-{
- LandStatReply Low NotTrusted Unencoded
- {
- RequestData Single
- { ReportType U32 }
- { RequestFlags U32 }
- { TotalObjectCount U32 }
- }
- {
- ReportData Variable
- { TaskLocalID U32 }
- { TaskID LLUUID }
- { LocationX F32 }
- { LocationY F32 }
- { LocationZ F32 }
- { Score F32 }
- { TaskName Variable 1 }
- { OwnerName Variable 1 }
- }
-}
-
-
-
-
+// Linden Lab development message templates
+
+version 1.053
+
+// 1.053 added EndPointID to DenyTrustedCircuit and CreateTrustedCircuit. PP
+
+// *************************************************************************
+// Test Message
+// *************************************************************************
+
+// Test Message
+
+{
+ TestMessage Low NotTrusted Zerocoded
+ {
+ TestBlock1 Single
+ { Test1 U32 }
+ }
+ {
+ NeighborBlock Multiple 4
+ { Test0 U32 }
+ { Test1 U32 }
+ { Test2 U32 }
+ }
+}
+
+// *************************************************************************
+// Messaging Internal Data Management Message
+// *************************************************************************
+
+// *************************
+// List fixed messages first
+// *************************
+
+// This is the newly updated version of the message template checksum
+// request. The token is there so that the viewer can drop responses
+// that do not match the supplied token.
+{
+ SecuredTemplateChecksumRequest Fixed 0xFFFFFFFA NotTrusted Unencoded
+ {
+ TokenBlock Single
+ { Token LLUUID }
+ }
+}
+
+// Packet Ack - Ack a list of packets sent reliable
+{
+ PacketAck Fixed 0xFFFFFFFB NotTrusted Unencoded
+ {
+ Packets Variable
+ { ID U32 }
+ }
+}
+
+// OpenCircuit - Tells the recipient's messaging system to open the descibed circuit
+{
+ OpenCircuit Fixed 0xFFFFFFFC NotTrusted Unencoded
+ {
+ CircuitInfo Single
+ { IP IPADDR }
+ { Port IPPORT }
+ }
+}
+
+// CloseCircuit - Tells the recipient's messaging system to close the descibed circuit
+{
+ CloseCircuit Fixed 0xFFFFFFFD NotTrusted Unencoded
+}
+
+
+// message template version check. Deprecated - the viewer should send a
+// SecuredTemplateChecksumRequest to prevent template checksum
+// injection with a bad checksum.
+{
+ TemplateChecksumRequest Fixed 0xFFFFFFFE NotTrusted Unencoded
+}
+
+// message template version check
+{
+ TemplateChecksumReply Fixed 0xFFFFFFFF NotTrusted Unencoded
+ {
+ DataBlock Single
+ { Checksum U32 }
+ { MajorVersion U8 }
+ { MinorVersion U8 }
+ { PatchVersion U8 }
+ { ServerVersion U8 }
+ { Flags U32 }
+ }
+ {
+ TokenBlock Single
+ { Token LLUUID }
+ }
+}
+
+// ******************
+// End fixed messages
+// ******************
+
+// StartPingCheck - used to measure circuit ping times
+// PingID is used to determine how backlogged the ping was that was
+// returned (or how hosed the other side is)
+{
+ StartPingCheck High NotTrusted Unencoded
+ {
+ PingID Single
+ { PingID U8 }
+ { OldestUnacked U32 } // Current oldest "unacked" packet on the sender side
+ }
+}
+
+// CompletePingCheck - used to measure circuit ping times
+
+{
+ CompletePingCheck High NotTrusted Unencoded
+ {
+ PingID Single
+ { PingID U8 }
+ }
+}
+
+// user->viewer
+// AssignCircuitCode - Tells the recipient's messaging system what it's code is
+//{
+// AssignCircuitCode Low Trusted Unencoded
+// {
+// CircuitCode Single
+// { Code U32 }
+// { SessionID LLUUID }
+// }
+//}
+
+// space->sim
+// sim->sim
+// AddCircuitCode - Tells the recipient's messaging system that this code
+// is for a legal circuit
+{
+ AddCircuitCode Low Trusted Unencoded
+ {
+ CircuitCode Single
+ { Code U32 }
+ { SessionID LLUUID }
+ { AgentID LLUUID } // WARNING - may be null in valid message
+ }
+}
+
+// sim->space
+// Tells the spaceserver that the simulator is ready to receive an
+// agent with that circuit code.
+//{
+// AckAddCircuitCode Low Trusted Unencoded
+// {
+// CircuitCode Single
+// { Code U32 }
+// }
+//}
+
+// viewer->sim
+// UseCircuitCode - Attempts to provide the recipient with IP and Port
+// info. In the case of viewers, the id is the session id. For other
+// machines it may be null. The session id will always be the session
+// id of the process, which every server will generate on startup and
+// the viewer will be handed after login.
+{
+ UseCircuitCode Low NotTrusted Unencoded
+ {
+ CircuitCode Single
+ { Code U32 }
+ { SessionID LLUUID }
+ { ID LLUUID } // agent id
+ }
+}
+
+// LogControl - This message allows us to remotely control the
+// runtime logging facilities of the error stream. This MUST match
+// the RelayLogControl message.
+// Level - DEBUG=0, INFO=1, WARN=2, FATAL=3 system displays level and greater
+// Mask - a bit mask. Set to 0xffff to display every type
+// Time - set to 1 to turn on timestamp, 0 to turn it off
+// Location - set to 1 to turn on file/line stamp, 0 to turn it off
+// RemoteInfos - set to 1 to log llinfo to the log server (in production)
+{
+ LogControl Low Trusted Unencoded
+ {
+ Options Single
+ { Level U8 }
+ { Mask U32 }
+ { Time BOOL }
+ { Location BOOL }
+ { RemoteInfos BOOL }
+ }
+}
+
+// RelayLogControl - Just like log control, but relayed around the
+// server side to adjust the log level. This is in a separate message
+// because the handler is a bit different, only implmented on some
+// processes, and requires application level knowledge. This MUST match
+// the LogControl message.
+{
+ RelayLogControl Low Trusted Unencoded
+ {
+ Options Single
+ { Level U8 }
+ { Mask U32 }
+ { Time BOOL }
+ { Location BOOL }
+ { RemoteInfos BOOL }
+ }
+}
+
+
+// LogMessages
+// Turns on or off message system logging
+{
+ LogMessages Low Trusted Unencoded
+ {
+ Options Single
+ { Enable BOOL } // BOOL
+ }
+}
+
+
+// *************************************************************************
+// SpaceServer to Simulator Messages
+// ************************************************************************
+
+// Neighbor List - Passed anytime neighbors change
+{
+ NeighborList High Trusted Unencoded
+ {
+ NeighborBlock Multiple 4
+ { IP IPADDR }
+ { Port IPPORT }
+ { PublicIP IPADDR }
+ { PublicPort IPPORT }
+ { RegionID LLUUID }
+ { Name Variable 1 } // string
+ { SimAccess U8 }
+ }
+}
+
+
+// Simulator Assignment - Tells a simulator where it is and who it's
+// neighbors are
+{
+ SimulatorAssign Low Trusted Zerocoded
+ {
+ RegionInfo Single
+ { GridsPerEdge S32 }
+ { MetersPerGrid F32 }
+ { Handle U64 }
+ { UsecSinceStart U64 }
+ { SecPerDay U32 }
+ { SecPerYear U32 }
+ { SunDirection LLVector3 }
+ { SunAngVelocity LLVector3 }
+ { IP IPADDR }
+ { Port IPPORT }
+ }
+ {
+ NeighborBlock Multiple 4
+ { IP IPADDR }
+ { Port IPPORT }
+ { PublicIP IPADDR }
+ { PublicPort IPPORT }
+ { Name Variable 1 } // string
+ { SimAccess U8 }
+ }
+}
+
+// SpaceServerSimulatorTimeMessage - Allows simulator to resynch to world time
+{
+ SpaceServerSimulatorTimeMessage Low Trusted Unencoded
+ {
+ TimeInfo Single
+ { UsecSinceStart U64 }
+ { SecPerDay U32 }
+ { SecPerYear U32 }
+ { SunDirection LLVector3 }
+ { SunPhase F32 }
+ { SunAngVelocity LLVector3 }
+ }
+}
+
+// ClosestSimulator - Passes the closest simulator back to a simulator
+{
+ ClosestSimulator Medium Trusted Unencoded
+ {
+ SimulatorBlock Single
+ { IP IPADDR }
+ { Port IPPORT }
+ { Handle U64 }
+ }
+ {
+ Viewer Single
+ { ID LLUUID }
+ }
+}
+
+// AgentIDReply
+// dataserver -> simulator
+// reliable
+// Message send from spaceserver to simulator
+// containing agent id for a given session id
+// Also, a list of name value pairs for that agent
+// also tacked on a list of agents that have granted you powers
+//{
+// AgentIDReply Low Trusted Zerocoded
+// {
+// ReplyBlock Single
+// { RequestID LLUUID }
+// { SessionID LLUUID }
+// { AgentID LLUUID }
+// { StartLocation LLVector3 } // Vector3, region local
+// { StartLookAt LLVector3 } // Vector3, normalized
+// { GroupID LLUUID }
+// { GroupOfficer BOOL }
+// { AgentAccess U8 }
+// { GodLevel U8 }
+// { GroupTitle Variable 1 } // string
+// }
+// {
+// TextureData Variable
+// { TextureID LLUUID }
+// }
+// {
+// GranterBlock Variable
+// { GranterID LLUUID }
+// }
+// {
+// NameValueBlock Variable
+// { NameValue Variable 2 }
+// }
+// {
+// AttachmentBlock Variable
+// { AttachmentPoint U8 }
+// { ItemID LLUUID }
+// { AssetID LLUUID }
+// }
+//}
+
+// AvatarTextureUpdate
+// simulator -> dataserver
+// reliable
+{
+ AvatarTextureUpdate Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { TexturesChanged BOOL }
+ { HostName Variable 1 }
+ }
+ {
+ WearableData Variable
+ { CacheID LLUUID }
+ { TextureIndex U8 }
+ }
+ {
+ TextureData Variable
+ { TextureID LLUUID }
+ }
+}
+
+
+// SimulatorMapUpdate
+// simulator -> dataserver
+// reliable
+{
+ SimulatorMapUpdate Low Trusted Unencoded
+ {
+ MapData Single
+ { Flags U32 }
+ }
+}
+
+// SimulatorSetMap
+// simulator -> dataserver
+// reliable
+// Used to upload a map image into the database (currently used only for Land For Sale)
+{
+ SimulatorSetMap Low Trusted Unencoded
+ {
+ MapData Single
+ { RegionHandle U64 }
+ { Type S32 }
+ { MapImage LLUUID }
+ }
+}
+
+// SubscribeLoad
+// spaceserver -> simulator
+// reliable
+{
+ SubscribeLoad Low Trusted Unencoded
+}
+
+// UnsubscribeLoad
+// spaceserver -> simulator
+// reliable
+{
+ UnsubscribeLoad Low Trusted Unencoded
+}
+
+
+// ************************************************************************
+// Simulator to SpaceServer Messages
+// ************************************************************************
+
+// Simulator Start - Tells spaceserver that simulator is online and wants to be
+// assigned.
+{
+ SimulatorStart Low Trusted Unencoded
+ {
+ ControlPort Single
+ { Port IPPORT }
+ { PublicIP IPADDR }
+ { PublicPort IPPORT }
+ }
+ {
+ PositionSuggestion Single
+ { Ignore BOOL } // if non-zero, SS should put it in the next available slot
+ { GridX S32 }
+ { GridY S32 }
+ }
+}
+
+// SimulatorReady - indicates the sim has finished loading its state
+// and is ready to receive updates from others
+{
+ SimulatorReady Low Trusted Zerocoded
+ {
+ SimulatorBlock Single
+ { SimName Variable 1 }
+ { SimAccess U8 }
+ { RegionFlags U32 }
+ { RegionID LLUUID }
+ { EstateID U32 }
+ { ParentEstateID U32 }
+ }
+ {
+ TelehubBlock Single
+ { HasTelehub BOOL }
+ { TelehubPos LLVector3 }
+ }
+}
+
+// TelehubInfo - fill in the UI for telehub creation floater.
+// sim -> viewer
+// reliable
+{
+ TelehubInfo Low NotTrusted Unencoded
+ {
+ TelehubBlock Single
+ { ObjectID LLUUID } // null if no telehub
+ { ObjectName Variable 1 } // string
+ { TelehubPos LLVector3 } // fallback if viewer can't find object
+ { TelehubRot LLQuaternion }
+ }
+ {
+ SpawnPointBlock Variable
+ { SpawnPointPos LLVector3 } // relative to telehub position
+ }
+}
+
+// SimulatorPresentAtLocation - indicates that the sim is present at a grid
+// location and passes what it believes its neighbors are
+{
+ SimulatorPresentAtLocation Low Trusted Unencoded
+ {
+ SimulatorPublicHostBlock Single
+ { Port IPPORT }
+ { SimulatorIP IPADDR }
+ { GridX U32 }
+ { GridY U32 }
+ }
+ {
+ NeighborBlock Multiple 4
+ { IP IPADDR }
+ { Port IPPORT }
+ }
+ {
+ SimulatorBlock Single
+ { SimName Variable 1 }
+ { SimAccess U8 }
+ { RegionFlags U32 }
+ { RegionID LLUUID }
+ { EstateID U32 }
+ { ParentEstateID U32 }
+ }
+ {
+ TelehubBlock Variable
+ { HasTelehub BOOL }
+ { TelehubPos LLVector3 }
+ }
+}
+
+// SimulatorLoad
+// simulator -> spaceserver
+// reliable
+{
+ SimulatorLoad Low Trusted Unencoded
+ {
+ SimulatorLoad Single
+ { TimeDilation F32 }
+ { AgentCount S32 }
+ { CanAcceptAgents BOOL }
+ }
+ {
+ AgentList Variable
+ { CircuitCode U32 }
+ { X U8 }
+ { Y U8 }
+ }
+}
+
+// Simulator Shutdown Request - Tells spaceserver that a simulator is trying to shutdown
+{
+ SimulatorShutdownRequest Low Trusted Unencoded
+}
+
+
+// AgentIDRequest
+// Request to report agent ID associated with a session id
+//{
+// AgentIDRequest Low Trusted Unencoded
+// {
+// RequestBlock Single
+// { RequestID LLUUID }
+// { SessionID LLUUID }
+// { LocationID U32 } // 0 = last location
+// { Godlike BOOL }
+// }
+//}
+// ****************************************************************************
+// Presense messages
+// ****************************************************************************
+
+// sim -> dataserver
+{
+ RegionPresenceRequestByRegionID Low Trusted Unencoded
+ {
+ RegionData Variable
+ { RegionID LLUUID }
+ }
+}
+
+sim -> dataserver
+{
+ RegionPresenceRequestByHandle Low Trusted Unencoded
+ {
+ RegionData Variable
+ { RegionHandle U64 }
+ }
+}
+
+// dataserver -> sim
+{
+ RegionPresenceResponse Low Trusted Zerocoded
+ {
+ RegionData Variable
+ { RegionID LLUUID }
+ { RegionHandle U64 }
+ { InternalRegionIP IPADDR }
+ { ExternalRegionIP IPADDR }
+ { RegionPort IPPORT }
+ { ValidUntil F64 }
+ { Message Variable 1 }
+ }
+}
+
+// Record agent presence - this totally supercedes the TrackAgentSession
+// and ClearAgentSessions functionality
+{
+ RecordAgentPresence Low Trusted Unencoded
+ {
+ RegionData Single
+ { RegionID LLUUID }
+ }
+ {
+ AgentData Variable
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { SecureSessionID LLUUID }
+ { LocalX S16 }
+ { LocalY S16 }
+ { TimeToLive S32 } // in seconds
+ { Status S32 }
+ { EstateID U32 }
+ }
+}
+
+// Erase a set of agent presence records. Useful during logout or kick.
+{
+ EraseAgentPresence Low Trusted Unencoded
+ {
+ AgentData Variable
+ { AgentID LLUUID }
+ }
+}
+
+// request IP and port for agents
+{
+ AgentPresenceRequest Low Trusted Unencoded
+ {
+ AgentData Variable
+ { AgentID LLUUID }
+ }
+}
+
+// response for agent locations
+{
+ AgentPresenceResponse Low Trusted Unencoded
+ {
+ AgentData Variable
+ { AgentID LLUUID }
+ { RegionIP IPADDR }
+ { RegionPort IPPORT }
+ { ValidUntil F64 }
+ { EstateID U32 }
+ }
+}
+
+
+// ****************************************************************************
+// Simulator to dataserver messages
+// ****************************************************************************
+
+// Updates SimName, EstateID and SimAccess using RegionID as a key
+{
+ UpdateSimulator Low Trusted Unencoded
+ {
+ SimulatorInfo Single
+ { RegionID LLUUID }
+ { SimName Variable 1 }
+ { EstateID U32 }
+ { SimAccess U8 }
+ }
+}
+
+
+// The simulator sends out this message from time to time
+{
+ TrackAgentSession Low Trusted Unencoded
+ {
+ RegionData Single
+ { RegionX F32 }
+ { RegionY F32 }
+ { SpaceIP IPADDR }
+ { EstateID U32 }
+ { AgentCount U32 }
+ }
+ {
+ SessionInfo Variable
+ { SessionID LLUUID }
+ { ViewerIP IPADDR }
+ { ViewerPort IPPORT }
+ { GlobalX F64 }
+ { GlobalY F64 }
+ }
+}
+
+
+// clear out sessions for this sim, because it's coming up or going down
+{
+ ClearAgentSessions Low Trusted Unencoded
+ {
+ RegionInfo Single
+ { RegionX U32 }
+ { RegionY U32 }
+ { SpaceIP IPADDR }
+ }
+}
+
+// record dwell time.
+{
+ LogDwellTime Low Trusted Unencoded
+ {
+ DwellInfo Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { Duration F32 }
+ { SimName Variable 1 }
+ { RegionX U32 }
+ { RegionY U32 }
+ }
+}
+
+// record lost money transactions. This message could be generated
+// from either the simulator or the dataserver, depending on how
+// the transaction failed.
+{
+ LogFailedMoneyTransaction Low Trusted Unencoded
+ {
+ TransactionData Single
+ { TransactionID LLUUID }
+ { TransactionTime U32 } // utc seconds since epoch
+ { TransactionType S32 } // see lltransactiontypes.h
+ { SourceID LLUUID }
+ { DestID LLUUID } // destination of the transfer
+ { Flags U8 }
+ { Amount S32 }
+ { SimulatorIP IPADDR } // U32 encoded IP
+ { GridX U32 }
+ { GridY U32 }
+ { FailureType U8 }
+ }
+}
+
+// complaint/bug-report - sim -> dataserver. see UserReport for details.
+// reliable
+{
+ UserReportInternal Low Trusted Zerocoded
+ {
+ ReportData Single
+ { ReportType U8 }
+ { Category U8 }
+ { ReporterID LLUUID }
+ { ViewerPosition LLVector3 }
+ { AgentPosition LLVector3 }
+ { ScreenshotID LLUUID }
+ { ObjectID LLUUID }
+ { OwnerID LLUUID }
+ { LastOwnerID LLUUID }
+ { CreatorID LLUUID }
+ { SimName Variable 1 }
+ { Summary Variable 1 }
+ { Details Variable 2 }
+ { VersionString Variable 1 }
+ }
+ {
+ MeanCollision Variable
+ { Perp LLUUID }
+ { Time U32 }
+ { Mag F32 }
+ { Type U8 }
+ }
+}
+
+// SetSimStatusInDatabase
+// alters the "simulator" table in the database
+// sim -> dataserver
+// reliable
+{
+ SetSimStatusInDatabase Low Trusted Unencoded
+ {
+ Data Single
+ { RegionID LLUUID }
+ { HostName Variable 1 }
+ { X S32 }
+ { Y S32 }
+ { PID S32 }
+ { AgentCount S32 }
+ { TimeToLive S32 } // in seconds
+ { Status Variable 1 }
+ }
+}
+
+// SetSimPresenceInDatabase
+// updates the "presence" table in the database to ensure
+// that a given simulator is present and valid for a set amount of
+// time
+{
+ SetSimPresenceInDatabase Low Trusted Unencoded
+ {
+ SimData Single
+ { RegionID LLUUID }
+ { HostName Variable 1 }
+ { GridX U32 }
+ { GridY U32 }
+ { PID S32 }
+ { AgentCount S32 }
+ { TimeToLive S32 } // in seconds
+ { Status Variable 1 }
+ }
+}
+
+// ***************************************************************************
+// Economy messages
+// ***************************************************************************
+
+// once we use local stats, this will include a region handle
+{
+ EconomyDataRequest Low NotTrusted Unencoded
+}
+
+// dataserver to sim, response w/ econ data
+{
+ EconomyData Low Trusted Zerocoded
+ {
+ Info Single
+ { ObjectCapacity S32 }
+ { ObjectCount S32 }
+ { PriceEnergyUnit S32 }
+ { PriceObjectClaim S32 }
+ { PricePublicObjectDecay S32 }
+ { PricePublicObjectDelete S32 }
+ { PriceParcelClaim S32 }
+ { PriceParcelClaimFactor F32 }
+ { PriceUpload S32 }
+ { PriceRentLight S32 }
+ { TeleportMinPrice S32 }
+ { TeleportPriceExponent F32 }
+ { EnergyEfficiency F32 }
+ { PriceObjectRent F32 }
+ { PriceObjectScaleFactor F32 }
+ { PriceParcelRent S32 }
+ { PriceGroupCreate S32 }
+ }
+}
+
+// ***************************************************************************
+// Search messages
+// ***************************************************************************
+
+// AvatarPickerRequest
+// Get a list of names to select a person
+// viewer -> sim -> data
+// reliable
+{
+ AvatarPickerRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { QueryID LLUUID }
+ }
+ {
+ Data Single
+ { Name Variable 1 }
+ }
+}
+
+// backend implementation which tracks if the user is a god.
+{
+ AvatarPickerRequestBackend Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { QueryID LLUUID }
+ { GodLevel U8 }
+ }
+ {
+ Data Single
+ { Name Variable 1 }
+ }
+}
+
+// AvatarPickerReply
+// List of names to select a person
+// reliable
+{
+ AvatarPickerReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { QueryID LLUUID }
+ }
+ {
+ Data Variable
+ { AvatarID LLUUID }
+ { FirstName Variable 1 }
+ { LastName Variable 1 }
+ }
+}
+
+// PlacesQuery
+// Used for getting a list of places for the group land panel
+// and the user land holdings panel. NOT for the directory.
+{
+ PlacesQuery Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { QueryID LLUUID }
+ }
+ {
+ TransactionData Single
+ { TransactionID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryText Variable 1 }
+ { QueryFlags U32 }
+ { Category S8 }
+ { SimName Variable 1 }
+ }
+}
+
+// PlacesReply
+// dataserver -> simulator -> viewer
+// If the user has specified a location, use that to compute
+// global x,y,z. Otherwise, use center of the AABB.
+// reliable
+{
+ PlacesReply Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { QueryID LLUUID }
+ }
+ {
+ TransactionData Single
+ { TransactionID LLUUID }
+ }
+ {
+ QueryData Variable
+ { OwnerID LLUUID }
+ { Name Variable 1 }
+ { Desc Variable 1 }
+ { ActualArea S32 }
+ { BillableArea S32 }
+ { Flags U8 }
+ { GlobalX F32 } // meters
+ { GlobalY F32 } // meters
+ { GlobalZ F32 } // meters
+ { SimName Variable 1 }
+ { SnapshotID LLUUID }
+ { Dwell F32 }
+ { Price S32 }
+ }
+}
+
+// DirFindQuery viewer->sim
+// Message to start asking questions for the directory
+{
+ DirFindQuery Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 }
+ { QueryFlags U32 }
+ { QueryStart S32 } // prev/next page support
+ }
+}
+
+// DirFindQueryBackend sim->data
+// Trusted message generated by receipt of DirFindQuery to sim.
+{
+ DirFindQueryBackend Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 }
+ { QueryFlags U32 }
+ { QueryStart S32 } // prev/next page support
+ { EstateID U32 }
+ { Godlike BOOL }
+ { SpaceIP IPADDR } // check online for right farm
+ }
+}
+
+
+// DirPlacesQuery viewer->sim
+// Used for the Find directory of places
+{
+ DirPlacesQuery Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 }
+ { QueryFlags U32 }
+ { Category S8 }
+ { SimName Variable 1 }
+ { QueryStart S32 }
+ }
+}
+
+// DirPlacesQueryBackend sim->dataserver
+// Used for the Find directory of places.
+{
+ DirPlacesQueryBackend Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 }
+ { QueryFlags U32 }
+ { Category S8 }
+ { SimName Variable 1 }
+ { EstateID U32 }
+ { Godlike BOOL }
+ { QueryStart S32 }
+ }
+}
+
+// DirPlacesReply dataserver->sim->viewer
+// If the user has specified a location, use that to compute
+// global x,y,z. Otherwise, use center of the AABB.
+// reliable
+{
+ DirPlacesReply Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Variable
+ { QueryID LLUUID }
+ }
+ {
+ QueryReplies Variable
+ { ParcelID LLUUID }
+ { Name Variable 1 }
+ { ForSale BOOL }
+ { Auction BOOL }
+ { ReservedNewbie BOOL }
+ { Dwell F32 }
+ }
+}
+
+// DirPeopleQuery viewer->sim
+// ask about people. This gets translated into a DirPeopleQueryTrusted on
+// the simulator.
+// *NOTE: this message is not in use on the viewer. 2004.07.02 \P/hoenix
+{
+ DirPeopleQuery Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 }
+ { Name Variable 1 }
+ { Group Variable 1 }
+ { Online U8 }
+ { WantToFlags U32 }
+ { SkillFlags U32 }
+ { Reputation Variable 1 } // string representation of "< 1" or "> 6" or "= 99"
+ { Distance Variable 1 } // string representation of "< 1" or "> 6" or "= 99"
+ }
+}
+
+// DirPeopleQueryBackend sim->dataserver
+// continue query about people whith a space ip address.
+{
+ DirPeopleQueryBackend Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 }
+ { Name Variable 1 }
+ { Group Variable 1 }
+ { Online U8 }
+ { WantToFlags U32 }
+ { SkillFlags U32 }
+ { Reputation Variable 1 } // string representation of "< 1" or "> 6" or "= 99"
+ { Distance Variable 1 } // string representation of "< 1" or "> 6" or "= 99"
+ { EstateID U32 }
+ { Godlike BOOL }
+ { SpaceIP IPADDR } // used to check online status for the right farm
+ }
+}
+
+// DirPeopleReply
+{
+ DirPeopleReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ }
+ {
+ QueryReplies Variable
+ { AgentID LLUUID }
+ { FirstName Variable 1 }
+ { LastName Variable 1 }
+ { Group Variable 1 }
+ { Online BOOL }
+ { Reputation S32 }
+ }
+}
+
+// DirEventsReply
+{
+ DirEventsReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ }
+ {
+ QueryReplies Variable
+ { OwnerID LLUUID }
+ { Name Variable 1 }
+ { EventID U32 }
+ { Date Variable 1 }
+ { UnixTime U32 }
+ { EventFlags U32 }
+ }
+}
+
+// DirGroupsQuery viewer->sim
+// reliable
+{
+ DirGroupsQuery Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 } // string
+ }
+}
+
+// DirGroupsQueryBackend sim->dataserver
+// reliable
+{
+ DirGroupsQueryBackend Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 } // string
+ { EstateID U32 }
+ { Godlike BOOL }
+ }
+}
+
+
+// DirGroupsReply
+// dataserver -> userserver -> viewer
+// reliable
+{
+ DirGroupsReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ }
+ {
+ QueryReplies Variable
+ { GroupID LLUUID }
+ { GroupName Variable 1 } // string
+ { Members S32 }
+ { OpenEnrollment BOOL }
+ { MembershipFee S32 }
+ }
+}
+
+
+// DirClassifiedQuery viewer->sim
+// reliable
+{
+ DirClassifiedQuery Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 }
+ { QueryFlags U32 }
+ { Category U32 }
+ }
+}
+
+// DirClassifiedQueryBackend sim->dataserver
+// reliable
+{
+ DirClassifiedQueryBackend Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 }
+ { QueryFlags U32 }
+ { Category U32 }
+ { EstateID U32 }
+ { Godlike BOOL }
+ }
+}
+
+// DirClassifiedReply dataserver->sim->viewer
+// reliable
+{
+ DirClassifiedReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ }
+ {
+ QueryReplies Variable
+ { ClassifiedID LLUUID }
+ { Name Variable 1 }
+ { ClassifiedFlags U8 }
+ { CreationDate U32 }
+ { ExpirationDate U32 }
+ { PriceForListing S32 }
+ }
+}
+
+
+// AvatarClassifiedReply
+// dataserver -> simulator -> viewer
+// Send the header information for this avatar's classifieds
+// This fills in the tabs of the Classifieds panel.
+// reliable
+{
+ AvatarClassifiedReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { TargetID LLUUID }
+ }
+ {
+ Data Variable
+ { ClassifiedID LLUUID }
+ { Name Variable 1 }
+ }
+}
+
+
+// ClassifiedInfoRequest
+// viewer -> simulator
+// simulator -> dataserver
+// reliable
+{
+ ClassifiedInfoRequest Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { ClassifiedID LLUUID }
+ }
+}
+
+
+// ClassifiedInfoReply
+// dataserver -> simulator
+// simulator -> viewer
+// reliable
+{
+ ClassifiedInfoReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ Data Single
+ { ClassifiedID LLUUID }
+ { CreatorID LLUUID }
+ { CreationDate U32 }
+ { ExpirationDate U32 }
+ { Category U32 }
+ { Name Variable 1 }
+ { Desc Variable 2 }
+ { ParcelID LLUUID }
+ { ParentEstate U32 }
+ { SnapshotID LLUUID }
+ { SimName Variable 1 }
+ { PosGlobal LLVector3d }
+ { ParcelName Variable 1 }
+ { ClassifiedFlags U8 }
+ { PriceForListing S32 }
+ }
+}
+
+
+// ClassifiedInfoUpdate
+// Update a classified. ParcelID and EstateID are set
+// on the simulator as the message passes through.
+// viewer -> simulator -> dataserver
+// reliable
+{
+ ClassifiedInfoUpdate Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { ClassifiedID LLUUID }
+ { Category U32 }
+ { Name Variable 1 }
+ { Desc Variable 2 }
+ { ParcelID LLUUID }
+ { ParentEstate U32 }
+ { SnapshotID LLUUID }
+ { PosGlobal LLVector3d }
+ { ClassifiedFlags U8 }
+ { PriceForListing S32 }
+ }
+}
+
+
+// ClassifiedDelete
+// Delete a classified from the database.
+// viewer -> simulator -> dataserver
+// reliable
+{
+ ClassifiedDelete Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { ClassifiedID LLUUID }
+ }
+}
+
+// ClassifiedGodDelete
+// Delete a classified from the database.
+// QueryID is needed so database can send a repeat list of
+// classified.
+// viewer -> simulator -> dataserver
+// reliable
+{
+ ClassifiedGodDelete Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { ClassifiedID LLUUID }
+ { QueryID LLUUID }
+ }
+}
+
+
+
+// DirPicksQuery viewer->sim
+// reliable
+{
+ DirPicksQuery Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryFlags U32 }
+ }
+}
+
+// DirPicksQueryBackend sim->dataserver
+// reliable
+{
+ DirPicksQueryBackend Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryFlags U32 }
+ { EstateID U32 }
+ { Godlike BOOL }
+ }
+}
+
+// DirPicksReply dataserver->sim->viewer
+// reliable
+{
+ DirPicksReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ }
+ {
+ QueryReplies Variable
+ { PickID LLUUID }
+ { Name Variable 1 }
+ { Enabled BOOL }
+ }
+}
+
+
+// DirLandQuery viewer->sim
+// Special query for the land for sale/auction panel.
+// reliable
+{
+ DirLandQuery Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryFlags U32 }
+ { ForSale BOOL }
+ { Auction BOOL }
+ { ReservedNewbie BOOL }
+ }
+}
+
+// DirLandQueryBackend sim->dataserver
+// Special query for the land for sale/auction panel.
+{
+ DirLandQueryBackend Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryFlags U32 }
+ { ForSale BOOL }
+ { Auction BOOL }
+ { ReservedNewbie BOOL }
+ { EstateID U32 }
+ { Godlike BOOL }
+ }
+}
+
+// DirLandReply
+// dataserver -> simulator -> viewer
+// reliable
+{
+ DirLandReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ }
+ {
+ QueryReplies Variable
+ { ParcelID LLUUID }
+ { Name Variable 1 }
+ { Auction BOOL }
+ { ForSale BOOL }
+ { ReservedNewbie BOOL }
+ { SalePrice S32 }
+ { ActualArea S32 }
+ }
+}
+
+// DirPopularQuery viewer->sim
+// Special query for the land for sale/auction panel.
+// reliable
+{
+ DirPopularQuery Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryFlags U32 }
+ }
+}
+
+// DirPopularQueryBackend sim->dataserver
+// Special query for the land for sale/auction panel.
+// reliable
+{
+ DirPopularQueryBackend Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryFlags U32 }
+ { EstateID U32 }
+ { Godlike BOOL }
+ }
+}
+
+// DirPopularReply
+// dataserver -> simulator -> viewer
+// reliable
+{
+ DirPopularReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ }
+ {
+ QueryReplies Variable
+ { ParcelID LLUUID }
+ { Name Variable 1 }
+ { Dwell F32 }
+ }
+}
+
+// ParcelInfoRequest
+// viewer -> simulator -> dataserver
+// reliable
+{
+ ParcelInfoRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { ParcelID LLUUID }
+ }
+}
+
+// ParcelInfoReply
+// dataserver -> simulator -> viewer
+// reliable
+{
+ ParcelInfoReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ Data Single
+ { ParcelID LLUUID }
+ { OwnerID LLUUID }
+ { Name Variable 1 }
+ { Desc Variable 1 }
+ { ActualArea S32 }
+ { BillableArea S32 }
+ { Flags U8 }
+ { GlobalX F32 } // meters
+ { GlobalY F32 } // meters
+ { GlobalZ F32 } // meters
+ { SimName Variable 1 }
+ { SnapshotID LLUUID }
+ { Dwell F32 }
+ { SalePrice S32 }
+ { AuctionID S32 }
+ }
+}
+
+
+// ParcelObjectOwnersRequest
+// viewer -> simulator
+// reliable
+{
+ ParcelObjectOwnersRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { LocalID S32 }
+ }
+}
+
+// simulator -> dataserver
+// reliable
+{
+ OnlineStatusRequest Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { QueryID LLUUID }
+ { EstateID U32 }
+ { Godlike BOOL }
+ { SpaceIP IPADDR } // check online for right farm
+ }
+ {
+ Data Variable
+ { ID LLUUID }
+ }
+}
+
+// dataserver -> simulator
+// reliable
+{
+ OnlineStatusReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { QueryID LLUUID }
+ }
+ {
+ Data Variable
+ { ID LLUUID } // only online agents are returned
+ }
+}
+
+// ParcelObjectOwnersReply
+// simulator -> viewer
+// reliable
+{
+ ParcelObjectOwnersReply Low Trusted Zerocoded
+ {
+ Data Variable
+ { OwnerID LLUUID }
+ { IsGroupOwned BOOL }
+ { Count S32 }
+ { OnlineStatus BOOL }
+ }
+}
+
+// GroupNoticeListRequest
+// viewer -> simulator -> dataserver
+// reliable
+{
+ GroupNoticesListRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { GroupID LLUUID }
+ }
+}
+
+// GroupNoticesListReply
+// dataserver -> simulator -> viewer
+// reliable
+{
+ GroupNoticesListReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ Data Variable
+ { NoticeID LLUUID }
+ { Timestamp U32 }
+ { FromName Variable 2 }
+ { Subject Variable 2 }
+ { HasAttachment BOOL }
+ { AssetType U8 }
+ }
+}
+
+// GroupNoticeRequest
+// viewer -> simulator
+// simulator -> dataserver
+// reliable
+{
+ GroupNoticeRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { GroupNoticeID LLUUID }
+ }
+}
+
+// GroupNoticeAdd
+// Add a group notice.
+// simulator -> dataserver
+// reliable
+{
+ GroupNoticeAdd Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ MessageBlock Single
+ { ToGroupID LLUUID }
+ { ID LLUUID }
+ { Dialog U8 }
+ { FromAgentName Variable 1 }
+ { Message Variable 2 }
+ { BinaryBucket Variable 2 }
+ }
+}
+
+
+// GroupNoticeDelete
+// Delete a group notice from the database.
+// viewer -> simulator -> dataserver
+// reliable
+{
+ GroupNoticeDelete Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { GroupNoticeID LLUUID }
+ { GroupID LLUUID }
+ }
+}
+
+
+
+// ****************************************************************************
+// Teleport messages
+//
+// The teleport messages are numerous, so I have attempted to give them a
+// consistent naming convention. Since there is a bit of glob pattern
+// aliasing, the rules are applied in order.
+//
+// Teleport* - viewer->sim or sim->viewer message which announces a
+// teleportation request, progrees, start, or end.
+// Data* - sim->data or data->sim trusted message.
+// Space* - sim->space or space->sim trusted messaging
+// *Lure - A lure message to pass around information.
+//
+// All actual viewer teleports will begin with a Teleport* message and
+// end in a TeleportStart, TeleportLocal or TeleportFailed message. The TeleportFailed
+// message may be returned by any process and must be routed through the
+// teleporting agent's simulator and back to the viewer.
+// ****************************************************************************
+
+// TeleportRequest
+// viewer -> sim specifying exact teleport destination
+{
+ TeleportRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Info Single
+ { RegionID LLUUID }
+ { Position LLVector3 }
+ { LookAt LLVector3 }
+ }
+}
+
+// TeleportLocationRequest
+// viewer -> sim specifying exact teleport destination
+{
+ TeleportLocationRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Info Single
+ { RegionHandle U64 }
+ { Position LLVector3 }
+ { LookAt LLVector3 }
+ }
+}
+
+// TeleportLocal
+// sim -> viewer reply telling the viewer that we've successfully TP'd
+// to somewhere else within the sim
+{
+ TeleportLocal Low Trusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { LocationID U32 }
+ { Position LLVector3 } // region
+ { LookAt LLVector3 }
+ { TeleportFlags U32 }
+ }
+}
+
+// TeleportLandmarkRequest viewer->sim
+// teleport to landmark asset ID destination. use LLUUD::null for home.
+{
+ TeleportLandmarkRequest Low NotTrusted Zerocoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { LandmarkID LLUUID }
+ }
+}
+
+// TeleportProgress sim->viewer
+// Tell the agent how the teleport is going.
+{
+ TeleportProgress Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Info Single
+ { TeleportFlags U32 }
+ { Message Variable 1 } // string
+ }
+}
+
+// DataAgentAccessRequest sim->data
+// ask if agent ID can in fact teleport from their current location in
+// EstateID to the destination specified by RegionHandle. If allowed,
+// the handler will persist the location in user_start_location and
+// send back a DataAgentAccessReply. Otherwise, the handler will send back
+// a TeleportFailed.
+{
+ DataAgentAccessRequest Low Trusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { EstateID U32 }
+ { RegionHandle U64 }
+ { LocationID U32 }
+ { LocationPos LLVector3 }
+ { LocationLookAt LLVector3 }
+ }
+}
+
+// DataAgentAccessReply data->sim
+// Message to let us know if AgentID is allowed to teleport to RegionHandle.
+{
+ DataAgentAccessReply Low Trusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ }
+}
+
+// DataHomeLocationRequest sim->data
+// Request
+{
+ DataHomeLocationRequest Low Trusted Zerocoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ }
+}
+
+// DataHomeLocationReply data->sim
+// response is the location of agent home.
+{
+ DataHomeLocationReply Low Trusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { RegionHandle U64 }
+ { Position LLVector3 } // region coords
+ { LookAt LLVector3 }
+ }
+}
+
+// SpaceLocationTeleportRequest sim->space
+// Reuqest for info about remote location
+{
+ SpaceLocationTeleportRequest Low Trusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { CircuitCode U32 }
+ { RegionHandle U64 }
+ { Position LLVector3 } // region
+ { LookAt LLVector3 }
+ { TravelAccess U8 }
+ { ParentEstateID U32 }
+ { TeleportFlags U32 }
+ }
+}
+
+// SpaceLocationTeleportReply space->sim
+// with info about remote location
+{
+ SpaceLocationTeleportReply Low Trusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { LocationID U32 }
+ { SimIP IPADDR }
+ { SimPort IPPORT }
+ { RegionHandle U64 }
+ { Position LLVector3 } // region
+ { LookAt LLVector3 }
+ { SimName Variable 1 }
+ { SimAccess U8 }
+ { TeleportFlags U32 }
+ }
+}
+
+// TeleportFinish sim->viewer
+// called when all of the information has been collected and readied for
+// the agent.
+{
+ TeleportFinish Low Trusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { LocationID U32 }
+ { SimIP IPADDR }
+ { SimPort IPPORT }
+ { RegionHandle U64 }
+ { SeedCapability Variable 2 } // URL
+ { SimAccess U8 }
+ { TeleportFlags U32 }
+ }
+}
+
+// StartLure viewer->sim
+// Sent from viewer to the local simulator to lure target id to near
+// agent id. This will generate an instant message that will be routed
+// through the space server and out to the userserver. When that IM
+// goes through the userserver and the TargetID is online, the
+// userserver will send an InitializeLure to the spaceserver. When that
+// packet is acked, the original instant message is finally forwarded to
+// TargetID.
+{
+ StartLure Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Info Single
+ { LureType U8 }
+ { TargetID LLUUID }
+ { Message Variable 1 }
+ }
+}
+
+// TeleportLureRequest viewer->sim
+// Message from target of lure to begin the teleport process on the
+// local simulator.
+{
+ TeleportLureRequest Low NotTrusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { LureID LLUUID }
+ { TeleportFlags U32 }
+ }
+}
+
+// TeleportCancel viewer->sim
+// reliable
+{
+ TeleportCancel Low NotTrusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+// CompleteLure sim->space
+// message with final necessary info about accepted lure. The
+// spaceserver will reply with a SpaceLocationTeleportReply or
+// TeleportFailed and it becomes like any other teleport.
+{
+ CompleteLure Low Trusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { LureID LLUUID }
+ { CircuitCode U32 }
+ { TravelAccess U8 }
+ { ParentEstateID U32 }
+ { TeleportFlags U32 }
+ }
+}
+
+// TeleportStart sim->viewer
+// announce a successful teleport request to the viewer.
+{
+ TeleportStart Low Trusted Unencoded
+ {
+ Info Single
+ { TeleportFlags U32 }
+ }
+}
+
+// TeleportFailed somehwere->sim->viewer
+// announce failure of teleport request
+{
+ TeleportFailed Low Trusted Unencoded
+ {
+ Info Single
+ { AgentID LLUUID }
+ { Reason Variable 1 } // string
+ }
+}
+
+// ***************************************************************************
+// Leader Board messages
+// ***************************************************************************
+{
+ LeaderBoardRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { Type S32 }
+ }
+}
+
+{
+ LeaderBoardData Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ BoardData Single
+ { Type S32 }
+ { MinPlace S32 }
+ { MaxPlace S32 }
+ { TimeString Variable 1 } // string
+ }
+ {
+ Entry Variable
+ { Sequence S32 }
+ { Place S32 }
+ { ID LLUUID }
+ { Score S32 }
+ { Name Fixed 32 } // only send 32 characters of the name, to fit in an MTU
+ }
+}
+
+// ***************************************************************************
+// Viewer to Simulator Messages
+// ***************************************************************************
+
+// RegisterNewAgent - Sent by viewer to simulator to tell the simulator
+// that it's connecting.
+// HACK -- If SessionID is null, don't bother asking for information
+// from the space server.
+{
+ RegisterNewAgent Low NotTrusted Unencoded
+ {
+ HelloBlock Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { LocationID U32 } // which start location to use
+ { Godlike BOOL }
+ }
+}
+
+// viewer->sim
+// request a connection to the userserver
+//{
+// RequestUserserverConnection Low NotTrusted Unencoded
+// {
+// AgentInfo Single
+// { AgentID LLUUID }
+// { SessionID LLUUID }
+// }
+//}
+
+// sim->space->userserver
+//{
+// UserserverConnectionForAgent Low Trusted Unencoded
+// {
+// AgentInfo Single
+// { AgentID LLUUID }
+// { SessionID LLUUID }
+// }
+//}
+
+// userserver->space->sim->agent
+//{
+// UserserverReadyForAgent Low Trusted Unencoded
+// {
+// AgentInfo Single
+// { AgentID LLUUID }
+// { SessionID LLUUID }
+// }
+// {
+// HostInfo Single
+// { ServerIP IPADDR }
+// { ServerPort IPPORT }
+// }
+//}
+
+// Undo
+{
+ Undo Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectID LLUUID }
+ }
+}
+
+
+// Redo
+{
+ Redo Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectID LLUUID }
+ }
+}
+
+// UndoLand
+{
+ UndoLand Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+}
+
+
+// RedoLand
+{
+ RedoLand Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+}
+
+// MovedIntoSimulator - Sent by simulatorA to simulatorB to tell the
+// simulator that a viewer is moving from A to B
+// sim --> sim
+{
+ MovedIntoSimulator High Trusted Unencoded
+ {
+ Sender Single
+ { ID LLUUID }
+ { SessionID LLUUID }
+ { CircuitCode U32 }
+ }
+}
+
+
+// AgentPause - viewer occasionally will block, inform simulator of this fact
+{
+ AgentPause Low NotTrusted Unencoded
+ {
+ Sender Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { SerialNum U32 } // U32, used by both pause and resume. Non-increasing numbers are ignored.
+ }
+}
+
+// AgentResume - unblock the agent
+{
+ AgentResume Low NotTrusted Unencoded
+ {
+ Sender Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { SerialNum U32 } // U32, used by both pause and resume. Non-increasing numbers are ignored.
+ }
+}
+
+
+// AgentUpdate - Camera info sent from viewer to simulator
+// or, more simply, two axes and compute cross product
+// State data is temporary, indicates current behavior state:
+// 0 = walking
+// 1 = mouselook
+// 2 = typing
+//
+// Center is region local (JNC 8.16.2001)
+// Camera center is region local (JNC 8.29.2001)
+{
+ AgentUpdate High NotTrusted Zerocoded
+ {
+ AgentData Single
+ { ID LLUUID }
+ { BodyRotation LLQuaternion }
+ { HeadRotation LLQuaternion }
+ { State U8 }
+ { CameraCenter LLVector3 }
+ { CameraAtAxis LLVector3 }
+ { CameraLeftAxis LLVector3 }
+ { CameraUpAxis LLVector3 }
+ { Far F32 }
+ { ControlFlags U32 }
+ { Flags U8 }
+ }
+}
+
+// ChatFromViewer
+// Specifies the text to be said and the "type",
+// normal speech, shout, whisper.
+// with the specified radius
+{
+ ChatFromViewer Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ChatData Single
+ { Message Variable 2 }
+ { Type U8 }
+ { Channel S32 }
+ }
+}
+
+
+// AgentThrottle
+{
+ AgentThrottle Low NotTrusted Zerocoded
+ {
+ Sender Single
+ { ID LLUUID }
+ { CircuitCode U32 }
+ { GenCounter U32 }
+ }
+ {
+ Throttle Single
+ { Throttles Variable 1 }
+ }
+}
+
+
+// AgentFOV - Update to agent's field of view, angle is vertical, single F32 float in radians
+{
+ AgentFOV Low NotTrusted Unencoded
+ {
+ Sender Single
+ { ID LLUUID }
+ { CircuitCode U32 }
+ { GenCounter U32 }
+ }
+ {
+ FOVBlock Single
+ { VerticalAngle F32 }
+ }
+}
+
+
+// AgentHeightWidth - Update to height and aspect, sent as height/width to save space
+// Usually sent when window resized or created
+{
+ AgentHeightWidth Low NotTrusted Unencoded
+ {
+ Sender Single
+ { ID LLUUID }
+ { CircuitCode U32 }
+ { GenCounter U32 }
+ }
+ {
+ HeightWidthBlock Single
+ { Height U16 }
+ { Width U16 }
+ }
+}
+
+
+// AgentSetAppearance - Update to agent appearance
+{
+ AgentSetAppearance Low NotTrusted Zerocoded
+ {
+ Sender Single
+ { ID LLUUID }
+ { SerialNum U32 } // U32, Increases every time the appearance changes. A value of 0 resets.
+ { Size LLVector3 }
+ }
+ {
+ WearableData Variable
+ { CacheID LLUUID }
+ { TextureIndex U8 }
+ }
+ {
+ ObjectData Single
+ { TextureEntry Variable 2 }
+ }
+ {
+ VisualParam Variable
+ { ParamValue U8 }
+ }
+}
+
+// AgentAnimation - Update animation state
+// viewer --> simulator
+{
+ AgentAnimation High NotTrusted Unencoded
+ {
+ Sender Single
+ { ID LLUUID }
+ }
+ {
+ AnimationList Variable
+ { AnimID LLUUID }
+ { StartAnim BOOL }
+ }
+}
+
+// AgentRequestSit - Try to sit on an object
+{
+ AgentRequestSit High NotTrusted Zerocoded
+ {
+ Sender Single
+ { ID LLUUID }
+ }
+ {
+ TargetObject Single
+ { TargetID LLUUID }
+ { Offset LLVector3 }
+ }
+}
+
+// AgentSit - Actually sit on object
+{
+ AgentSit High NotTrusted Unencoded
+ {
+ Sender Single
+ { ID LLUUID }
+ }
+}
+
+// RefreshViewer - sent by viewer when it has missing geometry, etc., due to dropped packets.
+
+{
+ RefreshViewer Low NotTrusted Unencoded
+ {
+ Sender Single
+ { ID LLUUID }
+ }
+}
+
+
+// AgentQuit - Sent by viewer when viewer exits normally
+// Fuse is used to allow Reset to be passed to neighbors
+// *NOTE: obsolete
+{
+ AgentQuit Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+// quit message sent between simulators
+{
+ AgentQuitCopy Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ FuseBlock Single
+ { ViewerCircuitCode U32 }
+ }
+}
+
+
+// Request Image - Sent by the viewer to request a specified image at a specified resolution
+
+{
+ RequestImage High NotTrusted Unencoded
+ {
+ RequestImage Variable
+ { Image LLUUID }
+ { DiscardLevel S32 }
+ { DownloadPriority F32 }
+ { Packet U32 }
+ }
+}
+
+// ImageNotInDatabase
+// Simulator informs viewer that a requsted image definitely does not exist in the asset database
+{
+ ImageNotInDatabase Low Trusted Unencoded
+ {
+ ImageID Single
+ { ID LLUUID }
+ }
+}
+
+// RebakeAvatarTextures
+// simulator -> viewer request when a temporary baked avatar texture is not found
+{
+ RebakeAvatarTextures Low Trusted Unencoded
+ {
+ TextureData Single
+ { TextureID LLUUID }
+ }
+}
+
+
+// SetAlwaysRun
+// Lets the viewer choose between running and walking
+{
+ SetAlwaysRun Low NotTrusted Unencoded
+ {
+ Sender Single
+ { ID LLUUID }
+ { AlwaysRun BOOL }
+ }
+}
+
+// ObjectAdd - create new object in the world
+// Simulator will assign ID and send message back to signal
+// object actually created.
+//
+// AddFlags (see also ObjectUpdate)
+// 0x01 - use physics
+// 0x02 - create selected
+//
+// If only one ImageID is sent for an object type that has more than
+// one face, the same image is repeated on each subsequent face.
+//
+// Data field is opaque type-specific data for this object
+{
+ ObjectAdd Medium NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ ObjectData Single
+ { PCode U8 }
+ { Material U8 }
+ { AddFlags U32 } // see object_flags.h
+
+ { PathCurve U8 }
+ { ProfileCurve U8 }
+ { PathBegin U8 } // 0 to 1, quanta = 0.01
+ { PathEnd U8 } // 0 to 1, quanta = 0.01
+ { PathScaleX U8 } // 0 to 1, quanta = 0.01
+ { PathScaleY U8 } // 0 to 1, quanta = 0.01
+ { PathShearX U8 } // -.5 to .5, quanta = 0.01
+ { PathShearY U8 } // -.5 to .5, quanta = 0.01
+ { PathTwist S8 } // -1 to 1, quanta = 0.01
+ { PathTwistBegin S8 } // -1 to 1, quanta = 0.01
+ { PathRadiusOffset S8 } // -1 to 1, quanta = 0.01
+ { PathTaperX S8 } // -1 to 1, quanta = 0.01
+ { PathTaperY S8 } // -1 to 1, quanta = 0.01
+ { PathRevolutions U8 } // 0 to 3, quanta = 0.015
+ { PathSkew S8 } // -1 to 1, quanta = 0.01
+ { ProfileBegin U8 } // 0 to 1, quanta = 0.01
+ { ProfileEnd U8 } // 0 to 1, quanta = 0.01
+ { ProfileHollow U8 } // 0 to 1, quanta = 0.01
+
+ { BypassRaycast U8 }
+ { RayStart LLVector3 }
+ { RayEnd LLVector3 }
+ { RayTargetID LLUUID }
+ { RayEndIsIntersection U8 }
+
+ { Scale LLVector3 }
+ { Rotation LLQuaternion }
+
+ { TextureEntry Variable 2 }
+
+ { NameValue Variable 2 }
+ { State U8 }
+ }
+ {
+ InventoryData Variable
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+ { CreatorID LLUUID } // permissions
+ { OwnerID LLUUID } // permissions
+ { GroupID LLUUID } // permissions
+ { BaseMask U32 } // permissions
+ { OwnerMask U32 } // permissions
+ { GroupMask U32 } // permissions
+ { EveryoneMask U32 } // permissions
+ { NextOwnerMask U32 } // permissions
+ { GroupOwned BOOL } // permissions
+ { AssetID LLUUID }
+ { Type S8 }
+ { InvType S8 }
+ { Flags U32 }
+ { SaleType U8 }
+ { SalePrice S32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { CreationDate S32 }
+ { CRC U32 }
+ }
+ {
+ InventoryFile Single
+ { Filename Variable 1 }
+ }
+}
+
+
+// ObjectDelete
+// viewer -> simulator
+{
+ ObjectDelete Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { Force BOOL } // BOOL, god trying to force delete
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+}
+
+
+// ObjectDuplicate
+// viewer -> simulator
+// Makes a copy of a set of objects, offset by a given amount
+{
+ ObjectDuplicate Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ SharedData Single
+ { Offset LLVector3 }
+ { DuplicateFlags U32 } // see object_flags.h
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+}
+
+
+// ObjectDuplicateOnRay
+// viewer -> simulator
+// Makes a copy of an object, using the add object raycast
+// code to abut it to other objects.
+{
+ ObjectDuplicateOnRay Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GroupID LLUUID }
+ { RayStart LLVector3 } // region local
+ { RayEnd LLVector3 } // region local
+ { BypassRaycast BOOL }
+ { RayEndIsIntersection BOOL }
+ { CopyCenters BOOL }
+ { CopyRotates BOOL }
+ { RayTargetID LLUUID }
+ { DuplicateFlags U32 } // see object_flags.h
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+}
+
+
+// MultipleObjectUpdate
+// viewer -> simulator
+// updates position, rotation and scale in one message
+// positions sent as region-local floats
+{
+ MultipleObjectUpdate Medium NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { Type U8 }
+ { Data Variable 1 } // custom type
+ }
+}
+
+// RequestMultipleObjects
+// viewer -> simulator
+// reliable
+//
+// When the viewer gets a local_id/crc for an object that
+// it either doesn't have, or doesn't have the current version
+// of, it sends this upstream get get an update.
+//
+// CacheMissType 0 => full object (viewer doesn't have it)
+// CacheMissType 1 => CRC mismatch only
+{
+ RequestMultipleObjects Medium NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { CacheMissType U8 }
+ { ID U32 }
+ }
+}
+
+
+// ObjectPosition
+// viewer -> simulator
+{
+ ObjectPosition Medium NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { Position LLVector3 } // region
+ }
+}
+
+
+// ObjectScale
+// viewer -> simulator
+{
+ ObjectScale Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { Scale LLVector3 }
+ }
+}
+
+
+// ObjectRotation
+// viewer -> simulator
+{
+ ObjectRotation Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { Rotation LLQuaternion }
+ }
+}
+
+
+// ObjectFlagUpdate
+// viewer -> simulator
+{
+ ObjectFlagUpdate Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { ObjectLocalID U32 }
+ { UsePhysics BOOL }
+ { IsTemporary BOOL }
+ { IsPhantom BOOL }
+ { CastsShadows BOOL }
+ }
+}
+
+
+// ObjectClickAction
+// viewer -> simulator
+{
+ ObjectClickAction Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { ClickAction U8 }
+ }
+}
+
+
+// ObjectImage
+// viewer -> simulator
+{
+ ObjectImage Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { MediaURL Variable 1 }
+ { TextureEntry Variable 2 }
+ }
+}
+
+
+{
+ ObjectMaterial Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { Material U8 }
+ }
+}
+
+
+{
+ ObjectShape Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { PathCurve U8 }
+ { ProfileCurve U8 }
+ { PathBegin U8 } // 0 to 1, quanta = 0.01
+ { PathEnd U8 } // 0 to 1, quanta = 0.01
+ { PathScaleX U8 } // 0 to 1, quanta = 0.01
+ { PathScaleY U8 } // 0 to 1, quanta = 0.01
+ { PathShearX U8 } // -.5 to .5, quanta = 0.01
+ { PathShearY U8 } // -.5 to .5, quanta = 0.01
+ { PathTwist S8 } // -1 to 1, quanta = 0.01
+ { PathTwistBegin S8 } // -1 to 1, quanta = 0.01
+ { PathRadiusOffset S8 } // -1 to 1, quanta = 0.01
+ { PathTaperX S8 } // -1 to 1, quanta = 0.01
+ { PathTaperY S8 } // -1 to 1, quanta = 0.01
+ { PathRevolutions U8 } // 0 to 3, quanta = 0.015
+ { PathSkew S8 } // -1 to 1, quanta = 0.01
+ { ProfileBegin U8 } // 0 to 1, quanta = 0.01
+ { ProfileEnd U8 } // 0 to 1, quanta = 0.01
+ { ProfileHollow U8 } // 0 to 1, quanta = 0.01
+ }
+}
+
+{
+ ObjectExtraParams Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { ParamType U16 }
+ { ParamInUse BOOL }
+ { ParamSize U32 }
+ { ParamData Variable 1 }
+ }
+}
+
+
+// ObjectOwner
+// To make public, set OwnerID to LLUUID::null.
+// TODO: Eliminate god-bit. Maybe not. God-bit is ok, because it's
+// known on the server.
+{
+ ObjectOwner Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ HeaderData Single
+ { Override BOOL } // BOOL, God-bit.
+ { OwnerID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+}
+
+// ObjectGroup
+// To make the object part of no group, set GroupID = LLUUID::null.
+// This call only works if objectid.ownerid == agentid.
+{
+ ObjectGroup Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+}
+
+// Attempt to buy an object. This will only pack root objects.
+{
+ ObjectBuy Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GroupID LLUUID }
+ { CategoryID LLUUID } // folder where it goes (if derezed)
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { SaleType U8 } // U8 -> EForSale
+ { SalePrice S32 }
+ }
+}
+
+// viewer -> simulator
+
+// buy object inventory. If the transaction succeeds, it will add
+// inventory to the agent, and potentially remove the original.
+{
+ BuyObjectInventory Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { ObjectID LLUUID }
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+ }
+}
+
+// sim -> viewer
+// Used to propperly handle buying asset containers
+{
+ DerezContainer Low Trusted Zerocoded
+ {
+ Data Single
+ { ObjectID LLUUID }
+ { Delete BOOL } // BOOL
+ }
+}
+
+// ObjectPermissions
+// Field - see llpermissionsflags.h
+// If Set is true, tries to turn on bits in mask.
+// If set is false, tries to turn off bits in mask.
+// BUG: This just forces the permissions field.
+{
+ ObjectPermissions Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ HeaderData Single
+ { Override BOOL } // BOOL, God-bit.
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { Field U8 }
+ { Set U8 }
+ { Mask U32 }
+ }
+}
+
+// set object sale information
+{
+ ObjectSaleInfo Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { LocalID U32 }
+ { SaleType U8 } // U8 -> EForSale
+ { SalePrice S32 }
+ }
+}
+
+
+// set object names
+{
+ ObjectName Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { LocalID U32 }
+ { Name Variable 1 }
+ }
+}
+
+// set object descriptions
+{
+ ObjectDescription Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { LocalID U32 }
+ { Description Variable 1 }
+ }
+}
+
+// set object category
+{
+ ObjectCategory Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { LocalID U32 }
+ { Category U32 }
+ }
+}
+
+// ObjectSelect
+// Variable object data because rectangular selection can
+// generate a large list very quickly.
+{
+ ObjectSelect Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+
+}
+
+
+// ObjectDeselect
+{
+ ObjectDeselect Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+
+}
+
+// ObjectAttach
+{
+ ObjectAttach Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { AttachmentPoint U8 }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ { Rotation LLQuaternion }
+ }
+}
+
+// ObjectDetach -- derezzes an attachment, marking its item in your inventory as not "(worn)"
+{
+ ObjectDetach Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+}
+
+
+// ObjectDrop -- drops an attachment from your avatar onto the ground
+{
+ ObjectDrop Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+}
+
+
+// ObjectLink
+{
+ ObjectLink Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+}
+
+// ObjectDelink
+{
+ ObjectDelink Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+}
+
+// ObjectHinge
+{
+ ObjectHinge Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ JointType Single
+ { Type U8 }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+
+}
+
+// ObjectDehinge
+{
+ ObjectDehinge Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 }
+ }
+
+}
+
+
+// ObjectGrab
+{
+ ObjectGrab Low NotTrusted Zerocoded
+ {
+ Sender Single
+ { ID LLUUID }
+ }
+ {
+ ObjectData Single
+ { LocalID U32 }
+ { GrabOffset LLVector3 }
+ }
+}
+
+
+// ObjectGrabUpdate
+// TODO: Quantize this data, reduce message size.
+// TimeSinceLast could go to 1 byte, since capped
+// at 100 on sim.
+{
+ ObjectGrabUpdate Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Single
+ { ObjectID LLUUID }
+ { GrabOffsetInitial LLVector3 } // LLVector3
+ { GrabPosition LLVector3 } // LLVector3, region local
+ { TimeSinceLast U32 }
+ }
+}
+
+
+// ObjectDeGrab
+{
+ ObjectDeGrab Low NotTrusted Unencoded
+ {
+ Sender Single
+ { ID LLUUID }
+ }
+ {
+ ObjectData Single
+ { LocalID U32 }
+ }
+}
+
+
+// ObjectSpinStart
+{
+ ObjectSpinStart Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Single
+ { ObjectID LLUUID }
+ }
+}
+
+
+// ObjectSpinUpdate
+{
+ ObjectSpinUpdate Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Single
+ { ObjectID LLUUID }
+ { Rotation LLQuaternion }
+ }
+}
+
+
+// ObjectSpinStop
+{
+ ObjectSpinStop Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ObjectData Single
+ { ObjectID LLUUID }
+ }
+}
+
+// Export selected objects
+{
+ ObjectExportSelected Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { RequestID LLUUID }
+ { VolumeDetail S16 }
+ }
+ {
+ ObjectData Variable
+ { ObjectID LLUUID }
+ }
+}
+
+// Import an object
+{
+ ObjectImport Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { FolderID LLUUID }
+ }
+ {
+ AssetData Single
+ { FileID LLUUID 1 }
+ { ObjectName Variable 1 }
+ { Description Variable 1 }
+ }
+}
+
+// ModifyLand - sent to modify a piece of land on a simulator.
+// viewer -> sim
+{
+ ModifyLand Low NotTrusted Zerocoded
+ {
+ ModifyBlock Single
+ { AgentID LLUUID }
+ { Action U8 }
+ { BrushSize U8 }
+ { Seconds F32 }
+ { Height F32 }
+ }
+ {
+ ParcelData Variable
+ { LocalID S32 }
+ { West F32 }
+ { South F32 }
+ { East F32 }
+ { North F32 }
+ }
+}
+
+
+// VelocityInterpolateOn
+{
+ VelocityInterpolateOn Low NotTrusted Unencoded
+}
+
+
+// VelocityInterpolateOff
+{
+ VelocityInterpolateOff Low NotTrusted Unencoded
+}
+
+// Save State
+{
+ StateSave Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ DataBlock Single
+ { Filename Variable 1 }
+ }
+}
+
+
+// ReportAutosaveCrash
+{
+ ReportAutosaveCrash Low NotTrusted Unencoded
+ {
+ AutosaveData Single
+ { PID S32 }
+ { Status S32 }
+ }
+}
+
+
+
+// SimWideDeletes
+{
+ SimWideDeletes Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ DataBlock Single
+ { TargetID LLUUID }
+ { Flags U32 }
+ }
+}
+
+// Load State
+// Not in use \P/hoenix - 2004.07.14
+{
+ StateLoad Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ DataBlock Single
+ { Filename Variable 1 }
+ }
+}
+
+// RequestObjectPropertiesFamily
+// Ask for extended information, such as creator, permissions, resources, etc.
+// Medium frequency because it is driven by mouse hovering over objects, which
+// occurs at high rates.
+{
+ RequestObjectPropertiesFamily Medium NotTrusted Zerocoded
+ {
+ ObjectData Single
+ { RequestFlags U32 }
+ { AgentID LLUUID }
+ { ObjectID LLUUID }
+ }
+}
+
+
+// Track agent - this information is used when sending out the
+// coarse location update so that we know who you are tracking.
+// To stop tracking - send a null uuid as the prey.
+{
+ TrackAgent Low NotTrusted Unencoded
+ {
+ AgentBlock Single
+ { AgentID LLUUID }
+ { PreyID LLUUID }
+ }
+}
+
+
+// Grant agents the ability to modify your stuff. This message is sent
+// to the simulator, and then passed along to the dataserver for
+// persistance. The dataserver will push live updates through
+// AddModifyAbility messages to the simulator.
+// viewer -> simulator -> dataserver
+{
+ GrantModification Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GranterName Variable 1 }
+ }
+ {
+ EmpoweredBlock Variable
+ { EmpoweredID LLUUID }
+ }
+}
+
+// Revoke the ability to modify your stuff. This message is sent to
+// the simulator, and then passed along to the dataserver for
+// persistance. The dataserver will push live updates through
+// RemoveModifyAbility messages to the simulator.
+// viewer -> simulator -> dataserver
+{
+ RevokeModification Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GranterName Variable 1 }
+ }
+ {
+ RevokedBlock Variable
+ { RevokedID LLUUID }
+ }
+}
+
+// This message is sent from viewer->simulator->dataserver, which responds with
+// the complete list of all granted agents in the GrantedProxies message.
+{
+ RequestGrantedProxies Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+// response to the message above
+{
+ GrantedProxies Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ EmpoweredBlock Variable
+ { EmpoweredID LLUUID }
+ }
+ {
+ GranterBlock Variable
+ { GranterID LLUUID }
+ }
+}
+
+// This message is sent from the dataserver to the simulator to let
+// AgentID know that they can modify GranterID's stuff. This message is
+// percolated out to child cameras and the viewer. This message is
+// in response to GrantModification messages, request, or login.
+// ROUTED dataserver -> simulator -> spaceserver -> simulator
+// reliable
+{
+ AddModifyAbility Low Trusted Zerocoded
+ {
+ TargetBlock Single
+ { TargetIP IPADDR } // U32 encoded IP
+ { TargetPort IPPORT }
+ }
+ {
+ AgentBlock Single
+ { AgentID LLUUID }
+ }
+ {
+ GranterBlock Variable
+ { GranterID LLUUID }
+ }
+}
+
+// This message is sent from the dataserver to the simulator to let
+// AgentID know that they can no longer modify GranterID's stuff. This
+// message is percolated out to child cameras and the viewer. This
+// message is in response to RevokeModification messages.
+// ROUTED dataserver -> simulator -> spaceserver -> simulator
+// reliable
+{
+ RemoveModifyAbility Low Trusted Unencoded
+ {
+ TargetBlock Single
+ { TargetIP IPADDR } // U32 encoded IP
+ { TargetPort IPPORT }
+ }
+ {
+ AgentBlock Single
+ { AgentID LLUUID }
+ { RevokerID LLUUID }
+ }
+}
+
+// end viewer to simulator section
+
+{
+ ViewerStats Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { IP IPADDR }
+ { StartTime U32 }
+ { RunTime F32 } // F32
+ { FPS F32 } // F32
+ { Ping F32 } // F32
+ { MetersTraveled F64 }
+ { RegionsVisited S32 }
+ { SysRAM U32 }
+ { SysOS Variable 1 } // String
+ { SysCPU Variable 1 } // String
+ { SysGPU Variable 1 } // String
+ }
+
+ {
+ DownloadTotals Single
+ { World U32 }
+ { Objects U32 }
+ { Textures U32 }
+ }
+
+ {
+ NetStats Multiple 2
+ { Bytes U32 }
+ { Packets U32 }
+ { Compressed U32 }
+ { Savings U32 }
+ }
+
+ {
+ FailStats Single
+ { SendPacket U32 }
+ { Dropped U32 }
+ { Resent U32 }
+ { FailedResends U32 }
+ { OffCircuit U32 }
+ { Invalid U32 }
+ }
+
+ {
+ MiscStats Variable
+ { Type U32 }
+ { Value F64 }
+ }
+}
+
+// ScriptAnswerYes
+// reliable
+{
+ ScriptAnswerYes Low NotTrusted Unencoded
+ {
+ Data Single
+ { AgentID LLUUID }
+ { TaskID LLUUID }
+ { ItemID LLUUID }
+ { Questions S32 }
+ }
+}
+
+
+// complaint/bug-report
+// reliable
+{
+ UserReport Low NotTrusted Zerocoded
+ {
+ ReportData Single
+ { ReportType U8 } // BUG=1, COMPLAINT=2
+ { Category U8 } // see sequence.user_report_category
+ { ReporterID LLUUID }
+ { Position LLVector3 } // screenshot position, region-local
+ { CheckFlags U8 } // checkboxflags
+ { ScreenshotID LLUUID }
+ { ObjectID LLUUID }
+ { Summary Variable 1 }
+ { Details Variable 2 }
+ { VersionString Variable 1 }
+ }
+ {
+ MeanCollision Variable
+ { Perp LLUUID }
+ { Time U32 }
+ { Mag F32 }
+ { Type U8 }
+ }
+}
+
+
+// ***************************************************************************
+// Simulator to Viewer Messages
+// ***************************************************************************
+
+// AlertMessage
+// Specifies the text to be posted in an alert dialog
+{
+ AlertMessage Low Trusted Unencoded
+ {
+ AlertData Single
+ { Message Variable 1 }
+ }
+}
+
+// Send an AlertMessage to the named agent.
+// usually dataserver->simulator
+{
+ AgentAlertMessage Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ AlertData Single
+ { Modal BOOL }
+ { Message Variable 1 }
+ }
+}
+
+
+// MeanCollisionAlert
+// Specifies the text to be posted in an alert dialog
+{
+ MeanCollisionAlert Low Trusted Zerocoded
+ {
+ MeanCollision Variable
+ { Victim LLUUID }
+ { Perp LLUUID }
+ { Time U32 }
+ { Mag F32 }
+ { Type U8 }
+ }
+}
+
+// ViewerFrozenMessage
+// Specifies the text to be posted in an alert dialog
+{
+ ViewerFrozenMessage Low Trusted Unencoded
+ {
+ FrozenData Single
+ { Data BOOL }
+ }
+}
+
+// Health Message
+// Tells viewer what agent health is
+{
+ HealthMessage Low Trusted Zerocoded
+ {
+ HealthData Single
+ { Health F32 }
+ }
+}
+
+// ChatFromSimulator
+// Chat text to appear on a user's screen
+// Position is region local.
+// Viewer can optionally use position to animate
+// If audible is CHAT_NOT_AUDIBLE, message will not be valid
+{
+ ChatFromSimulator Low Trusted Unencoded
+ {
+ ChatData Single
+ { FromName Variable 1 }
+ { SourceID LLUUID } // agent id or object id
+ { OwnerID LLUUID } // object's owner
+ { SourceType U8 }
+ { ChatType U8 }
+ { Audible U8 }
+ { Position LLVector3 }
+ { Message Variable 2 } // UTF-8 text
+ }
+}
+
+
+// Simulator statistics packet (goes out to viewer and dataserver/spaceserver)
+{
+ SimStats Low Trusted Unencoded
+ {
+ Region Single
+ { RegionX U32 }
+ { RegionY U32 }
+ { RegionFlags U32 }
+ { ObjectCapacity U32 }
+ }
+ {
+ Stat Variable
+ { StatID U32 }
+ { StatValue F32 }
+ }
+}
+
+// viewer -> sim
+// reliable
+{
+ RequestRegionInfo Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+// RegionInfo
+// Used to populate UI for both region/estate floater
+// and god tools floater
+// sim -> viewer
+// reliable
+{
+ RegionInfo Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ RegionInfo Single
+ { SimName Variable 1 } // string
+ { EstateID U32 }
+ { ParentEstateID U32 }
+ { RegionFlags U32 }
+ { SimAccess U8 }
+ { MaxAgents U8 }
+ { BillableFactor F32 }
+ { ObjectBonusFactor F32 }
+ { WaterHeight F32 }
+ { TerrainRaiseLimit F32 }
+ { TerrainLowerLimit F32 }
+ { PricePerMeter S32 }
+ { RedirectGridX S32 }
+ { RedirectGridY S32 }
+ { UseEstateSun BOOL }
+ { SunHour F32 } // last value set by estate or region controls JC
+ }
+}
+
+// GodUpdateRegionInfo
+// Sent from viewer to sim after a god has changed some
+// of the parameters in the god tools floater
+// viewer -> sim
+// reliable
+{
+ GodUpdateRegionInfo Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ RegionInfo Single
+ { SimName Variable 1 } // string
+ { EstateID U32 }
+ { ParentEstateID U32 }
+ { RegionFlags U32 }
+ { BillableFactor F32 }
+ { PricePerMeter S32 }
+ { RedirectGridX S32 }
+ { RedirectGridY S32 }
+ }
+}
+
+//NearestLandingRegionRequest
+//sim->dataserver
+//Sent from the region to the data server
+//to request the most up to date region for the requesting
+//region to redirect teleports to
+{
+ NearestLandingRegionRequest Low Trusted Unencoded
+ {
+ RequestingRegionData Single
+ { RegionHandle U64 }
+ }
+}
+
+//NearestLandingPointReply
+//dataserver->sim
+//Sent from the data server to a region in reply
+//to the redirectregion request stating which region
+//the requesting region should redirect teleports to if necessary
+{
+ NearestLandingRegionReply Low Trusted Unencoded
+ {
+ LandingRegionData Single
+ { RegionHandle U64 }
+ }
+}
+
+//NearestLandingPointUpdated
+//sim->dataserver
+//Sent from a region to the data server
+//to have the dataserver note/clear in the db
+//that the region has updated it's nearest landing point
+{
+ NearestLandingRegionUpdated Low Trusted Unencoded
+ {
+ RegionData Single
+ { RegionHandle U64 }
+ }
+}
+
+
+//TeleportLandingStatusChanged
+//sim->dataserver
+//Sent from the region to the data server
+//to note that the region's teleportation landing status has changed
+{
+ TeleportLandingStatusChanged Low Trusted Unencoded
+ {
+ RegionData Single
+ { RegionHandle U64 }
+ }
+}
+
+// RegionHandshake
+// Sent by region to viewer after it has received UseCircuitCode
+// from that viewer.
+// sim -> viewer
+// reliable
+{
+ RegionHandshake Low Trusted Zerocoded
+ {
+ RegionInfo Single
+ { RegionFlags U32 }
+ { SimAccess U8 }
+ { SimName Variable 1 } // string
+ { SimOwner LLUUID }
+ { IsEstateManager BOOL } // this agent, for this sim
+ { WaterHeight F32 }
+ { BillableFactor F32 }
+ { CacheID LLUUID }
+ { TerrainBase0 LLUUID }
+ { TerrainBase1 LLUUID }
+ { TerrainBase2 LLUUID }
+ { TerrainBase3 LLUUID }
+ { TerrainDetail0 LLUUID }
+ { TerrainDetail1 LLUUID }
+ { TerrainDetail2 LLUUID }
+ { TerrainDetail3 LLUUID }
+ { TerrainStartHeight00 F32 }
+ { TerrainStartHeight01 F32 }
+ { TerrainStartHeight10 F32 }
+ { TerrainStartHeight11 F32 }
+ { TerrainHeightRange00 F32 }
+ { TerrainHeightRange01 F32 }
+ { TerrainHeightRange10 F32 }
+ { TerrainHeightRange11 F32 }
+ }
+}
+
+// RegionHandshakeReply
+// viewer -> sim
+// reliable
+// Sent after viewer has initialized the (pre-existing)
+// LLViewerRegion with the name, access level, etc. and
+// has loaded the cache for the region.
+// After the simulator receives this, it will start sending
+// data about objects.
+{
+ RegionHandshakeReply Low NotTrusted Zerocoded
+ {
+ RegionInfo Single
+ { Flags U32 }
+ }
+}
+
+// The CoarseLocationUpdate message is sent to notify the viewer of
+// the location of mappable objects in the region. 1 meter resolution is
+// sufficient for this. The index block is used to show where you are,
+// and where someone you are tracking is located. They are -1 if not
+// applicable.
+{
+ CoarseLocationUpdate Medium Trusted Unencoded
+ {
+ Location Variable
+ { X U8 }
+ { Y U8 }
+ { Z U8 } // Z in meters / 4
+ }
+ {
+ Index Single
+ { You S16 }
+ { Prey S16 }
+ }
+}
+
+// ImageData - sent to viewer to transmit information about an image
+{
+ ImageData High Trusted Unencoded
+ {
+ ImageID Single
+ { ID LLUUID }
+ { Codec U8 }
+ { Size U32 }
+ { Packets U16 }
+ }
+ {
+ ImageData Single
+ { Data Variable 2 }
+ }
+}
+
+// ImagePacket - follow on image data for images having > 1 packet of data
+{
+ ImagePacket High Trusted Unencoded
+ {
+ ImageID Single
+ { ID LLUUID }
+ { Packet U16 }
+ }
+ {
+ ImageData Single
+ { Data Variable 2 }
+ }
+}
+
+// LayerData - Sent to viewer - encodes layer data
+
+{
+ LayerData High Trusted Unencoded
+ {
+ LayerID Single
+ { Type U8 }
+
+ }
+ {
+ LayerData Single
+ { Data Variable 2 }
+ }
+}
+
+// ObjectUpdate - Sent by objects from the simulator to the viewer
+//
+// If only one ImageID is sent for an object type that has more than
+// one face, the same image is repeated on each subsequent face.
+//
+// NameValue is a list of name-value strings, separated by \n characters,
+// terminated by \0
+//
+// Data is type-specific opaque data for this object
+{
+ ObjectUpdate High Trusted Zerocoded
+ {
+ RegionData Single
+ { RegionHandle U64 }
+ { TimeDilation U16 }
+ }
+ {
+ ObjectData Variable
+ { ID U32 }
+ { State U8 }
+
+ { FullID LLUUID }
+ { CRC U32 } // TEMPORARY HACK FOR JAMES
+ { PCode U8 }
+ { Material U8 }
+ { ClickAction U8 }
+ { Scale LLVector3 }
+ { ObjectData Variable 1 }
+
+ { ParentID U32 }
+ { UpdateFlags U32 } // U32, see object_flags.h
+
+ { PathCurve U8 }
+ { ProfileCurve U8 }
+ { PathBegin U8 } // 0 to 1, quanta = 0.01
+ { PathEnd U8 } // 0 to 1, quanta = 0.01
+ { PathScaleX U8 } // 0 to 1, quanta = 0.01
+ { PathScaleY U8 } // 0 to 1, quanta = 0.01
+ { PathShearX U8 } // -.5 to .5, quanta = 0.01
+ { PathShearY U8 } // -.5 to .5, quanta = 0.01
+ { PathTwist S8 } // -1 to 1, quanta = 0.01
+ { PathTwistBegin S8 } // -1 to 1, quanta = 0.01
+ { PathRadiusOffset S8 } // -1 to 1, quanta = 0.01
+ { PathTaperX S8 } // -1 to 1, quanta = 0.01
+ { PathTaperY S8 } // -1 to 1, quanta = 0.01
+ { PathRevolutions U8 } // 0 to 3, quanta = 0.015
+ { PathSkew S8 } // -1 to 1, quanta = 0.01
+ { ProfileBegin U8 } // 0 to 1, quanta = 0.01
+ { ProfileEnd U8 } // 0 to 1, quanta = 0.01
+ { ProfileHollow U8 } // 0 to 1, quanta = 0.01
+
+ { TextureEntry Variable 2 }
+ { TextureAnim Variable 1 }
+
+ { NameValue Variable 2 }
+ { Data Variable 2 }
+ { Text Variable 1 } // llSetText() hovering text
+ { TextColor Fixed 4 } // actually, a LLColor4U
+ { MediaURL Variable 1 } // URL for web page, movie, etc.
+
+ // Info for particle systems
+ { PSBlock Variable 1 }
+
+ // Extra parameters
+ { ExtraParams Variable 1 }
+
+ // info for looped attached sounds
+ // because these are almost always all zero
+ // the hit after zero-coding is only 2 bytes
+ // not the 42 you see here
+ { Sound LLUUID }
+ { OwnerID LLUUID } // HACK object's owner id, only set if non-null sound, for muting
+ { Gain F32 }
+ { Flags U8 }
+ { Radius F32 } // cutoff radius
+
+ // joint info -- is sent in the update of each joint-child-root
+ { JointType U8 }
+ { JointPivot LLVector3 }
+ { JointAxisOrAnchor LLVector3 }
+ }
+}
+
+
+// ObjectUpdateCompressed
+{
+ ObjectUpdateCompressed High Trusted Unencoded
+ {
+ RegionData Single
+ { RegionHandle U64 }
+ { TimeDilation U16 }
+ }
+ {
+ ObjectData Variable
+ { UpdateFlags U32 }
+ { Data Variable 2 }
+ }
+}
+
+// ObjectUpdateCached
+// reliable
+{
+ ObjectUpdateCached High Trusted Unencoded
+ {
+ RegionData Single
+ { RegionHandle U64 }
+ { TimeDilation U16 }
+ }
+ {
+ ObjectData Variable
+ { ID U32 }
+ { CRC U32 }
+ { UpdateFlags U32 }
+ }
+}
+
+// packed terse object udpate format
+{
+ ImprovedTerseObjectUpdate High Trusted Unencoded
+ {
+ RegionData Single
+ { RegionHandle U64 }
+ { TimeDilation U16 }
+ }
+ {
+ ObjectData Variable
+ { Data Variable 1 }
+ { TextureEntry Variable 2 }
+ }
+}
+
+// KillObject - Sent by objects to the viewer to tell them to kill themselves
+
+{
+ KillObject High Trusted Unencoded
+ {
+ ObjectData Variable
+ { ID U32 }
+ }
+}
+
+// AgentToNewRegion - tells the viewer that it's agent has moved
+
+{
+ AgentToNewRegion High Trusted Unencoded
+ {
+ RegionData Single
+ { SessionID LLUUID }
+ { IP IPADDR }
+ { Port IPPORT }
+ { Handle U64 }
+ }
+}
+
+// CrossedRegion - new way to tell a viewer it has gone across a region
+// boundary
+{
+ CrossedRegion Medium Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ RegionData Single
+ { SimIP IPADDR }
+ { SimPort IPPORT }
+ { RegionHandle U64 }
+ { SeedCapability Variable 2 } // URL
+ }
+ {
+ Info Single
+ { Position LLVector3 }
+ { LookAt LLVector3 }
+ }
+}
+
+// SimulatorViewerTimeMessage - Allows viewer to resynch to world time
+
+{
+ SimulatorViewerTimeMessage Low Trusted Unencoded
+ {
+ TimeInfo Single
+ { UsecSinceStart U64 }
+ { SecPerDay U32 }
+ { SecPerYear U32 }
+ { SunDirection LLVector3 }
+ { SunPhase F32 }
+ { SunAngVelocity LLVector3 }
+ }
+}
+
+// EnableSimulator - Preps a viewer to receive data from a simulator
+
+{
+ EnableSimulator Low Trusted Unencoded
+ {
+ SimulatorInfo Single
+ { Handle U64 }
+ { IP IPADDR }
+ { Port IPPORT }
+ }
+}
+
+// DisableThisSimulator - Tells a viewer not to expect data from this simulator anymore
+
+{
+ DisableSimulator Low Trusted Unencoded
+}
+
+// ConfirmEnableSimulator - A confirmation message sent from simulator to neighbors that the simulator
+// has successfully been enabled by the viewer
+
+{
+ ConfirmEnableSimulator Medium Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+//-----------------------------------------------------------------------------
+// New Transfer system
+//-----------------------------------------------------------------------------
+
+// Request a new transfer (target->source)
+{
+ TransferRequest Low NotTrusted Zerocoded
+ {
+ TransferInfo Single
+ { TransferID LLUUID }
+ { ChannelType S32 }
+ { SourceType S32 }
+ { Priority F32 }
+ { Params Variable 2 }
+ }
+}
+
+// Return info about a transfer/initiate transfer (source->target)
+// Possibly should have a Params field like above
+{
+ TransferInfo Low NotTrusted Zerocoded
+ {
+ TransferInfo Single
+ { TransferID LLUUID }
+ { ChannelType S32 }
+ { TargetType S32 }
+ { Status S32 }
+ { Size S32 }
+ }
+}
+
+{
+ TransferPacket High NotTrusted Unencoded
+ {
+ TransferData Single
+ { TransferID LLUUID }
+ { ChannelType S32 }
+ { Packet S32 }
+ { Status S32 }
+ { Data Variable 2 }
+ }
+}
+
+// Abort a transfer in progress (either from target->source or source->target)
+{
+ TransferAbort Low NotTrusted Zerocoded
+ {
+ TransferInfo Single
+ { TransferID LLUUID }
+ { ChannelType S32 }
+ }
+}
+
+// Change the priority of a transfer (target->source)
+{
+ TransferPriority Low NotTrusted Zerocoded
+ {
+ TransferInfo Single
+ { TransferID LLUUID }
+ { ChannelType S32 }
+ { Priority F32 }
+ }
+}
+
+//-----------------------------------------------------------------------------
+// General file transfer
+//-----------------------------------------------------------------------------
+
+// RequestXfer - request an arbitrary xfer
+{
+ RequestXfer Low NotTrusted Zerocoded
+ {
+ XferID Single
+ { ID U64 }
+ { Filename Variable 1 }
+ { FilePath U8 } // ELLPath
+ { DeleteOnCompletion BOOL } // BOOL
+ { UseBigPackets BOOL } // BOOL
+ { VFileID LLUUID }
+ { VFileType S16 }
+ }
+}
+
+// SendXferPacket - send an additional packet of an arbitrary xfer from sim -> viewer
+{
+ SendXferPacket High NotTrusted Unencoded
+ {
+ XferID Single
+ { ID U64 }
+ { Packet U32 }
+ }
+ {
+ DataPacket Single
+ { Data Variable 2 }
+ }
+}
+
+// ConfirmXferPacket
+{
+ ConfirmXferPacket High NotTrusted Unencoded
+ {
+ XferID Single
+ { ID U64 }
+ { Packet U32 }
+ }
+}
+
+// AbortXfer
+{
+ AbortXfer Low NotTrusted Unencoded
+ {
+ XferID Single
+ { ID U64 }
+ { Result S32 }
+ }
+}
+
+//-----------------------------------------------------------------------------
+// Avatar information
+//-----------------------------------------------------------------------------
+
+
+// RequestAvatarInfo
+{
+ RequestAvatarInfo Low Trusted Unencoded
+ {
+ DataBlock Single
+ { FullID LLUUID }
+ }
+}
+
+// AvatarAnimation - Update animation state
+// simulator --> viewer
+{
+ AvatarAnimation High Trusted Unencoded
+ {
+ Sender Single
+ { ID LLUUID }
+ }
+ {
+ AnimationList Variable
+ { AnimID LLUUID }
+ { AnimSequenceID S32 }
+ }
+ {
+ AnimationSourceList Variable
+ { ObjectID LLUUID }
+ }
+}
+
+// AvatarAppearance - Update visual params
+{
+ AvatarAppearance Low Trusted Zerocoded
+ {
+ Sender Single
+ { ID LLUUID }
+ { IsTrial BOOL }
+ }
+ {
+ ObjectData Single
+ { TextureEntry Variable 2 }
+ }
+ {
+ VisualParam Variable
+ { ParamValue U8 }
+ }
+}
+
+// AvatarSitResponse - response to a request to sit on an object
+{
+ AvatarSitResponse High Trusted Zerocoded
+ {
+ SitObject Single
+ { ID LLUUID }
+ }
+ {
+ SitTransform Single
+ { AutoPilot BOOL }
+ { SitPosition LLVector3 }
+ { SitRotation LLQuaternion }
+ { CameraEyeOffset LLVector3 }
+ { CameraAtOffset LLVector3 }
+ { ForceMouselook BOOL }
+ }
+}
+
+// SetFollowCamProperties
+{
+ SetFollowCamProperties Low Trusted Unencoded
+ {
+ ObjectData Single
+ { ObjectID LLUUID }
+ }
+ {
+ CameraProperty Variable
+ { Type S32 }
+ { Value F32 }
+ }
+}
+
+// ClearFollowCamProperties
+{
+ ClearFollowCamProperties Low Trusted Unencoded
+ {
+ ObjectData Single
+ { ObjectID LLUUID }
+ }
+}
+
+// CameraConstraint - new camera distance limit (based on collision with objects)
+{
+ CameraConstraint High Trusted Zerocoded
+ {
+ CameraCollidePlane Single
+ { Plane LLVector4 }
+ }
+}
+
+// ObjectProperties
+// Extended information such as creator, permissions, etc.
+// Medium because potentially driven by mouse hover events.
+{
+ 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 }
+// { TaxRate F32 } // F32
+ { SaleType U8 } // U8 -> EForSale
+ { SalePrice S32 }
+ { AggregatePerms U8 }
+ { AggregatePermTextures U8 }
+ { AggregatePermTexturesOwner U8 }
+ { Category U32 } // LLCategory
+ { InventorySerial S16 } // S16
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+ { FromTaskID LLUUID }
+ { LastOwnerID LLUUID }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { TouchName Variable 1 }
+ { SitName Variable 1 }
+ { TextureID Variable 1 }
+ }
+}
+
+// ObjectPropertiesFamily
+// Medium because potentially driven by mouse hover events.
+{
+ ObjectPropertiesFamily Medium Trusted Zerocoded
+ {
+ ObjectData Single
+ { RequestFlags U32 }
+ { ObjectID LLUUID }
+ { OwnerID LLUUID }
+ { GroupID LLUUID }
+ { BaseMask U32 }
+ { OwnerMask U32 }
+ { GroupMask U32 }
+ { EveryoneMask U32 }
+ { NextOwnerMask U32 }
+ { OwnershipCost S32 }
+ { SaleType U8 } // U8 -> EForSale
+ { SalePrice S32 }
+ { Category U32 } // LLCategory
+ { LastOwnerID LLUUID }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ }
+}
+
+// RequestPayPrice
+// viewer -> sim
+{
+ RequestPayPrice Low NotTrusted Unencoded
+ {
+ ObjectData Single
+ { ObjectID LLUUID }
+ }
+}
+
+// PayPriceReply
+// sim -> viewer
+{
+ PayPriceReply Low Trusted Unencoded
+ {
+ ObjectData Single
+ { ObjectID LLUUID }
+ { DefaultPayPrice S32 }
+ }
+ {
+ ButtonData Variable
+
+ { PayButton S32 }
+ }
+}
+
+// KickUser
+// *FIXME*
+// Kick off a logged-in user, such as when two people log in with the
+// same account name.
+// ROUTED dataserver -> userserver -> spaceserver -> simulator -> viewer
+// reliable, but that may not matter if a system component is quitting
+{
+ KickUser Low Trusted Unencoded
+ {
+ TargetBlock Single
+ { TargetIP IPADDR } // U32 encoded IP
+ { TargetPort IPPORT }
+ }
+ {
+ UserInfo Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { Reason Variable 2 } // string
+ }
+}
+
+// ack sent from the simulator up to the main database so that login
+// can continue.
+{
+ KickUserAck Low Trusted Unencoded
+ {
+ UserInfo Single
+ { SessionID LLUUID }
+ { Flags U32 }
+ }
+}
+
+// GodKickUser
+// When a god wants someone kicked
+// viewer -> sim
+// reliable
+{
+ GodKickUser Low NotTrusted Unencoded
+ {
+ UserInfo Single
+ { GodID LLUUID }
+ { GodSessionID LLUUID }
+ { AgentID LLUUID }
+ { KickFlags U32 }
+ { Reason Variable 2 } // string
+ }
+}
+
+// SystemKickUser
+// user->space, reliable
+{
+ SystemKickUser Low Trusted Unencoded
+ {
+ AgentInfo Variable
+ { AgentID LLUUID }
+ }
+}
+
+// EjectUser
+// viewer -> sim
+// reliable
+{
+ EjectUser Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { TargetID LLUUID }
+ { Flags U32 }
+ }
+}
+
+// FreezeUser
+// Freeze someone who is on my land.
+// viewer -> sim
+// reliable
+{
+ FreezeUser Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { TargetID LLUUID }
+ { Flags U32 }
+ }
+}
+
+
+// AvatarPropertiesRequest
+// viewer -> simulator
+// reliable
+{
+ AvatarPropertiesRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { AvatarID LLUUID }
+ }
+}
+
+// AvatarPropertiesRequestBackend
+// simulator -> dataserver
+// reliable
+{
+ AvatarPropertiesRequestBackend Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { AvatarID LLUUID }
+ { GodLevel U8 }
+ }
+}
+// AvatarPropertiesReply
+// dataserver -> simulator
+// simulator -> viewer
+// reliable
+{
+ AvatarPropertiesReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID } // your id
+ { AvatarID LLUUID } // avatar you're asking about
+ }
+ {
+ PropertiesData Single
+ { ImageID LLUUID }
+ { FLImageID LLUUID }
+ { PartnerID LLUUID }
+ { AboutText Variable 2 } // string, up to 512
+ { WantToMask U32 }
+ { WantToText Variable 1 } // string
+ { SkillsMask U32 }
+ { SkillsText Variable 1 } // string
+ { FLAboutText Variable 1 } // string
+ { BornOn Variable 1 } // string
+ { CharterMember Variable 1 } // special - usually U8
+ { AllowPublish BOOL } // whether profile is externally visible or not
+ { MaturePublish BOOL } // profile is "mature"
+ { Identified BOOL } // whether avatar has provided payment info
+ { Transacted BOOL } // whether avatar has actively used payment info
+ }
+}
+
+// AvatarGroupsReply
+// dataserver -> simulator
+// simulator -> viewer
+// reliable
+{
+ AvatarGroupsReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID } // your id
+ { AvatarID LLUUID } // avatar you're asking about
+ }
+ {
+ GroupData Variable
+ { GroupPowers U64 }
+ { AcceptNotices BOOL }
+ { GroupTitle Variable 1 }
+ { GroupID LLUUID }
+ { GroupName Variable 1 }
+ { GroupInsigniaID LLUUID }
+ }
+}
+
+
+// AvatarPropertiesUpdate
+// viewer -> simulator
+// simulator -> dataserver
+// reliable
+{
+ AvatarPropertiesUpdate Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ PropertiesData Single
+ { AvatarID LLUUID }
+ { ImageID LLUUID }
+ { FLImageID LLUUID }
+ { AboutText Variable 2 } // string, up to 512
+ { FLAboutText Variable 1 }
+ { WantToMask U32 }
+ { WantToText Variable 1 } // string
+ { SkillsMask U32 }
+ { SkillsText Variable 1 } // string
+ { AllowPublish BOOL } // whether profile is externally visible or not
+ { MaturePublish BOOL } // profile is "mature"
+ }
+}
+
+// AvatarStatisticsReply
+// dataserver -> simulator
+// simulator -> viewer
+// reliable
+{
+ AvatarStatisticsReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ AvatarData Single
+ { AvatarID LLUUID }
+ }
+ {
+ StatisticsData Variable
+ { Name Variable 1 } // string
+ { Positive S32 }
+ { Negative S32 }
+ }
+}
+
+
+// AvatarNotesReply
+// dataserver -> simulator
+// simulator -> viewer
+// reliable
+{
+ AvatarNotesReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ Data Single
+ { TargetID LLUUID }
+ { Notes Variable 2 } // string
+ }
+}
+
+
+// AvatarNotesUpdate
+// viewer -> simulator -> dataserver
+// reliable
+{
+ AvatarNotesUpdate Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ Data Single
+ { TargetID LLUUID }
+ { Notes Variable 2 } // string
+ }
+}
+
+
+// AvatarPicksReply
+// dataserver -> simulator -> viewer
+// Send the header information for this avatar's picks
+// This fills in the tabs of the Picks panel.
+// reliable
+{
+ AvatarPicksReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { TargetID LLUUID }
+ }
+ {
+ Data Variable
+ { PickID LLUUID }
+ { PickName Variable 1 } // string
+ }
+}
+
+
+// EventInfoRequest
+// viewer -> simulator
+// simulator -> dataserver
+// reliable
+{
+ EventInfoRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ EventData Single
+ { EventID U32 }
+ }
+}
+
+
+// EventInfoReply
+// dataserver -> simulator
+// simulator -> viewer
+// reliable
+{
+ EventInfoReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ EventData Single
+ { EventID U32 }
+ { Creator Variable 1 }
+ { Name Variable 1 }
+ { Category Variable 1 }
+ { Desc Variable 2 }
+ { Date Variable 1 }
+ { DateUTC U32 }
+ { Duration U32 }
+ { Cover U32 }
+ { Amount U32 }
+ { SimName Variable 1 }
+ { GlobalPos LLVector3d }
+ { EventFlags U32 }
+ }
+}
+
+
+// EventNotificationAddRequest
+// viewer -> simulator
+// simulator -> dataserver
+// reliable
+{
+ EventNotificationAddRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ EventData Single
+ { EventID U32 }
+ }
+}
+
+
+// EventNotificationRemoveRequest
+// viewer -> simulator
+// simulator -> dataserver
+// reliable
+{
+ EventNotificationRemoveRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ EventData Single
+ { EventID U32 }
+ }
+}
+
+// EventGodDelete
+// viewer -> simulator
+// simulator -> dataserver
+// QueryData is used to resend a search result after the deletion
+// reliable
+{
+ EventGodDelete Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ EventData Single
+ { EventID U32 }
+ }
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { QueryText Variable 1 }
+ { QueryFlags U32 }
+ { QueryStart S32 } // prev/next page support
+ }
+}
+
+// PickInfoRequest
+// viewer -> simulator
+// simulator -> dataserver
+// If CreatorID is not null, then we're looking for an agent pick
+// or picks.
+// reliable
+{
+ PickInfoRequest Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { PickID LLUUID }
+ }
+}
+
+
+// PickInfoReply
+// dataserver -> simulator
+// simulator -> viewer
+// reliable
+{
+ PickInfoReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ Data Single
+ { PickID LLUUID }
+ { CreatorID LLUUID }
+ { TopPick BOOL }
+ { ParcelID LLUUID }
+ { Name Variable 1 }
+ { Desc Variable 2 }
+ { SnapshotID LLUUID }
+ { User Variable 1 }
+ { OriginalName Variable 1 }
+ { SimName Variable 1 }
+ { PosGlobal LLVector3d }
+ { SortOrder S32 }
+ { Enabled BOOL }
+ }
+}
+
+
+// PickInfoUpdate
+// Update a pick. ParcelID is set on the simulator as the message
+// passes through.
+// If TopPick is TRUE, the simulator will only pass on the message
+// if the agent_id is a god.
+// viewer -> simulator -> dataserver
+// reliable
+{
+ PickInfoUpdate Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { PickID LLUUID }
+ { CreatorID LLUUID }
+ { TopPick BOOL }
+ { ParcelID LLUUID }
+ { Name Variable 1 }
+ { Desc Variable 2 }
+ { SnapshotID LLUUID }
+ { PosGlobal LLVector3d }
+ { SortOrder S32 }
+ { Enabled BOOL }
+ }
+}
+
+
+// PickDelete
+// Delete a non-top pick from the database.
+// viewer -> simulator -> dataserver
+// reliable
+{
+ PickDelete Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { PickID LLUUID }
+ }
+}
+
+// PickGodDelete
+// Delete a pick from the database.
+// QueryID is needed so database can send a repeat list of
+// picks.
+// viewer -> simulator -> dataserver
+// reliable
+{
+ PickGodDelete Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { PickID LLUUID }
+ { QueryID LLUUID }
+ }
+}
+
+
+// ScriptQuestion
+// reliable
+{
+ ScriptQuestion Low Trusted Unencoded
+ {
+ Data Single
+ { TaskID LLUUID }
+ { ItemID LLUUID }
+ { ObjectName Variable 1 }
+ { ObjectOwner Variable 1 }
+ { Questions S32 }
+ }
+}
+
+// ScriptControlChange
+// reliable
+{
+ ScriptControlChange Low Trusted Unencoded
+ {
+ Data Variable
+ { TakeControls BOOL }
+ { Controls U32 }
+ { PassToAgent BOOL }
+ }
+}
+
+// ScriptDialog
+// sim -> viewer
+// reliable
+{
+ ScriptDialog Low Trusted Zerocoded
+ {
+ Data Single
+ { ObjectID LLUUID }
+ { FirstName Variable 1 }
+ { LastName Variable 1 }
+ { ObjectName Variable 1 }
+ { Message Variable 2 }
+ { ChatChannel S32 }
+ { ImageID LLUUID }
+ }
+ {
+ Buttons Variable
+ { ButtonLabel Variable 1 }
+ }
+}
+
+
+// ScriptDialogReply
+// viewer -> sim
+// reliable
+{
+ ScriptDialogReply Low NotTrusted Zerocoded
+ {
+ Data Single
+ { AgentID LLUUID }
+ { ObjectID LLUUID }
+ { ChatChannel S32 }
+ { ButtonIndex S32 }
+ { ButtonLabel Variable 1 }
+ }
+}
+
+
+// ForceScriptControlRelease
+// reliable
+{
+ ForceScriptControlRelease Low NotTrusted Unencoded
+ {
+ Data Single
+ { ID LLUUID }
+ }
+}
+
+// RevokePermissions
+// reliable
+{
+ RevokePermissions Low NotTrusted Unencoded
+ {
+ Data Single
+ { AgentID LLUUID }
+ { ObjectID LLUUID }
+ { ObjectPermissions U32 }
+ }
+}
+
+// LoadURL
+// sim -> viewer
+// Ask the user if they would like to load a URL
+// reliable
+{
+ LoadURL Low Trusted Unencoded
+ {
+ Data Single
+ { ObjectName Variable 1 }
+ { ObjectID LLUUID }
+ { OwnerID LLUUID }
+ { OwnerIsGroup BOOL }
+ { Message Variable 1 }
+ { URL Variable 1 }
+ }
+}
+
+// ScriptTeleportRequest
+// reliable
+{
+ ScriptTeleportRequest Low Trusted Unencoded
+ {
+ Data Single
+ { ObjectName Variable 1 }
+ { SimName Variable 1 }
+ { SimPosition LLVector3 }
+ { LookAt LLVector3 }
+ }
+}
+
+
+
+
+// ***************************************************************************
+// Land Parcel system
+// ***************************************************************************
+
+// ParcelOverlay
+// We send N packets per region to the viewer.
+// N = 4, currently. At 256x256 meter regions, 4x4 meter parcel grid,
+// there are 4096 parcel units per region. At N = 4, that's 1024 units
+// per packet, allowing 8 bit bytes.
+// sim -> viewer
+// reliable
+{
+ ParcelOverlay Low Trusted Zerocoded
+ {
+ ParcelData Single
+ { SequenceID S32 } // 0...3, which piece of region
+ { Data Variable 2 } // packed bit-field, (grids*grids)/N
+ }
+}
+
+
+// ParcelPropertiesRequest
+// SequenceID should be -1 or -2, and is echoed back in the
+// parcel properties message.
+// viewer -> sim
+// reliable
+{
+ ParcelPropertiesRequest Medium NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { SequenceID S32 }
+ { West F32 }
+ { South F32 }
+ { East F32 }
+ { North F32 }
+ { SnapSelection BOOL }
+ }
+}
+
+// ParcelPropertiesRequestByID
+// viewer -> sim
+// reliable
+{
+ ParcelPropertiesRequestByID Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { SequenceID S32 }
+ { LocalID S32 }
+ }
+}
+
+// ParcelProperties
+// sequence id = -1 for parcels that you explicitly selected
+// For agents, sequence id increments every time the agent transits into
+// a new parcel. It is used to detect out-of-order agent parcel info updates.
+// Bitmap = packed bit field, one bit per parcel grid, on if that grid is
+// part of the selected parcel.
+// sim -> viewer
+// WARNING: This packet is potentially large. With max length name,
+// description, music URL and media URL, it is 1526 + sizeof ( LLUUID ) bytes.
+{
+ ParcelProperties High Trusted Zerocoded
+ {
+ ParcelData Single
+ { RequestResult S32 }
+ { SequenceID S32 }
+ { SnapSelection BOOL }
+ { SelfCount S32 }
+ { OtherCount S32 }
+ { PublicCount S32 }
+ { LocalID S32 }
+ { OwnerID LLUUID }
+ { IsGroupOwned BOOL }
+ { AuctionID U32 }
+ { ReservedNewbie BOOL }
+ { ClaimDate S32 } // time_t
+ { ClaimPrice S32 }
+ { RentPrice S32 }
+ { AABBMin LLVector3 }
+ { AABBMax LLVector3 }
+ { Bitmap Variable 2 } // packed bit-field
+ { Area S32 }
+ { Status U8 } // owned vs. pending
+ { SimWideMaxPrims S32 }
+ { SimWideTotalPrims S32 }
+ { MaxPrims S32 }
+ { TotalPrims S32 }
+ { OwnerPrims S32 }
+ { GroupPrims S32 }
+ { OtherPrims S32 }
+ { SelectedPrims S32 }
+ { ParcelPrimBonus F32 }
+
+ { OtherCleanTime S32 }
+
+ { ParcelFlags U32 }
+ { SalePrice S32 }
+ { Name Variable 1 } // string
+ { Desc Variable 1 } // string
+ { MusicURL Variable 1 } // string
+ { MediaURL Variable 1 } // string
+ { MediaID LLUUID }
+ { MediaAutoScale U8 }
+ { GroupID LLUUID }
+ { PassPrice S32 }
+ { PassHours F32 }
+ { Category U8 }
+ { AuthBuyerID LLUUID }
+ { SnapshotID LLUUID }
+ { UserLocation LLVector3 }
+ { UserLookAt LLVector3 }
+ { LandingType U8 }
+ { RegionPushOverride BOOL }
+ { RegionDenyAnonymous BOOL }
+ { RegionDenyIdentified BOOL }
+ { RegionDenyTransacted BOOL }
+ }
+}
+
+// ParcelPropertiesUpdate
+// viewer -> sim
+// reliable
+{
+ ParcelPropertiesUpdate Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { LocalID S32 }
+ { Flags U32 }
+
+ { ParcelFlags U32 }
+ { SalePrice S32 }
+ { Name Variable 1 } // string
+ { Desc Variable 1 } // string
+ { MusicURL Variable 1 } // string
+ { MediaURL Variable 1 } // string
+ { MediaID LLUUID }
+ { MediaAutoScale U8 }
+ { GroupID LLUUID }
+ { PassPrice S32 }
+ { PassHours F32 }
+ { Category U8 }
+ { AuthBuyerID LLUUID }
+ { SnapshotID LLUUID }
+ { UserLocation LLVector3 }
+ { UserLookAt LLVector3 }
+ { LandingType U8 }
+ }
+}
+
+// ParcelReturnObjects
+// viewer -> sim
+// reliable
+{
+ ParcelReturnObjects Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { LocalID S32 }
+ { ReturnType U32 }
+ }
+ {
+ TaskIDs Variable
+ { TaskID LLUUID }
+ }
+ {
+ OwnerIDs Variable
+ { OwnerID LLUUID }
+ }
+}
+
+// ParcelSetOtherCleanTime
+// viewer -> sim
+// reliable
+{
+ ParcelSetOtherCleanTime Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { LocalID S32 }
+ { OtherCleanTime S32 }
+ }
+}
+
+
+// Disable makes objects nonphysical and turns off their scripts.
+// ParcelDisableObjects
+// viewer -> sim
+// reliable
+{
+ ParcelDisableObjects Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { LocalID S32 }
+ { ReturnType U32 }
+ }
+ {
+ TaskIDs Variable
+ { TaskID LLUUID }
+ }
+ {
+ OwnerIDs Variable
+ { OwnerID LLUUID }
+ }
+}
+
+
+// ParcelSelectObjects
+// viewer -> sim
+// reliable
+{
+ ParcelSelectObjects Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { LocalID S32 }
+ { ReturnType U32 }
+ }
+ {
+ ReturnIDs Variable
+ { ReturnID LLUUID }
+ }
+}
+
+
+// EstateCovenantRequest
+// viewer -> sim
+// reliable
+{
+ EstateCovenantRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+// EstateCovenantReply
+// sim -> viewer
+// reliable
+{
+ EstateCovenantReply Low Trusted Unencoded
+ {
+ Data Single
+ { CovenantID LLUUID }
+ { CovenantTimestamp U32 }
+ { EstateName Variable 1 } // string
+ { EstateOwnerID LLUUID }
+ }
+}
+
+
+// ForceObjectSelect
+// sim -> viewer
+// reliable
+{
+ ForceObjectSelect Low Trusted Unencoded
+ {
+ Header Single
+ { ResetList BOOL }
+ }
+ {
+ Data Variable
+ { LocalID U32 }
+ }
+}
+
+
+// ParcelBuyPass - purchase a temporary access pass
+// viewer -> sim
+// reliable
+{
+ ParcelBuyPass Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { LocalID S32 }
+ }
+}
+
+// ParcelDeedToGroup - deed a patch of land to a group
+// viewer -> sim
+// reliable
+{
+ ParcelDeedToGroup Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { GroupID LLUUID }
+ { LocalID S32 } // parcel id
+ }
+}
+
+// reserved for when island owners force re-claim parcel
+{
+ ParcelReclaim Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { LocalID S32 } // parcel id
+ }
+}
+
+// ParcelClaim - change the owner of a patch of land
+// viewer -> sim
+// reliable
+{
+ ParcelClaim Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { GroupID LLUUID }
+ { IsGroupOwned BOOL }
+ { Final BOOL } // true if buyer is in tier
+ }
+ {
+ ParcelData Variable
+ { West F32 }
+ { South F32 }
+ { East F32 }
+ { North F32 }
+ }
+}
+
+// ParcelJoin - Take all parcels which are owned by agent and inside
+// rectangle, and make them 1 parcel if they all are leased.
+// viewer -> sim
+// reliable
+{
+ ParcelJoin Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { West F32 }
+ { South F32 }
+ { East F32 }
+ { North F32 }
+ }
+}
+
+// ParcelDivide
+// If the selection is a subsection of exactly one parcel,
+// chop out that section and make a new parcel of it.
+// viewer -> sim
+// reliable
+{
+ ParcelDivide Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { West F32 }
+ { South F32 }
+ { East F32 }
+ { North F32 }
+ }
+}
+
+// ParcelRelease
+// Release a parcel to public
+// viewer -> sim
+// reliable
+{
+ ParcelRelease Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { LocalID S32 } // parcel ID
+ }
+}
+
+// ParcelBuy - change the owner of a patch of land.
+// viewer -> sim
+// reliable
+{
+ ParcelBuy Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { GroupID LLUUID }
+ { IsGroupOwned BOOL }
+ { RemoveContribution BOOL }
+ { LocalID S32 }
+ { Final BOOL } // true if buyer is in tier
+ }
+}
+
+
+// ParcelGodForceOwner Unencoded
+{
+ ParcelGodForceOwner Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { OwnerID LLUUID }
+ { LocalID S32 } // parcel ID
+ }
+}
+
+
+// viewer -> sim
+// ParcelAccessListRequest
+{
+ ParcelAccessListRequest Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { SequenceID S32 }
+ { Flags U32 }
+ { LocalID S32 }
+ }
+}
+
+
+// sim -> viewer
+// ParcelAccessListReply
+{
+ ParcelAccessListReply Low Trusted Zerocoded
+ {
+ Data Single
+ { AgentID LLUUID }
+ { SequenceID S32 }
+ { Flags U32 }
+ { LocalID S32 }
+ }
+ {
+ List Variable
+ { ID LLUUID }
+ { Time S32 } // time_t
+ { Flags U32 }
+ }
+}
+
+// viewer -> sim
+// ParcelAccessListUpdate
+{
+ ParcelAccessListUpdate Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { Flags U32 }
+ { LocalID S32 }
+ { TransactionID LLUUID }
+ { SequenceID S32 }
+ { Sections S32 }
+ }
+ {
+ List Variable
+ { ID LLUUID }
+ { Time S32 } // time_t
+ { Flags U32 }
+ }
+}
+
+
+// viewer -> sim -> dataserver
+// reliable
+{
+ ParcelDwellRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { LocalID S32 }
+ { ParcelID LLUUID } // filled in on sim
+ }
+}
+
+
+// dataserver -> sim -> viewer
+// reliable
+{
+ ParcelDwellReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ Data Single
+ { LocalID S32 }
+ { ParcelID LLUUID }
+ { Dwell F32 }
+ }
+}
+
+// sim -> dataserver
+// This message is used to check if a user can buy a parcel. If
+// successful, the transaction is approved through a money balance reply
+// with the same transaction id.
+{
+ RequestParcelTransfer Low Trusted Zerocoded
+ {
+ Data Single
+ { TransactionID LLUUID }
+ { TransactionTime U32 } // utc seconds since epoch
+ { SourceID LLUUID }
+ { DestID LLUUID }
+ { OwnerID LLUUID }
+ { Flags U8 } // see lltransactiontypes.h
+ { TransactionType S32 } // see lltransactiontypes.h
+ { Amount S32 }
+ { BillableArea S32 }
+ { ActualArea S32 }
+ { Final BOOL } // true if buyer should be in tier
+ { ReservedNewbie BOOL }
+ }
+}
+
+// sim ->dataserver
+// This message is used to send up complete parcel properties for
+// persistance in the database.
+// If you add something here, you should probably also change the
+// simulator's database update query on startup.
+{
+ UpdateParcel Low Trusted Zerocoded
+ {
+ ParcelData Single
+ { ParcelID LLUUID }
+ { RegionHandle U64 }
+ { OwnerID LLUUID }
+ { GroupOwned BOOL }
+ { Status U8 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { MusicURL Variable 1 }
+ { RegionX F32 }
+ { RegionY F32 }
+ { ActualArea S32 }
+ { BillableArea S32 }
+ { ShowDir BOOL }
+ { IsForSale BOOL }
+ { Category U8 }
+ { SnapshotID LLUUID }
+ { UserLocation LLVector3 }
+ { SalePrice S32 }
+ { AuthorizedBuyerID LLUUID }
+ { ReservedNewbie BOOL }
+ { AllowPublish BOOL }
+ { MaturePublish BOOL }
+ }
+}
+
+// sim -> dataserver or space ->sim
+// This message is used to tell the dataserver that a parcel has been
+// removed.
+{
+ RemoveParcel Low Trusted Unencoded
+ {
+ ParcelData Variable
+ { ParcelID LLUUID }
+ }
+}
+
+// sim -> dataserver
+// Merges some of the database information for parcels (dwell).
+{
+ MergeParcel Low Trusted Unencoded
+ {
+ MasterParcelData Single
+ { MasterID LLUUID }
+ }
+ {
+ SlaveParcelData Variable
+ { SlaveID LLUUID }
+ }
+}
+
+// sim -> dataserver
+{
+ LogParcelChanges Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ RegionData Single
+ { RegionHandle U64 }
+ }
+ {
+ ParcelData Variable
+ { ParcelID LLUUID }
+ { OwnerID LLUUID }
+ { IsOwnerGroup BOOL }
+ { ActualArea S32 }
+ { Action S8 }
+ { TransactionID LLUUID }
+ }
+}
+
+// userserver -> dataserver
+// Used to request all parcel sales in the database
+//{
+// RequestParcelSales Low Trusted Unencoded
+//}
+
+// dataserver -> userserver -> spaceserver
+// response of all (up to max packet size) parcel sales in the database.
+// each block in the meassage represents a parcel that a human agreed
+// to pay US$.
+//{
+// BulkParcelSales Low Trusted Unencoded
+// {
+// ParcelData Variable
+// { RegionHandle U64 }
+// { ParcelID LLUUID }
+// { BuyerID LLUUID }
+// }
+//}
+
+// sim -> dataserver
+{
+ CheckParcelSales Low Trusted Unencoded
+ {
+ RegionData Variable
+ { RegionHandle U64 }
+ }
+}
+
+// dataserver -> simulator
+// tell a particular simulator to finish parcel sale.
+{
+ ParcelSales Low Trusted Unencoded
+ {
+ ParcelData Variable
+ { ParcelID LLUUID }
+ { BuyerID LLUUID }
+ }
+}
+
+// viewer -> sim
+// mark parcel and double secret agent content on parcel as owned by
+// governor/maint and adjusts permissions approriately. Godlike request.
+{
+ ParcelGodMarkAsContent Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { LocalID S32 }
+ }
+}
+
+// viewer -> sim
+{
+ ParcelGodReserveForNewbie Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { LocalID S32 }
+ { SnapshotID LLUUID }
+ }
+}
+
+// viewer -> sim
+// start an auction. viewer fills in the appropriate date, simulator
+// validates and fills in the rest of the information to start an auction
+// on a parcel. Processing currently requires that AgentID is a god.
+{
+ ViewerStartAuction Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ParcelData Single
+ { LocalID S32 }
+ { SnapshotID LLUUID }
+ }
+}
+
+// sim -> dataserver
+// Once all of the data has been gathered,
+{
+ StartAuction Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ParcelData Single
+ { ParcelID LLUUID }
+ { SnapshotID LLUUID }
+ { Name Variable 1 } // string
+ }
+}
+
+// dataserver -> sim
+{
+ ConfirmAuctionStart Low Trusted Unencoded
+ {
+ AuctionData Single
+ { ParcelID LLUUID }
+ { AuctionID U32 }
+ }
+}
+
+// sim -> dataserver
+// Tell the dataserver that an auction has completed.
+{
+ CompleteAuction Low Trusted Unencoded
+ {
+ ParcelData Variable
+ { ParcelID LLUUID }
+ }
+}
+
+// Tell the dataserver that an auction has been canceled.
+{
+ CancelAuction Low Trusted Unencoded
+ {
+ ParcelData Variable
+ { ParcelID LLUUID }
+ }
+}
+
+// userserver -> dataserver
+// Used to request all parcel sales in the database
+//{
+// RequestParcelAuctions Low Trusted Unencoded
+//}
+
+// dataserver -> userserver -> spaceserver
+// response of all (up to max packet size) parcel sales in the database.
+// each block in the meassage represents a parcel that a human agreed
+// to pay US$.
+//{
+// BulkParcelAuctions Low Trusted Unencoded
+// {
+// ParcelData Variable
+// { RegionHandle U64 }
+// { ParcelID LLUUID }
+// { WinnerID LLUUID }
+// }
+//}
+
+// sim -> dataserver
+{
+ CheckParcelAuctions Low Trusted Unencoded
+ {
+ RegionData Variable
+ { RegionHandle U64 }
+ }
+}
+
+// dataserver -> sim
+// tell a particular simulator to finish parcel sale.
+{
+ ParcelAuctions Low Trusted Unencoded
+ {
+ ParcelData Variable
+ { ParcelID LLUUID }
+ { WinnerID LLUUID }
+ }
+}
+
+// ***************************************************************************
+// UUID to name lookup
+// ***************************************************************************
+
+// UUIDNameRequest
+// Translate a UUID into first and last names
+{
+ UUIDNameRequest Low NotTrusted Unencoded
+ {
+ UUIDNameBlock Variable
+ { ID LLUUID }
+ }
+}
+
+// UUIDNameReply
+// Translate a UUID into first and last names
+{
+ UUIDNameReply Low Trusted Unencoded
+ {
+ UUIDNameBlock Variable
+ { ID LLUUID }
+ { FirstName Variable 1 }
+ { LastName Variable 1 }
+ }
+}
+
+// UUIDGroupNameRequest
+// Translate a UUID into a group name
+{
+ UUIDGroupNameRequest Low NotTrusted Unencoded
+ {
+ UUIDNameBlock Variable
+ { ID LLUUID }
+ }
+}
+
+// UUIDGroupNameReply
+// Translate a UUID into a group name
+{
+ UUIDGroupNameReply Low Trusted Unencoded
+ {
+ UUIDNameBlock Variable
+ { ID LLUUID }
+ { GroupName Variable 1 }
+ }
+}
+
+// end uuid to name lookup
+
+// ***************************************************************************
+// Simulator to Simulator Messages
+// ***************************************************************************
+
+// ChatPass
+// Chat message transmission to neighbors
+// Chat is region local to receiving simulator.
+// Type is one of CHAT_TYPE_NORMAL, _WHISPER, _SHOUT
+{
+ ChatPass Low Trusted Zerocoded
+ {
+ ChatData Single
+ { Channel S32 }
+ { Position LLVector3 }
+ { ID LLUUID }
+ { OwnerID LLUUID }
+ { Name Variable 1 }
+ { SourceType U8 }
+ { Type U8 }
+ { Radius F32 }
+ { SimAccess U8 }
+ { Message Variable 2 }
+ }
+}
+
+// Edge data - compressed edge data
+
+{
+ EdgeDataPacket High Trusted Zerocoded
+ {
+ EdgeData Single
+ { LayerType U8 }
+ { Direction U8 }
+ { LayerData Variable 2 }
+ }
+}
+
+// Sim status, condition of this sim
+// sent reliably, when dirty
+{
+ SimStatus Medium Trusted Unencoded
+ {
+ SimStatus Single
+ { CanAcceptAgents BOOL }
+ { CanAcceptTasks BOOL }
+ }
+}
+
+// Child Agent Update - agents send child agents to neighboring simulators.
+// This will create a child camera if there isn't one at the target already
+// Can't send viewer IP and port between simulators -- the port may get remapped
+// if the viewer is behind a Network Address Translation (NAT) box.
+//
+// Note: some of the fields of this message really only need to be sent when an
+// agent crosses a region boundary and changes from a child to a main agent
+// (such as Head/BodyRotation, ControlFlags, Animations etc)
+// simulator -> simulator
+// reliable
+{
+ ChildAgentUpdate High Trusted Zerocoded
+ {
+ AgentData Single
+
+ { RegionHandle U64 }
+ { ViewerCircuitCode U32 }
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+
+ { AgentPos LLVector3 }
+ { AgentVel LLVector3 }
+ { Center LLVector3 }
+ { Size LLVector3 }
+ { AtAxis LLVector3 }
+ { LeftAxis LLVector3 }
+ { UpAxis LLVector3 }
+ { ChangedGrid BOOL } // BOOL
+
+ { Far F32 }
+ { Aspect F32 }
+ { Throttles Variable 1 }
+ { LocomotionState U32 }
+ { HeadRotation LLQuaternion }
+ { BodyRotation LLQuaternion }
+ { ControlFlags U32 }
+ { EnergyLevel F32 }
+ { GodLevel U8 } // Changed from BOOL to U8, and renamed GodLevel (from Godlike)
+ { AlwaysRun BOOL }
+ { PreyAgent LLUUID }
+ { AgentAccess U8 }
+ { AgentTextures Variable 2 }
+ { ActiveGroupID LLUUID }
+ }
+ {
+ GroupData Variable
+ { GroupID LLUUID }
+ { GroupPowers U64 }
+ { AcceptNotices BOOL }
+ }
+ {
+ AnimationData Variable
+ { Animation LLUUID }
+ { ObjectID LLUUID }
+ }
+ {
+ GranterBlock Variable
+ { GranterID LLUUID }
+ }
+ {
+ NVPairData Variable
+ { NVPairs Variable 2 }
+ }
+ {
+ VisualParam Variable
+ { ParamValue U8 }
+ }
+}
+
+// ChildAgentAlive
+// sent to child agents just to keep them alive
+{
+ ChildAgentAlive High Trusted Unencoded
+ {
+ AgentData Single
+ { RegionHandle U64 }
+ { ViewerCircuitCode U32 }
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+// ChildAgentPositionUpdate
+// sent to child agents just to keep them alive
+{
+ ChildAgentPositionUpdate High Trusted Unencoded
+ {
+ AgentData Single
+
+ { RegionHandle U64 }
+ { ViewerCircuitCode U32 }
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+
+ { AgentPos LLVector3 }
+ { AgentVel LLVector3 }
+ { Center LLVector3 }
+ { Size LLVector3 }
+ { AtAxis LLVector3 }
+ { LeftAxis LLVector3 }
+ { UpAxis LLVector3 }
+ { ChangedGrid BOOL }
+ }
+}
+
+
+// Obituary for child agents - make sure the parent know the child is dead
+// This way, children can be reliably restarted
+{
+ ChildAgentDying Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+
+// This is sent if a full child agent hasn't been accepted yet
+{
+ ChildAgentUnknown Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+// Pass Object Between Simulators
+//
+// BUG compress rotation
+// BUG compress scale
+{
+ PassObject High Trusted Zerocoded
+ {
+ ObjectData Single
+ { ID LLUUID }
+ { ParentID LLUUID }
+
+ { CreatorID LLUUID } // permissions
+ { OwnerID LLUUID } // permissions
+ { GroupID LLUUID } // permissions
+ { BaseMask U32 } // permissions
+ { OwnerMask U32 } // permissions
+ { GroupMask U32 } // permissions
+ { EveryoneMask U32 } // permissions
+ { NextOwnerMask U32 } // permissions
+ { GroupOwned BOOL } // permissions
+
+ { PCode U8 }
+ { Material U8 }
+ { State U8 }
+ { Scale LLVector3 }
+ { UsePhysics U8 }
+
+ { PosX S16 }
+ { PosY S16 }
+ { PosZ S16 }
+
+ { VelX S16 }
+ { VelY S16 }
+ { VelZ S16 }
+
+ { Rotation LLQuaternion }
+
+ { AngVelX S16 }
+ { AngVelY S16 }
+ { AngVelZ S16 }
+
+ { PathCurve U8 }
+ { ProfileCurve U8 }
+ { PathBegin U8 } // 0 to 1, quanta = 0.01
+ { PathEnd U8 } // 0 to 1, quanta = 0.01
+ { PathScaleX U8 } // 0 to 1, quanta = 0.01
+ { PathScaleY U8 } // 0 to 1, quanta = 0.01
+ { PathShearX U8 } // -.5 to .5, quanta = 0.01
+ { PathShearY U8 } // -.5 to .5, quanta = 0.01
+ { PathTwist S8 } // -1 to 1, quanta = 0.01
+ { PathTwistBegin S8 } // -1 to 1, quanta = 0.01
+ { PathRadiusOffset S8 } // -1 to 1, quanta = 0.01
+ { PathTaperX S8 } // -1 to 1, quanta = 0.01
+ { PathTaperY S8 } // -1 to 1, quanta = 0.01
+ { PathRevolutions U8 } // 0 to 3, quanta = 0.015
+ { PathSkew S8 } // -1 to 1, quanta = 0.01
+ { ProfileBegin U8 } // 0 to 1, quanta = 0.01
+ { ProfileEnd U8 } // 0 to 1, quanta = 0.01
+ { ProfileHollow U8 } // 0 to 1, quanta = 0.01
+
+ { TextureEntry Variable 2 }
+
+ { SubType S16 }
+ { Active U8 }
+
+ { Data Variable 2 }
+ }
+ {
+ NVPairData Variable
+ { NVPairs Variable 2 }
+ }
+}
+
+// This message is sent how objects get passed between regions.
+{
+ AtomicPassObject High Trusted Unencoded
+ {
+ TaskData Single
+ { TaskID LLUUID }
+ { AttachmentNeedsSave BOOL } // true iff is attachment and needs asset saved
+ }
+}
+
+
+// KillChildAgents - A new agent has connected to the simulator . . . make sure that any old child cameras are blitzed
+{
+ KillChildAgents Low Trusted Unencoded
+ {
+ IDBlock Single
+ { AgentID LLUUID }
+ }
+}
+
+
+// GetScriptRunning - asks if a script is running or not. the simulator
+// responds with ScriptRunningReply
+{
+ GetScriptRunning Low NotTrusted Unencoded
+ {
+ Script Single
+ { ObjectID LLUUID }
+ { ItemID LLUUID }
+ }
+}
+
+// ScriptRunningReply - response from simulator to message above
+{
+ ScriptRunningReply Low NotTrusted Unencoded
+ {
+ Script Single
+ { ObjectID LLUUID }
+ { ItemID LLUUID }
+ { Running BOOL }
+ }
+}
+
+
+// SetScriptRunning - makes a script active or inactive (Enable may be
+// true or false)
+{
+ SetScriptRunning Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Script Single
+ { ObjectID LLUUID }
+ { ItemID LLUUID }
+ { Running BOOL }
+ }
+}
+
+// ScriptReset - causes a script to reset
+{
+ ScriptReset Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Script Single
+ { ObjectID LLUUID }
+ { ItemID LLUUID }
+ }
+}
+
+// ScriptSensorRequest - causes the receiving sim to run a script sensor and return the results
+{
+ ScriptSensorRequest Low Trusted Zerocoded
+ {
+ Requester Single
+ { SourceID LLUUID }
+ { RequestID LLUUID }
+ { SearchID LLUUID }
+ { SearchPos LLVector3 }
+ { SearchDir LLQuaternion }
+ { SearchName Variable 1 }
+ { Type S32 }
+ { Range F32 }
+ { Arc F32 }
+ { RegionHandle U64 }
+ { SearchRegions U8 }
+ }
+}
+
+// ScriptSensorReply - returns the request script search information back to the requester
+{
+ ScriptSensorReply Low Trusted Zerocoded
+ {
+ Requester Single
+ { SourceID LLUUID }
+ }
+ {
+ SensedData Variable
+ { ObjectID LLUUID }
+ { OwnerID LLUUID }
+ { GroupID LLUUID }
+ { Position LLVector3 }
+ { Velocity LLVector3 }
+ { Rotation LLQuaternion }
+ { Name Variable 1 }
+ { Type S32 }
+ { Range F32 }
+ }
+}
+
+//-----------------------------------------------------------------------------
+// Login and Agent Motion
+//-----------------------------------------------------------------------------
+
+// viewer -> sim
+// agent is coming into the region. The region should be expecting the
+// agent.
+{
+ CompleteAgentMovement Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { CircuitCode U32 }
+ }
+}
+
+// sim -> viewer
+{
+ AgentMovementComplete Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { Position LLVector3 }
+ { LookAt LLVector3 }
+ { RegionHandle U64 }
+ { Timestamp U32 }
+ }
+}
+
+// sim->dataserver
+// log the fact that the agent has logged in.
+{
+ LogLogin Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { ViewerDigest LLUUID }
+ { LastExecFroze BOOL }
+ { SpaceIP IPADDR }
+ }
+}
+
+// LoginRequestSafe
+// Attempt to log into the system with an auth token obtained via a
+// secure out of band mechanism (such as a TLS tunnel)
+// viewer -> userserver
+// unreliable
+//{
+// LoginRequestSafe Low NotTrusted Unencoded
+// {
+// LoginBlock Single
+// { AuthToken LLUUID } // session id really
+// { ViewerDigest LLUUID } // MD5 of viewer exe
+// { LastExecFroze BOOL }
+// }
+//}
+
+// LoginReply
+// Identifies the session, or sends LLUUID::null if invalid
+// userserver -> viewer
+//{
+// LoginReply Low Trusted Zerocoded
+// {
+// UserData Single
+// { Firstname Variable 1 } // string, canonical caps
+// { Lastname Variable 1 } // string, canonical caps
+// { SessionID LLUUID }
+// { AgentID LLUUID }
+// { ErrorMessage Variable 1 }
+// { AgentAccess U8 }
+// { GroupOfficer BOOL }
+// { GroupTitle Variable 1 }
+// { GroupID LLUUID }
+// { GroupName Variable 1 }
+// { GroupInsigniaID LLUUID }
+// { LoginFlags U32 } // bitfield
+// { SunTextureID LLUUID }
+// { MoonTextureID LLUUID }
+// { CloudTextureID LLUUID }
+// { TOSAssetID LLUUID } // Null if TOS agreement is current
+// { CriticalMessageAssetID LLUUID } // Null if message is current
+// { TrialDaysLeft S32 } // Zero if not trial
+// { ServerUTCTime U32 } // time_t, unix time format
+// }
+// {
+// StartLocationData Variable
+// { LocationID U32 }
+// { LocationRegionX U32 } // U32, meters to southwest
+// { LocationRegionY U32 }
+// { LocationPos LLVector3 } // Vector3, region coords
+// { LocationLookAt LLVector3 } // Vector3
+// }
+//}
+
+// DataserverLoginRequestSafe
+// userserver -> dataserver
+//{
+// DataserverLoginRequestSafe Low Trusted Unencoded
+// {
+// UserData Single
+// { AuthToken LLUUID } // session id really
+// { IP IPADDR }
+// { Port IPPORT }
+// { SpaceIP IPADDR }
+// { ViewerDigest LLUUID }
+// { LastExecFroze BOOL }
+// }
+//}
+
+// DataServerLoginReply
+// TimeValid is true if user is allowed to log in at this time
+// dataserver -> userserver
+// reliable
+//{
+// DataServerLoginReply Low Trusted Zerocoded
+// {
+// UserData Single
+// { Firstname Variable 1 } // string
+// { Lastname Variable 1 } // string
+// { IP IPADDR } // don't think this is valid JC 6/02
+// { Port IPPORT } // don't think this is valid JC 6/02
+// { LoginValid BOOL }
+// { TimeValid BOOL }
+// { ErrorMessage Variable 1 } // string
+// { AgentID LLUUID }
+// { SessionID LLUUID }
+// { LimitedToEstate U32 }
+// { AgentAccess U8 }
+// { GroupOfficer BOOL }
+// { GroupTitle Variable 1 }
+// { GroupID LLUUID }
+// { GroupName Variable 1 }
+// { GroupInsigniaID LLUUID }
+// { LoginFlags U32 } // bitfield
+// { SunTextureID LLUUID }
+// { MoonTextureID LLUUID }
+// { CloudTextureID LLUUID }
+// { TOSAssetID LLUUID } // Null if TOS agreement is current
+// { CriticalMessageAssetID LLUUID } // Null if message is current
+// { TrialDaysLeft S32 } // Zero if not trial
+// { ServerUTCTime U32 } // time_t, unix time format
+// { SpaceIP IPADDR }
+// { ViewerDigest LLUUID }
+// { LastExecFroze BOOL }
+// }
+// {
+// StartLocationData Variable
+// { LocationID U32 }
+// { LocationRegionX U32 }
+// { LocationRegionY U32 }
+// { LocationPos LLVector3 } // Vector3
+// { LocationLookAt LLVector3 } // Vector3
+// }
+//}
+
+// The user agrees to the current Terms of Service
+// or clicks OK on the current critical message
+// type 0 = TOS
+// type 1 = critical message
+// viewer -> userserver -> dataserver
+//{
+// TOSAgreement Low NotTrusted Unencoded
+// {
+// AgentBlock Single
+// { AgentID LLUUID }
+// { Type S32 }
+// }
+//}
+
+// This message is sent from the viewer on login or on demand from the
+// userserver.
+// viewer -> userserver
+{
+ ConnectAgentToUserserver Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+// This message is sent from the userserver when it does not have
+// trusted connection or known agent on the circuit.
+{
+ ConnectToUserserver Low Trusted Unencoded
+}
+
+//-----------------------------------------------------------------------------
+// Logout
+//-----------------------------------------------------------------------------
+
+// userserver -> dataserver
+{
+ DataServerLogout Low Trusted Unencoded
+ {
+ UserData Single
+ { AgentID LLUUID }
+ { ViewerIP IPADDR }
+ { Disconnect BOOL }
+ { SessionID LLUUID }
+ }
+}
+
+// LogoutRequest
+// viewer -> sim
+// reliable
+{
+ LogoutRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+// FinalizeLogout
+// Callback for when sim is done uploading assets to asset server
+// viewer -> sim
+// reliable
+{
+ FinalizeLogout Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+// LogoutReply
+// it's ok for the viewer to quit.
+// sim -> viewer
+// reliable
+// Includes inventory items to update with new asset ids
+{
+ LogoutReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ InventoryData Variable
+ { ItemID LLUUID } // null if list is actually empty (but has one entry 'cause it can't have none)
+ { NewAssetID LLUUID }
+ }
+}
+
+
+
+// LogoutDemand
+{
+ LogoutDemand Low Trusted Unencoded
+ {
+ LogoutBlock Single
+ { SessionID LLUUID }
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+// Viewer to UserServer Messages
+//-----------------------------------------------------------------------------
+
+// ViewerLoginLocationRequest
+// viewer -> userserver
+// *NOTE: obsolete
+{
+ ViewerLoginLocationRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ PositionBlock Single
+ { ViewerRegion U64 }
+ { ViewerPosition LLVector3 }
+ }
+ {
+ URLBlock Single
+ { SimName Variable 1 }
+ { Pos LLVector3 }
+ }
+}
+
+// ViewerSimLocationRequest
+// viewer -> userserver
+// *NOTE: obsolete
+{
+ ViewerSimLocationRequest Low NotTrusted Unencoded
+ {
+ PositionBlock Single
+ { AgentID LLUUID }
+ { SimName Variable 1 }
+ }
+}
+
+// RequestLocationGetAccess
+// userserver -> dataserver
+// *NOTE: obsolete.
+{
+ RequestLocationGetAccess Low Trusted Unencoded
+ {
+ PositionBlock Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { ViewerIP IPADDR }
+ { ViewerPort IPPORT }
+ { ViewerRegion U64 }
+ { ViewerPosition LLVector3 }
+ }
+}
+
+// RequestLocationGetAccessReply
+// dataserver -> userserver
+// *NOTE: obsolete.
+{
+ RequestLocationGetAccessReply Low Trusted Unencoded
+ {
+ PositionBlock Single
+ { ViewerIP IPADDR }
+ { ViewerPort IPPORT }
+ { ViewerRegion U64 }
+ { ViewerPosition LLVector3 }
+ { TravelAccess U8 }
+ }
+}
+
+
+// UserListRequest
+// Get a list of the current system users
+// viewer -> userserver
+//*NOTE: obsolete
+{
+ UserListRequest Low NotTrusted Unencoded
+}
+
+
+//-----------------------------------------------------------------------------
+// Instant Message
+//-----------------------------------------------------------------------------
+
+// ImprovedInstantMessage
+// This message can potentially route all over the place
+// ParentEstateID: parent estate id of the source estate
+// RegionID: region id of the source of the IM.
+// Position: position of the sender in region local coordinates
+// Dialog see llinstantmessage.h for values
+// ID May be used by dialog. Interpretation depends on context.
+// BinaryBucket May be used by some dialog types
+// reliable
+{
+ ImprovedInstantMessage Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ MessageBlock Single
+ { FromGroup BOOL }
+ { ToAgentID LLUUID }
+ { ParentEstateID U32 }
+ { RegionID LLUUID }
+ { Position LLVector3 }
+ { Offline U8 }
+ { Dialog U8 } // U8 - IM type
+ { ID LLUUID }
+ { Timestamp U32 }
+ { FromAgentName Variable 1 }
+ { Message Variable 2 }
+ { BinaryBucket Variable 2 }
+ }
+}
+
+// Start group IM session. If everyone is 1, then offline users also
+// get the messages.
+{
+ StartGroupIM Low NotTrusted Unencoded
+ {
+ SessionBlock Single
+ { SessionID LLUUID }
+ { Everyone U8 }
+ }
+ {
+ Participants Variable
+ { AgentID LLUUID }
+ }
+}
+
+// drop out from a group instant message
+{
+ DropGroupIM Low NotTrusted Unencoded
+ {
+ SessionBlock Single
+ { SessionID LLUUID }
+ { AgentID LLUUID }
+ }
+}
+
+// Group instant messaging
+{
+ GroupIM Low NotTrusted Unencoded
+ {
+ MessageBlock Single
+ { SessionID LLUUID }
+ { FromID LLUUID }
+ { FromAgentName Variable 1 }
+ { Message Variable 2 }
+ }
+}
+
+// RetrieveInstantMessages - used to get instant messages that
+// were persisted out to the database while the user was offline
+{
+ RetrieveInstantMessages Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+// DequeueInstantMessages - used to get messages out of the IM
+// queue that have come from outside of the system.
+{
+ DequeueInstantMessages Low Trusted Unencoded
+}
+
+// FindAgent - used to find an agent's global position. I used a
+// variable sized LocationBlock so that the message can be recycled with
+// minimum new messages and handlers.
+{
+ FindAgent Low NotTrusted Unencoded
+ {
+ AgentBlock Single
+ { Hunter LLUUID }
+ { Prey LLUUID }
+ { SpaceIP IPADDR }
+ }
+ {
+ LocationBlock Variable
+ { GlobalX F64 }
+ { GlobalY F64 }
+ }
+}
+
+// This message is sent viewer->userserver to track if other agents
+// come on or off line.
+{
+ TrackOnlineStatus Low NotTrusted Zerocoded
+ {
+ AgentBlock Variable
+ { AgentID LLUUID }
+ }
+}
+
+// This message is sent viewer->userserver to ignore logon and logoff
+// events for the specified agents. This is typically sent when a
+// calling card is deleted or cancelled.
+{
+ IgnoreOnlineStatus Low NotTrusted Zerocoded
+ {
+ AgentBlock Variable
+ { AgentID LLUUID }
+ }
+}
+
+// Set godlike to 1 if you want to become godlike.
+// Set godlike to 0 if you want to relinquish god powers.
+// viewer -> simulator -> dataserver
+// reliable
+{
+ RequestGodlikePowers Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ RequestBlock Single
+ { Godlike BOOL }
+ { Token LLUUID } // viewer packs a null, sim packs token
+ }
+}
+
+// At the simulator, turn the godlike bit on.
+// At the viewer, show the god menu.
+// dataserver -> simulator -> viewer
+// reliable
+{
+ GrantGodlikePowers Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ GrantData Single
+ { GodLevel U8 }
+ { Token LLUUID } // checked on sim, ignored on viewer
+ }
+}
+
+// GodlikeMessage - generalized construct for Gods to send messages
+// around the system. Each Request has it's own internal protocol.
+{
+ GodlikeMessage Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ MethodData Single
+ { Method Variable 1 }
+ { Invoice LLUUID }
+ }
+ {
+ ParamList Variable
+ { Parameter Variable 1 }
+ }
+}
+
+// EstateOwnerMessage
+// format must be identical to above
+{
+ EstateOwnerMessage Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ MethodData Single
+ { Method Variable 1 }
+ { Invoice LLUUID }
+ }
+ {
+ ParamList Variable
+ { Parameter Variable 1 }
+ }
+}
+
+// GenericMessage
+// format must be identical to above
+// As above, but don't have to be god or estate owner to send.
+{
+ GenericMessage Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ MethodData Single
+ { Method Variable 1 }
+ { Invoice LLUUID }
+ }
+ {
+ ParamList Variable
+ { Parameter Variable 1 }
+ }
+}
+
+// ***************************************************************************
+// Requests for possessions, acquisition, money, etc
+// ***************************************************************************
+
+// request for mute list
+{
+ MuteListRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ MuteData Single
+ { MuteCRC U32 }
+ }
+}
+
+// update/add someone in the mute list
+{
+ UpdateMuteListEntry Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ MuteData Single
+ { MuteID LLUUID }
+ { MuteName Variable 1 }
+ { MuteType S32 }
+ { MuteFlags U32 }
+ }
+}
+
+// Remove a mute list entry.
+{
+ RemoveMuteListEntry Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ MuteData Single
+ { MuteID LLUUID }
+ { MuteName Variable 1 }
+ }
+}
+
+
+// viewer -> userserver, gimme inventory
+//{
+// InventoryRequest Low NotTrusted Unencoded
+// {
+// InventoryData Single
+// { AgentID LLUUID }
+// { CacheCRC U32 }
+// }
+//}
+
+//
+// Inventory update messages
+//
+{
+ UpdateInventoryItem Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ InventoryData Variable
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+
+ { CreatorID LLUUID } // permissions
+ { OwnerID LLUUID } // permissions
+ { GroupID LLUUID } // permissions
+ { BaseMask U32 } // permissions
+ { OwnerMask U32 } // permissions
+ { GroupMask U32 } // permissions
+ { EveryoneMask U32 } // permissions
+ { NextOwnerMask U32 } // permissions
+ { GroupOwned BOOL } // permissions
+
+ { AssetID LLUUID }
+ { Type S8 }
+ { InvType S8 }
+ { Flags U32 }
+ { SaleType U8 }
+ { SalePrice S32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { CreationDate S32 }
+ { CRC U32 }
+ }
+}
+
+// When all that has updated is the asset, we can crunch this down.
+{
+ UpdateInventoryItemAsset Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ InventoryData Variable
+ { ItemID LLUUID }
+ { AssetID LLUUID }
+ }
+}
+
+{
+ MoveInventoryItem Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Stamp BOOL } // should the server re-timestamp?
+ }
+ {
+ InventoryData Variable
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+ }
+}
+
+// copy inventory item by item id to specified destination folder,
+// send out bulk inventory update when done.
+// currently only sim->data, but it is general enough to be
+// a viewer request.
+{
+ CopyInventoryItem Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ InventoryData Variable
+ { OldItemID LLUUID }
+ { NewFolderID LLUUID }
+ }
+}
+
+{
+ RemoveInventoryItem Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ InventoryData Variable
+ { ItemID LLUUID }
+ }
+}
+
+{
+ ChangeInventoryItemFlags Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ InventoryData Variable
+ { ItemID LLUUID }
+ { Flags U32 }
+ }
+}
+
+
+{
+ SaveAssetIntoInventory Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ InventoryData Single
+ { ItemID LLUUID }
+ { NewAssetID LLUUID }
+ }
+}
+
+{
+ CreateInventoryFolder Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ FolderData Single
+ { FolderID LLUUID }
+ { ParentID LLUUID }
+ { Type S8 }
+ { Name Variable 1 }
+ }
+}
+
+{
+ UpdateInventoryFolder Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ FolderData Variable
+ { FolderID LLUUID }
+ { ParentID LLUUID }
+ { Type S8 }
+ { Name Variable 1 }
+ }
+}
+
+{
+ MoveInventoryFolder Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Stamp BOOL } // should the server re-timestamp children
+ }
+ {
+ InventoryData Variable
+ { FolderID LLUUID }
+ { ParentID LLUUID }
+ }
+}
+
+{
+ RemoveInventoryFolder Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ FolderData Variable
+ { FolderID LLUUID }
+ }
+}
+
+// Get inventory segment.
+{
+ FetchInventoryDescendents Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ InventoryData Single
+ { FolderID LLUUID }
+ { OwnerID LLUUID }
+ { SortOrder S32 } // 0 = name, 1 = time
+ { FetchFolders BOOL } // false will omit folders in query
+ { FetchItems BOOL } // false will omit items in query
+ }
+}
+
+// return inventory segment.
+// *NOTE: This could be compressed more since we already know the
+// parent_id for folders and the folder_id for items, but this is
+// reasonable until we heve server side inventory.
+{
+ InventoryDescendents Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { FolderID LLUUID }
+ { OwnerID LLUUID } // owner of the folders creatd.
+ { Version S32 } // version of the folder for caching
+ { Descendents S32 } // count to help with caching
+ }
+ {
+ FolderData Variable
+ { FolderID LLUUID }
+ { ParentID LLUUID }
+ { Type S8 }
+ { Name Variable 1 }
+ }
+ {
+ ItemData Variable
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+ { CreatorID LLUUID } // permissions
+ { OwnerID LLUUID } // permissions
+ { GroupID LLUUID } // permissions
+ { BaseMask U32 } // permissions
+ { OwnerMask U32 } // permissions
+ { GroupMask U32 } // permissions
+ { EveryoneMask U32 } // permissions
+ { NextOwnerMask U32 } // permissions
+ { GroupOwned BOOL } // permissions
+ { AssetID LLUUID }
+ { Type S8 }
+ { InvType S8 }
+ { Flags U32 }
+ { SaleType U8 }
+ { SalePrice S32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { CreationDate S32 }
+ { CRC U32 }
+ }
+}
+
+// Get inventory item(s) - response comes through FetchInventoryReply
+{
+ FetchInventory Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ InventoryData Variable
+ { OwnerID LLUUID }
+ { ItemID LLUUID }
+ }
+}
+
+// response to fetch inventory
+{
+ FetchInventoryReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ InventoryData Variable
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+
+ { CreatorID LLUUID } // permissions
+ { OwnerID LLUUID } // permissions
+ { GroupID LLUUID } // permissions
+ { BaseMask U32 } // permissions
+ { OwnerMask U32 } // permissions
+ { GroupMask U32 } // permissions
+ { EveryoneMask U32 } // permissions
+ { NextOwnerMask U32 } // permissions
+ { GroupOwned BOOL } // permissions
+
+ { AssetID LLUUID }
+ { Type S8 }
+ { InvType S8 }
+ { Flags U32 }
+ { SaleType U8 }
+ { SalePrice S32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { CreationDate S32 }
+ { CRC U32 }
+ }
+}
+
+// Can only fit around 7 items per packet - that's the way it goes. At
+// least many bulk updates can be packed.
+{
+ BulkUpdateInventory Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { TransactionID LLUUID }
+ }
+ {
+ FolderData Variable
+ { FolderID LLUUID }
+ { ParentID LLUUID }
+ { Type S8 }
+ { Name Variable 1 }
+ }
+ {
+ ItemData Variable
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+ { CreatorID LLUUID } // permissions
+ { OwnerID LLUUID } // permissions
+ { GroupID LLUUID } // permissions
+ { BaseMask U32 } // permissions
+ { OwnerMask U32 } // permissions
+ { GroupMask U32 } // permissions
+ { EveryoneMask U32 } // permissions
+ { NextOwnerMask U32 } // permissions
+ { GroupOwned BOOL } // permissions
+ { AssetID LLUUID }
+ { Type S8 }
+ { InvType S8 }
+ { Flags U32 }
+ { SaleType U8 }
+ { SalePrice S32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { CreationDate S32 }
+ { CRC U32 }
+ }
+}
+
+
+
+// request permissions for agent id to get the asset for owner_id's
+// item_id.
+{
+ RequestInventoryAsset Low Trusted Unencoded
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { AgentID LLUUID }
+ { OwnerID LLUUID }
+ { ItemID LLUUID }
+ }
+}
+
+// response to RequestInventoryAsset
+// lluuid will be null if agentid in the request above cannot read asset
+{
+ InventoryAssetResponse Low Trusted Unencoded
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ { AssetID LLUUID }
+ { IsReadable BOOL }
+ }
+}
+
+// This is the new improved way to remove inventory items. It is
+// currently only supported in viewer->userserver->dataserver
+// messages typically initiated by an empty trash method.
+{
+ RemoveInventoryObjects Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ FolderData Variable
+ { FolderID LLUUID }
+ }
+ {
+ ItemData Variable
+ { ItemID LLUUID }
+ }
+}
+
+// This is how you remove inventory when you're not even sure what it
+// is - only it's parenting.
+{
+ PurgeInventoryDescendents Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ InventoryData Single
+ { FolderID LLUUID }
+ }
+}
+
+// These messages are viewer->simulator requests to update a task's
+// inventory.
+// if Key == 0, itemid is the key. if Key == 1, assetid is the key.
+{
+ UpdateTaskInventory Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ UpdateData Single
+ { LocalID U32 }
+ { Key U8 }
+ }
+ {
+ InventoryData Single
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+ { CreatorID LLUUID } // permissions
+ { OwnerID LLUUID } // permissions
+ { GroupID LLUUID } // permissions
+ { BaseMask U32 } // permissions
+ { OwnerMask U32 } // permissions
+ { GroupMask U32 } // permissions
+ { EveryoneMask U32 } // permissions
+ { NextOwnerMask U32 } // permissions
+ { GroupOwned BOOL } // permissions
+ { AssetID LLUUID }
+ { Type S8 }
+ { InvType S8 }
+ { Flags U32 }
+ { SaleType U8 }
+ { SalePrice S32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { CreationDate S32 }
+ { CRC U32 }
+ }
+}
+
+{
+ RemoveTaskInventory Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ InventoryData Single
+ { LocalID U32 }
+ { ItemID LLUUID }
+ }
+}
+
+{
+ MoveTaskInventory Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { FolderID LLUUID }
+ }
+ {
+ InventoryData Single
+ { LocalID U32 }
+ { ItemID LLUUID }
+ }
+}
+
+{
+ RequestTaskInventory Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ InventoryData Single
+ { LocalID U32 }
+ }
+}
+
+{
+ ReplyTaskInventory Low Trusted Zerocoded
+ {
+ InventoryData Single
+ { TaskID LLUUID }
+ { Serial S16 } // S16
+ { Filename Variable 1 }
+ }
+}
+
+// These messages are viewer->simulator requests regarding objects
+// which are currently being simulated. The viewer will get an
+// UpdateInventoryItem response if a DeRez succeeds, and the object
+// will appear if a RezObject succeeds.
+// The Destination field tells where the derez should wind up, and the
+// meaning of DestinationID depends on it. For example, if the
+// destination is a category, then the destination is the category id. If
+// the destination is a task inventory, then the destination id is the
+// task id.
+// The transaction id is generated by the viewer on derez, and then
+// the packets are counted and numbered. The rest of the information is
+// just duplicated (it's not that much, and derezzes that span multiple
+// packets will be rare.)
+{
+ DeRezObject Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ AgentBlock Single
+ { GroupID LLUUID }
+ { Destination U8 }
+ { DestinationID LLUUID } // see above
+ { TransactionID LLUUID }
+ { PacketCount U8 }
+ { PacketNumber U8 }
+ }
+ {
+ ObjectData Variable
+ { ObjectLocalID U32 } // object id in world
+ }
+}
+
+// This message is sent when a derez succeeds, but there's no way to
+// know, since no inventory is created on the viewer. For example, when
+// saving into task inventory.
+{
+ DeRezAck Low Trusted Unencoded
+}
+
+// This message is sent from viewer -> simulator when the viewer wants
+// to rez an object out of inventory.
+{
+ RezObject Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ RezData Single
+ { FromTaskID LLUUID }
+ { BypassRaycast U8 }
+ { RayStart LLVector3 }
+ { RayEnd LLVector3 }
+ { RayTargetID LLUUID }
+ { RayEndIsIntersection BOOL }
+ { RezSelected BOOL }
+ { RemoveItem BOOL }
+ { ItemFlags U32 }
+ { GroupMask U32 }
+ { EveryoneMask U32 }
+ { NextOwnerMask U32 }
+ }
+ {
+ InventoryData Single
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+ { CreatorID LLUUID } // permissions
+ { OwnerID LLUUID } // permissions
+ { GroupID LLUUID } // permissions
+ { BaseMask U32 } // permissions
+ { OwnerMask U32 } // permissions
+ { GroupMask U32 } // permissions
+ { EveryoneMask U32 } // permissions
+ { NextOwnerMask U32 } // permissions
+ { GroupOwned BOOL } // permissions
+ { AssetID LLUUID }
+ { Type S8 }
+ { InvType S8 }
+ { Flags U32 }
+ { SaleType U8 }
+ { SalePrice S32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { CreationDate S32 }
+ { CRC U32 }
+ }
+}
+
+// if declined, the destid agent from the GiveInventory message
+// responds with this message to the userserver
+{
+ DeclineInventory Low NotTrusted Unencoded
+ {
+ InfoBlock Single
+ { TransactionID LLUUID }
+ }
+}
+
+// userserver -> dataserver
+// sent during agent to agent inventory transfers
+{
+ TransferInventory Low Trusted Zerocoded
+ {
+ InfoBlock Single
+ { SourceID LLUUID }
+ { DestID LLUUID }
+ { TransactionID LLUUID }
+ }
+ {
+ InventoryBlock Variable
+ { InventoryID LLUUID }
+ { Type S8 }
+ }
+}
+
+// dataserver -> userserver
+// InventoryID is the id of the inventory object that the end user
+// should discard if they deny the transfer.
+{
+ TransferInventoryAck Low Trusted Zerocoded
+ {
+ InfoBlock Single
+ { TransactionID LLUUID }
+ { InventoryID LLUUID }
+ }
+}
+
+// Relationships - the start will be a request from sourceid to dest
+// id when they are located near each other.
+{
+ RequestFriendship Low NotTrusted Unencoded
+ {
+ AgentBlock Single
+ { SourceID LLUUID }
+ { FolderID LLUUID } // source ID's calling card folder
+ { DestID LLUUID }
+ { TransactionID LLUUID }
+ }
+}
+
+{
+ AcceptFriendship Low NotTrusted Unencoded
+ {
+ TransactionBlock Single
+ { TransactionID LLUUID }
+ }
+ {
+ FolderData Variable
+ { FolderID LLUUID } // place to put calling card.
+ }
+}
+
+{
+ DeclineFriendship Low NotTrusted Unencoded
+ {
+ TransactionBlock Single
+ { TransactionID LLUUID }
+ }
+}
+
+
+//{
+// AddCallingCard Low NotTrusted Unencoded
+// {
+// CardBlock Variable
+// { SourceUUID LLUUID }
+// { DestUUID LLUUID }
+// { Name Variable 1 }
+// }
+//}
+
+{
+ FormFriendship Low Trusted Unencoded
+ {
+ AgentBlock Single
+ { SourceID LLUUID }
+ { DestID LLUUID }
+ }
+}
+
+// Cancels user relationship
+// Updates inventory for both users.
+// Stops agent tracking in userserver.
+// viewer -> userserver -> dataserver
+// reliable
+{
+ TerminateFriendship Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ExBlock Single
+ { OtherID LLUUID }
+ }
+}
+
+// used to give someone a calling card.
+{
+ OfferCallingCard Low NotTrusted Unencoded
+ {
+ AgentBlock Single
+ { SourceID LLUUID }
+ { DestID LLUUID }
+ { TransactionID LLUUID }
+ }
+}
+
+{
+ AcceptCallingCard Low NotTrusted Unencoded
+ {
+ TransactionBlock Single
+ { TransactionID LLUUID }
+ }
+ {
+ FolderData Variable
+ { FolderID LLUUID } // place to put calling card.
+ }
+}
+
+{
+ DeclineCallingCard Low NotTrusted Unencoded
+ {
+ TransactionBlock Single
+ { TransactionID LLUUID }
+ }
+}
+
+
+// Rez a script onto an object
+{
+ RezScript Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ UpdateBlock Single
+ { ObjectLocalID U32 } // object id in world
+ { Enabled BOOL } // is script rezzed in enabled?
+ }
+ {
+ InventoryBlock Single
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+ { CreatorID LLUUID } // permissions
+ { OwnerID LLUUID } // permissions
+ { GroupID LLUUID } // permissions
+ { BaseMask U32 } // permissions
+ { OwnerMask U32 } // permissions
+ { GroupMask U32 } // permissions
+ { EveryoneMask U32 } // permissions
+ { NextOwnerMask U32 } // permissions
+ { GroupOwned BOOL } // permissions
+ { AssetID LLUUID }
+ { Type S8 }
+ { InvType S8 }
+ { Flags U32 }
+ { SaleType U8 }
+ { SalePrice S32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { CreationDate S32 }
+ { CRC U32 }
+ }
+}
+
+// Create inventory
+{
+ CreateInventoryItem Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ InventoryBlock Single
+ { FolderID LLUUID }
+ { NextOwnerMask U32 }
+ { Type S8 }
+ { InvType S8 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ }
+}
+
+// give agent a landmark for an event.
+{
+ CreateLandmarkForEvent Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ EventData Single
+ { EventID U32 }
+ }
+ {
+ InventoryBlock Single
+ { FolderID LLUUID }
+ { Name Variable 1 }
+ }
+}
+
+{
+ EventLocationRequest Low Trusted Zerocoded
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ }
+ {
+ EventData Single
+ { EventID U32 }
+ }
+}
+
+{
+ EventLocationReply Low Trusted Zerocoded
+ {
+ QueryData Single
+ { QueryID LLUUID }
+ }
+ {
+ EventData Single
+ { Success BOOL }
+ { RegionID LLUUID }
+ { RegionPos LLVector3 }
+ }
+}
+
+// get information about landmarks. Used by viewers for determining
+// the location of a landmark, and by simulators for teleport
+{
+ RegionHandleRequest Low NotTrusted Unencoded
+ {
+ RequestBlock Single
+ { RegionID LLUUID }
+ }
+}
+
+//{
+// RegionIDRequest Low NotTrusted Unencoded
+// {
+// RequestBlock Single
+// { RegionHandle U64 }
+// }
+//}
+
+{
+ RegionIDAndHandleReply Low Trusted Unencoded
+ {
+ ReplyBlock Single
+ { RegionID LLUUID }
+ { RegionHandle U64 }
+ }
+}
+
+// Move money from one agent to another. Validation will happen at the
+// simulator, the dataserver will actually do the work. Dataserver
+// generates a MoneyBalance message in reply. The simulator
+// will generate a MoneyTransferBackend in response to this.
+// viewer -> simulator -> dataserver
+{
+ MoneyTransferRequest Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ MoneyData Single
+ { SourceID LLUUID }
+ { DestID LLUUID } // destination of the transfer
+ { Flags U8 }
+ { Amount S32 }
+ { AggregatePermNextOwner U8 }
+ { AggregatePermInventory U8 }
+ { TransactionType S32 } // see lltransactiontypes.h
+ { Description Variable 1 } // string, name of item for purchases
+ }
+}
+
+// And, the money transfer
+{
+ MoneyTransferBackend Low Trusted Zerocoded
+ {
+ MoneyData Single
+ { TransactionID LLUUID }
+ { TransactionTime U32 } // utc seconds since epoch
+ { SourceID LLUUID }
+ { DestID LLUUID } // destination of the transfer
+ { Flags U8 }
+ { Amount S32 }
+ { AggregatePermNextOwner U8 }
+ { AggregatePermInventory U8 }
+ { TransactionType S32 } // see lltransactiontypes.h
+ { Description Variable 1 } // string, name of item for purchases
+ }
+}
+
+// This message is used to coalesce money transfers on a per-agent
+// basis. It should only be involved in sim->dataserver money communication.
+{
+ BulkMoneyTransfer Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { RegionX U32 }
+ { RegionY U32 }
+ }
+ {
+ MoneyData Variable
+ { TransactionID LLUUID }
+ { DestID LLUUID } // destination of the transfer
+ { Flags U8 }
+ { Amount S32 }
+ { TransactionType S32 } // see lltransactiontypes.h
+ { Description Variable 1 } // string, name of purchased item
+ }
+}
+
+
+// This message is sent sim -> viewer when the simulator is queueing
+// up transactions. This is because we do not have an authoritative
+// balance from the dataserver, but we want to 'guess' how much
+// money the agent has on the viewer.
+{
+ AdjustBalance Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Delta S32 }
+ }
+}
+
+// viewer -> userserver -> dataserver
+// Reliable
+{
+ MoneyBalanceRequest Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ MoneyData Single
+ { TransactionID LLUUID }
+ }
+}
+
+
+// dataserver -> simulator -> viewer
+{
+ MoneyBalanceReply Low Trusted Zerocoded
+ {
+ MoneyData Single
+ { AgentID LLUUID }
+ { TransactionID LLUUID }
+ { TransactionSuccess BOOL } // BOOL
+ { MoneyBalance S32 }
+ { SquareMetersCredit S32 }
+ { SquareMetersCommitted S32 }
+ { Description Variable 1 } // string
+ }
+}
+
+
+// RoutedMoneyBalanceReply
+// This message is used when a dataserver needs to send updated
+// money balance information to a simulator other than the one it
+// is connected to. It uses the standard TransferBlock format.
+// dataserver -> simulator -> spaceserver -> simulator -> viewer
+// reliable
+{
+ RoutedMoneyBalanceReply Low Trusted Zerocoded
+ {
+ TargetBlock Single
+ { TargetIP IPADDR } // U32 encoded IP
+ { TargetPort IPPORT }
+ }
+ {
+ MoneyData Single
+ { AgentID LLUUID }
+ { TransactionID LLUUID }
+ { TransactionSuccess BOOL } // BOOL
+ { MoneyBalance S32 }
+ { SquareMetersCredit S32 }
+ { SquareMetersCommitted S32 }
+ { Description Variable 1 } // string
+ }
+}
+
+
+// This will give you a partial money history on the requested agentid.
+// Reliable
+{
+ MoneyHistoryRequest Low NotTrusted Unencoded
+ {
+ MoneyData Single
+ { AgentID LLUUID }
+ { StartPeriod S32 }
+ { EndPeriod S32 }
+ }
+}
+
+// Reliable
+{
+ MoneyHistoryReply Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ MoneyData Single
+ { StartPeriod S32 }
+ { EndPeriod S32 }
+ { Balance S32 }
+ { StartDate Variable 1 } // string
+ { TaxEstimate S32 }
+ { StipendEstimate S32 }
+ { BonusEstimate S32 }
+ }
+ {
+ HistoryData Variable
+ { Description Variable 1 } // string
+ { Amount S32 }
+ }
+}
+
+
+// CurrentInterval = 0 => this period (week, day, etc.)
+// CurrentInterval = 1 => last period
+// viewer -> userserver -> dataserver
+// reliable
+{
+ MoneySummaryRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ MoneyData Single
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ }
+}
+
+
+// dataserver -> userserver -> viewer
+// Reliable
+{
+ MoneySummaryReply Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ MoneyData Single
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ { StartDate Variable 1 } // string
+ { Balance S32 }
+ { TotalCredits S32 }
+ { TotalDebits S32 }
+ { ObjectTaxCurrent S32 }
+ { LightTaxCurrent S32 }
+ { LandTaxCurrent S32 }
+ { GroupTaxCurrent S32 }
+ { ParcelDirFeeCurrent S32 }
+ { ObjectTaxEstimate S32 }
+ { LightTaxEstimate S32 }
+ { LandTaxEstimate S32 }
+ { GroupTaxEstimate S32 }
+ { ParcelDirFeeEstimate S32 }
+ { StipendEstimate S32 }
+ { BonusEstimate S32 }
+ { LastTaxDate Variable 1 } // string
+ { TaxDate Variable 1 } // string
+ }
+}
+
+
+// Reliable
+{
+ MoneyDetailsRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ MoneyData Single
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ }
+}
+
+// Reliable
+{
+ MoneyDetailsReply Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ MoneyData Single
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ { StartDate Variable 1 } // string
+ }
+ {
+ HistoryData Variable
+ { Description Variable 1 } // string
+ { Amount S32 }
+ }
+}
+
+
+// Reliable
+{
+ MoneyTransactionsRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ MoneyData Single
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ }
+}
+
+// Reliable
+{
+ MoneyTransactionsReply Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ MoneyData Single
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ { StartDate Variable 1 } // string
+ }
+ {
+ HistoryData Variable
+ { Time Variable 1 } // string
+ { User Variable 1 } // string
+ { Type S32 }
+ { Item Variable 1 } // string
+ { Amount S32 }
+ }
+}
+
+//---------------------------------------------------------------------------
+// Gesture saves/loads
+//---------------------------------------------------------------------------
+
+// viewer -> userserver -> dataserver
+// dataserver -> userserver -> viewer
+{
+ GestureUpdate Medium NotTrusted Unencoded
+ {
+ AgentBlock Single
+ { AgentID LLUUID }
+ { Filename Variable 1 } // String
+ { ToViewer BOOL } // BOOL, direction this is going
+ }
+}
+
+// viewer -> userserver -> dataserver
+{
+ GestureRequest Low NotTrusted Unencoded
+ {
+ AgentBlock Single
+ { AgentID LLUUID }
+ { Reset BOOL } // 0=no reset, 1=male, 2=female
+ }
+}
+
+// Tell the database that some gestures are now active
+// viewer -> sim -> data
+{
+ ActivateGestures Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Flags U32 }
+ }
+ {
+ Data Variable
+ { ItemID LLUUID }
+ { AssetID LLUUID }
+ { GestureFlags U32 }
+ }
+}
+
+// Tell the database some gestures are no longer active
+// viewer -> sim -> data
+{
+ DeactivateGestures Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Flags U32 }
+ }
+ {
+ Data Variable
+ { ItemID LLUUID }
+ { GestureFlags U32 }
+ }
+}
+
+//---------------------------------------------------------------------------
+//
+//---------------------------------------------------------------------------
+
+// userserver -> viewer, up-to-date inventory is here
+// could be sent as a result of spam
+// as well as in response to InventoryRequest
+{
+ InventoryUpdate Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ InventoryData Single
+ { IsComplete U8 }
+ { Filename Variable 1 }
+ }
+}
+
+// possible alternate to InventoryUpdate - tells viewer to load cached inventory
+//{
+// UseCachedInventory Low Trusted Unencoded
+// {
+// InventoryData Single
+// { AgentID LLUUID }
+// }
+//}
+
+// dataserver-> userserver -> viewer to move around the mute list
+{
+ MuteListUpdate Low Trusted Unencoded
+ {
+ MuteData Single
+ { AgentID LLUUID }
+ { Filename Variable 1 }
+ }
+}
+
+// tell viewer to use the local mute cache
+{
+ UseCachedMuteList Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+}
+
+
+// UserLoginLocationReply
+// userserver -> viewer
+{
+ UserLoginLocationReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { SessionID LLUUID }
+ { Message Variable 1 }
+ }
+ {
+ RegionInfo Single
+ { LocationValid BOOL }
+ { GridsPerEdge U32 }
+ { MetersPerGrid F32 }
+ { Handle U64 }
+ { UsecSinceStart U64 }
+ { SecPerDay U32 }
+ { SecPerYear U32 }
+ { SunDirection LLVector3 }
+ { SunAngVelocity LLVector3 }
+ }
+ {
+ SimulatorBlock Single
+ { IP IPADDR }
+ { Port IPPORT }
+ }
+ {
+ URLBlock Single
+ { LocationID U32 }
+ { LocationLookAt LLVector3 }
+ }
+}
+
+// UserSimLocationReply
+// userserver -> viewer
+{
+ UserSimLocationReply Low Trusted Unencoded
+ {
+ SimulatorBlock Single
+ { AccessOK U8 }
+ { SimName Variable 1 }
+ { SimHandle U64 }
+ }
+}
+
+// UserListReply
+// Return a list of users on the system
+{
+ UserListReply Low Trusted Unencoded
+ {
+ UserBlock Variable
+ { FirstName Variable 1 }
+ { LastName Variable 1 }
+ { Status U8 }
+ }
+}
+
+// notification for login and logout.
+// source_sim -> dest_viewer
+{
+ OnlineNotification Low Trusted Unencoded
+ {
+ AgentBlock Variable
+ { AgentID LLUUID }
+ }
+}
+{
+ OfflineNotification Low Trusted Unencoded
+ {
+ AgentBlock Variable
+ { AgentID LLUUID }
+ }
+}
+
+
+// SetStartLocationRequest
+// viewer -> sim
+// failure checked at sim and triggers ImprovedInstantMessage
+// success triggers SetStartLocation
+{
+ SetStartLocationRequest Low NotTrusted Zerocoded
+ {
+ StartLocationData Single
+ { AgentID LLUUID }
+ { SimName Variable 1 } // string
+ { LocationID U32 }
+ { LocationPos LLVector3 } // region coords
+ { LocationLookAt LLVector3 }
+ }
+}
+
+// SetStartLocation
+// sim -> dataserver
+{
+ SetStartLocation Low Trusted Zerocoded
+ {
+ StartLocationData Single
+ { AgentID LLUUID }
+ { RegionID LLUUID }
+ { LocationID U32 }
+ { RegionHandle U64 }
+ { LocationPos LLVector3 } // region coords
+ { LocationLookAt LLVector3 }
+ }
+}
+
+
+
+// UserLoginLocationRequest
+// userserver -> spaceserver
+{
+ UserLoginLocationRequest Low Trusted Zerocoded
+ {
+ UserBlock Single
+ { SessionID LLUUID }
+ { TravelAccess U8 }
+ { FirstLogin BOOL }
+ { LimitedToEstate U32 }
+ }
+ {
+ PositionBlock Single
+ { ViewerRegion U64 }
+ { ViewerPosition LLVector3 }
+ }
+ {
+ URLBlock Single
+ { SimName Variable 1 }
+ { Pos LLVector3 }
+ }
+}
+
+// SpaceLoginLocationReply
+// spaceserver -> userserver
+// not reliable
+{
+ SpaceLoginLocationReply Low Trusted Zerocoded
+ {
+ UserBlock Single
+ { SessionID LLUUID }
+ { LocationID U32 }
+ { LocationPos LLVector3 }
+ { LocationLookAt LLVector3 }
+ }
+ {
+ SimulatorBlock Single
+ { IP IPADDR }
+ { Port IPPORT }
+ { CircuitCode U32 }
+ { Name Variable 1 }
+ { SimAccess U8 }
+ }
+ {
+ RegionInfo Single
+ { GridsPerEdge U32 }
+ { MetersPerGrid F32 }
+ { Handle U64 }
+ { UsecSinceStart U64 }
+ { SecPerDay U32 }
+ { SecPerYear U32 }
+ { SunDirection LLVector3 }
+ { SunAngVelocity LLVector3 }
+ }
+}
+
+
+// ***************************************************************************
+// Launcher messages
+// ***************************************************************************
+
+
+// NetTest - This goes back and forth to the space server because of
+// problems determining the port
+{
+ NetTest Low NotTrusted Unencoded
+ {
+ NetBlock Single
+ { Port IPPORT }
+ }
+}
+
+// SetChildCount - Sent to launcher to adjust nominal child count
+// Simulator sends this increase the sim/cpu ratio on startup
+{
+ SetCPURatio Low NotTrusted Unencoded
+ {
+ Data Single
+ { Ratio U8 }
+ }
+}
+
+
+
+// SimCrashed - Sent to dataserver when the sim goes down.
+// Maybe we should notify the spaceserver as well?
+{
+ SimCrashed Low NotTrusted Unencoded
+ {
+ Data Single
+ { RegionX U32 }
+ { RegionY U32 }
+ }
+ {
+ Users Variable
+ { AgentID LLUUID }
+ }
+}
+
+// ***************************************************************************
+// Simulator to QuerySim
+// ***************************************************************************
+
+// SimulatorPauseState - what parts of the sim are paused
+
+{
+ SimulatorPauseState Low NotTrusted Unencoded
+ {
+ PauseBlock Single
+ { SimPaused U32 }
+ { LayersPaused U32 }
+ { TasksPaused U32 }
+ }
+}
+
+// SimulatorThrottleSettings - what are the current throttle settings?
+
+{
+ SimulatorThrottleSettings Low NotTrusted Unencoded
+ {
+ Sender Single
+ { ID LLUUID }
+ }
+ {
+ Throttle Single
+ { Throttles Variable 1 }
+ }
+}
+
+// ***************************************************************************
+// Name Value Pair messages
+// ***************************************************************************
+
+// NameValuePair - if the specific task exists on simulator, add or replace this name value pair
+{
+ NameValuePair Low Trusted Unencoded
+ {
+ TaskData Single
+ { ID LLUUID }
+ }
+ {
+ NameValueData Variable
+ { NVPair Variable 2 }
+ }
+}
+
+// NameValuePair - if the specific task exists on simulator or dataserver, remove the name value pair (value is ignored)
+{
+ RemoveNameValuePair Low Trusted Unencoded
+ {
+ TaskData Single
+ { ID LLUUID }
+ }
+ {
+ NameValueData Variable
+ { NVPair Variable 2 }
+ }
+}
+
+
+// GetNameValuePair - if the specific task exists on simulator, get the value of this NameVale pair (if it exists)
+// FIXME: No transmit. 12 Sep 2002 mark
+{
+ GetNameValuePair Low NotTrusted Unencoded
+ {
+ TaskData Single
+ { ID LLUUID }
+ }
+ {
+ NameValueName Variable
+ { Name Variable 2 }
+ }
+}
+
+// ***************************************************************************
+// Add/Remove Attachment messages
+// ***************************************************************************
+
+
+// Simulator informs Dataserver of new attachment or attachment asset update
+{
+ UpdateAttachment Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ AttachmentBlock Single
+ { AttachmentPoint U8 }
+ }
+ {
+ OperationData Single
+ { AddItem BOOL }
+ { UseExistingAsset BOOL }
+ }
+ {
+ InventoryData Single // Standard inventory item block
+ { ItemID LLUUID }
+ { FolderID LLUUID }
+
+ { CreatorID LLUUID } // permissions
+ { OwnerID LLUUID } // permissions
+ { GroupID LLUUID } // permissions
+ { BaseMask U32 } // permissions
+ { OwnerMask U32 } // permissions
+ { GroupMask U32 } // permissions
+ { EveryoneMask U32 } // permissions
+ { NextOwnerMask U32 } // permissions
+ { GroupOwned BOOL } // permissions
+
+ { AssetID LLUUID }
+ { Type S8 }
+ { InvType S8 }
+ { Flags U32 }
+ { SaleType U8 }
+ { SalePrice S32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { CreationDate S32 }
+ { CRC U32 }
+ }
+}
+
+// Simulator informs Dataserver that attachment has been taken off
+{
+ RemoveAttachment Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ AttachmentBlock Single
+ { AttachmentPoint U8 }
+ { ItemID LLUUID }
+ }
+}
+
+
+// ***************************************************************************
+// GUIDed Sound messages
+// ***************************************************************************
+
+// SoundTrigger - Sent by simulator to viewer to trigger sound outside current region
+{
+ SoundTrigger High NotTrusted Unencoded
+ {
+ SoundData Single
+ { SoundID LLUUID }
+ { OwnerID LLUUID }
+ { ObjectID LLUUID }
+ { ParentID LLUUID } // null if this object is the parent
+ { Handle U64 } // region handle
+ { Position LLVector3 } // region local
+ { Gain F32 }
+ }
+}
+
+// AttachedSound - Sent by simulator to viewer to play sound attached with an object
+{
+ AttachedSound Medium Trusted Unencoded
+ {
+ DataBlock Single
+ { SoundID LLUUID }
+ { ObjectID LLUUID }
+ { OwnerID LLUUID }
+ { Gain F32 }
+ { Flags U8 }
+ }
+}
+
+// AttachedSoundGainChange - Sent by simulator to viewer to change an attached sounds' volume
+
+{
+ AttachedSoundGainChange Medium Trusted Unencoded
+ {
+ DataBlock Single
+ { ObjectID LLUUID }
+ { Gain F32 }
+ }
+}
+
+// AttachedSoundCutoffRadius - Sent by simulator to viewer to change an attached sounds' cutoff radius
+
+{
+ AttachedSoundCutoffRadius Medium Trusted Unencoded
+ {
+ DataBlock Single
+ { ObjectID LLUUID }
+ { Radius F32 }
+ }
+}
+
+// PreloadSound - Sent by simulator to viewer to preload sound for an object
+
+{
+ PreloadSound Medium Trusted Unencoded
+ {
+ DataBlock Variable
+ { ObjectID LLUUID }
+ { OwnerID LLUUID }
+ { SoundID LLUUID }
+ }
+}
+
+
+// *************************************************************************
+// Asset storage messages
+// *************************************************************************
+
+// current assumes an existing UUID, need to enhance for new assets
+{
+ AssetUploadRequest Low NotTrusted Unencoded
+ {
+ AssetBlock Single
+ { UUID LLUUID }
+ { Type S8 }
+ { Tempfile BOOL }
+ { StoreLocal BOOL }
+ { AssetData Variable 2 } // Optional: the actual asset data if the whole thing will fit it this packet
+ }
+}
+
+{
+ AssetUploadComplete Low NotTrusted Unencoded
+ {
+ AssetBlock Single
+ { UUID LLUUID }
+ { Type S8 }
+ { Success BOOL }
+ }
+}
+
+//
+// Reputation
+//
+{
+ ReputationAgentAssign Low NotTrusted Unencoded
+ {
+ DataBlock Single
+ { RatorID LLUUID }
+ { RateeID LLUUID }
+ { Behavior F32 } // float, usually -1 or +1
+ { Appearance F32 } // float, usually -1 or +1
+ { Building F32 } // float, usually -1 or +1
+ }
+}
+
+// ReputationIndividualRequest
+// Gets From's rating of To.
+// reliable
+{
+ ReputationIndividualRequest Low NotTrusted Unencoded
+ {
+ ReputationData Single
+ { FromID LLUUID }
+ { ToID LLUUID }
+ }
+}
+
+// ReputationIndividualReply
+// reliable
+{
+ ReputationIndividualReply Low Trusted Unencoded
+ {
+ ReputationData Single
+ { FromID LLUUID }
+ { ToID LLUUID }
+ { Behavior F32 } // float, usually -1 or +1
+ { Appearance F32 } // float, usually -1 or +1
+ { Building F32 } // float, usually -1 or +1
+ }
+}
+
+
+// Script on simulator asks dataserver if there are any email messages
+// waiting.
+{
+ EmailMessageRequest Low Trusted Unencoded
+ {
+ DataBlock Single
+ { ObjectID LLUUID }
+ { FromAddress Variable 1 }
+ { Subject Variable 1 }
+ }
+}
+
+// Dataserver gives simulator the oldest email message in the queue, along with
+// how many messages are left in the queue. And passes back the filter used to request emails.
+{
+ EmailMessageReply Low Trusted Unencoded
+ {
+ DataBlock Single
+ { ObjectID LLUUID }
+ { More U32 } //U32
+ { Time U32 } //U32
+ { FromAddress Variable 1 }
+ { Subject Variable 1 }
+ { Data Variable 2 }
+ { MailFilter Variable 1 }
+ }
+}
+
+// Script on simulator sends mail to another script
+{
+ InternalScriptMail Medium Trusted Unencoded
+ {
+ DataBlock Single
+ { From Variable 1 }
+ { To LLUUID }
+ { Subject Variable 1 }
+ { Body Variable 2 }
+ }
+}
+
+// Script on simulator asks dataserver for information
+{
+ ScriptDataRequest Low Trusted Unencoded
+ {
+ DataBlock Variable
+ { Hash U64 }
+ { RequestType S8 }
+ { Request Variable 2 }
+ }
+}
+
+// Data server responds with data
+{
+ ScriptDataReply Low Trusted Unencoded
+ {
+ DataBlock Variable
+ { Hash U64 }
+ { Reply Variable 2 }
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+// Group messages
+//-----------------------------------------------------------------------------
+
+// CreateGroupRequest
+// viewer -> simulator
+// simulator -> dataserver
+// reliable
+{
+ CreateGroupRequest Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ GroupData Single
+ { Name Variable 1 } // string
+ { Charter Variable 2 } // string
+ { ShowInList BOOL }
+ { InsigniaID LLUUID }
+ { MembershipFee S32 } // S32
+ { OpenEnrollment BOOL } // BOOL (U8)
+ { AllowPublish BOOL } // whether profile is externally visible or not
+ { MaturePublish BOOL } // profile is "mature"
+ }
+}
+
+// CreateGroupReply
+// dataserver -> simulator
+// simulator -> viewer
+// reliable
+{
+ CreateGroupReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ ReplyData Single
+ { GroupID LLUUID }
+ { Success BOOL }
+ { Message Variable 1 } // string
+ }
+}
+
+// UpdateGroupInfo
+// viewer -> simulator
+// simulator -> dataserver
+// reliable
+{
+ UpdateGroupInfo Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ { Charter Variable 2 } // string
+ { ShowInList BOOL }
+ { InsigniaID LLUUID }
+ { MembershipFee S32 }
+ { OpenEnrollment BOOL }
+ { AllowPublish BOOL }
+ { MaturePublish BOOL }
+ }
+}
+
+// GroupRoleChanges
+// viewer -> simulator -> dataserver
+// reliable
+{
+ GroupRoleChanges Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ RoleChange Variable
+ { RoleID LLUUID }
+ { MemberID LLUUID }
+ { Change U32 }
+ }
+}
+
+// JoinGroupRequest
+// viewer -> simulator -> dataserver
+// reliable
+{
+ JoinGroupRequest Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ }
+}
+
+// JoinGroupReply
+// dataserver -> simulator -> viewer
+{
+ JoinGroupReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ { Success BOOL }
+ }
+}
+
+
+// EjectGroupMemberRequest
+// viewer -> simulator -> dataserver
+// reliable
+{
+ EjectGroupMemberRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ }
+ {
+ EjectData Variable
+ { EjecteeID LLUUID }
+ }
+}
+
+// EjectGroupMemberReply
+// dataserver -> simulator -> viewer
+// reliable
+{
+ EjectGroupMemberReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ }
+ {
+ EjectData Single
+ { Success BOOL }
+ }
+}
+
+// LeaveGroupRequest
+// viewer -> simulator -> dataserver
+// reliable
+{
+ LeaveGroupRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ }
+}
+
+// LeaveGroupReply
+// dataserver -> simulator -> viewer
+{
+ LeaveGroupReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ { Success BOOL }
+ }
+}
+
+// InviteGroupRequest
+// viewer -> simulator -> dataserver
+// reliable
+{
+ InviteGroupRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID } // UUID of inviting agent
+ { SessionID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ }
+ {
+ InviteData Variable
+ { InviteeID LLUUID }
+ { RoleID LLUUID }
+ }
+}
+
+// InviteGroupResponse
+// simulator -> dataserver
+// reliable
+{
+ InviteGroupResponse Low Trusted Unencoded
+ {
+ InviteData Single
+ { AgentID LLUUID }
+ { InviteeID LLUUID }
+ { GroupID LLUUID }
+ { RoleID LLUUID }
+ { MembershipFee S32 }
+ }
+}
+
+// GroupProfileRequest
+// viewer-> simulator -> dataserver
+// reliable
+{
+ GroupProfileRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ }
+}
+
+// GroupProfileReply
+// dataserver -> simulator -> viewer
+// reliable
+{
+ GroupProfileReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ { Name Variable 1 } // string
+ { Charter Variable 2 } // string
+ { ShowInList BOOL }
+ { MemberTitle Variable 1 } // string
+ { PowersMask U64 } // U32 mask
+ { InsigniaID LLUUID }
+ { FounderID LLUUID }
+ { MembershipFee S32 }
+ { OpenEnrollment BOOL } // BOOL (U8)
+ { Money S32 }
+ { GroupMembershipCount S32 }
+ { GroupRolesCount S32 }
+ { AllowPublish BOOL }
+ { MaturePublish BOOL }
+ { OwnerRole LLUUID }
+ }
+}
+
+// CurrentInterval = 0 => this period (week, day, etc.)
+// CurrentInterval = 1 => last period
+// viewer -> simulator -> dataserver
+// reliable
+{
+ GroupAccountSummaryRequest Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ MoneyData Single
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ }
+}
+
+
+// dataserver -> simulator -> viewer
+// Reliable
+{
+ GroupAccountSummaryReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ MoneyData Single
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ { StartDate Variable 1 } // string
+ { Balance S32 }
+ { TotalCredits S32 }
+ { TotalDebits S32 }
+ { ObjectTaxCurrent S32 }
+ { LightTaxCurrent S32 }
+ { LandTaxCurrent S32 }
+ { GroupTaxCurrent S32 }
+ { ParcelDirFeeCurrent S32 }
+ { ObjectTaxEstimate S32 }
+ { LightTaxEstimate S32 }
+ { LandTaxEstimate S32 }
+ { GroupTaxEstimate S32 }
+ { ParcelDirFeeEstimate S32 }
+ { NonExemptMembers S32 }
+ { LastTaxDate Variable 1 } // string
+ { TaxDate Variable 1 } // string
+ }
+}
+
+
+// Reliable
+{
+ GroupAccountDetailsRequest Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ MoneyData Single
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ }
+}
+
+// Reliable
+{
+ GroupAccountDetailsReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ MoneyData Single
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ { StartDate Variable 1 } // string
+ }
+ {
+ HistoryData Variable
+ { Description Variable 1 } // string
+ { Amount S32 }
+ }
+}
+
+
+// Reliable
+{
+ GroupAccountTransactionsRequest Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ MoneyData Single
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ }
+}
+
+// Reliable
+{
+ GroupAccountTransactionsReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ MoneyData Single
+ { RequestID LLUUID }
+ { IntervalDays S32 }
+ { CurrentInterval S32 }
+ { StartDate Variable 1 } // string
+ }
+ {
+ HistoryData Variable
+ { Time Variable 1 } // string
+ { User Variable 1 } // string
+ { Type S32 }
+ { Item Variable 1 } // string
+ { Amount S32 }
+ }
+}
+
+// GroupActiveProposalsRequest
+// viewer -> simulator -> dataserver
+//reliable
+{
+ GroupActiveProposalsRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ }
+ {
+ TransactionData Single
+ { TransactionID LLUUID }
+ }
+}
+
+// GroupActiveProposalItemReply
+// dataserver -> simulator -> viewer
+// reliable
+{
+ GroupActiveProposalItemReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ TransactionData Single
+ { TransactionID LLUUID }
+ { TotalNumItems U32 }
+ }
+ {
+ ProposalData Variable
+ { VoteID LLUUID }
+ { VoteInitiator LLUUID }
+ { TerseDateID Variable 1 } // string
+ { StartDateTime Variable 1 } // string
+ { EndDateTime Variable 1 } // string
+ { AlreadyVoted BOOL }
+ { VoteCast Variable 1 } // string
+ { Majority F32 }
+ { Quorum S32 }
+ { ProposalText Variable 1 } // string
+ }
+}
+
+// GroupVoteHistoryRequest
+// viewer -> simulator -> dataserver
+//reliable
+{
+ GroupVoteHistoryRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ }
+ {
+ TransactionData Single
+ { TransactionID LLUUID }
+ }
+}
+
+// GroupVoteHistoryItemReply
+// dataserver -> simulator -> viewer
+// reliable
+{
+ GroupVoteHistoryItemReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ TransactionData Single
+ { TransactionID LLUUID }
+ { TotalNumItems U32 }
+ }
+ {
+ HistoryItemData Single
+ { VoteID LLUUID }
+ { TerseDateID Variable 1 } // string
+ { StartDateTime Variable 1 } // string
+ { EndDateTime Variable 1 } // string
+ { VoteInitiator LLUUID }
+ { VoteType Variable 1 } // string
+ { VoteResult Variable 1 } // string
+ { Majority F32 }
+ { Quorum S32 }
+ { ProposalText Variable 2 } // string
+ }
+ {
+ VoteItem Variable
+ { CandidateID LLUUID }
+ { VoteCast Variable 1 } // string
+ { NumVotes S32 }
+ }
+}
+
+// StartGroupProposal
+// viewer -> simulator -> dataserver
+// reliable
+{
+ StartGroupProposal Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ProposalData Single
+ { GroupID LLUUID }
+ { Quorum S32 }
+ { Majority F32 } // F32
+ { Duration S32 } // S32, seconds
+ { ProposalText Variable 1 } // string
+ }
+}
+
+// GroupProposalBallot
+// viewer -> simulator -> dataserver
+// reliable
+{
+ GroupProposalBallot Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ProposalData Single
+ { ProposalID LLUUID }
+ { GroupID LLUUID }
+ { VoteCast Variable 1 } // string
+ }
+}
+
+// TallyVotes userserver -> dataserver
+// reliable
+{
+ TallyVotes Low Trusted Unencoded
+}
+
+
+
+// GroupMembersRequest
+// get the group members
+// simulator -> dataserver
+// reliable
+{
+ GroupMembersRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ { RequestID LLUUID }
+ }
+}
+
+// GroupMembersReply
+// list of uuids for the group members
+// dataserver -> simulator
+// reliable
+{
+ GroupMembersReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ { RequestID LLUUID }
+ { MemberCount S32 }
+ }
+ {
+ MemberData Variable
+ { AgentID LLUUID }
+ { Contribution S32 }
+ { OnlineStatus Variable 1 } // string
+ { AgentPowers U64 }
+ { Title Variable 1 } // string
+ { IsOwner BOOL }
+ }
+}
+
+// used to switch an agent's currently active group.
+// viewer -> simulator -> dataserver -> AgentDataUpdate...
+{
+ ActivateGroup Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GroupID LLUUID }
+ }
+}
+
+// viewer -> simulator -> dataserver
+{
+ SetGroupContribution Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { GroupID LLUUID }
+ { Contribution S32 }
+ }
+}
+
+// viewer -> simulator -> dataserver
+{
+ SetGroupAcceptNotices Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { GroupID LLUUID }
+ { AcceptNotices BOOL }
+ }
+}
+
+// GroupRoleDataRequest
+// viewer -> simulator -> dataserver
+{
+ GroupRoleDataRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ { RequestID LLUUID }
+ }
+}
+
+
+// GroupRoleDataReply
+// All role data for this group
+// dataserver -> simulator -> agent
+{
+ GroupRoleDataReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ { RequestID LLUUID }
+ { RoleCount S32 }
+ }
+ {
+ RoleData Variable
+ { RoleID LLUUID }
+ { Name Variable 1 }
+ { Title Variable 1 }
+ { Description Variable 1 }
+ { Powers U64 }
+ { Members U32 }
+ }
+}
+
+// GroupRoleMembersRequest
+// viewer -> simulator -> dataserver
+{
+ GroupRoleMembersRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ GroupData Single
+ { GroupID LLUUID }
+ { RequestID LLUUID }
+ }
+}
+
+// GroupRoleMembersReply
+// All role::member pairs for this group.
+// dataserver -> simulator -> agent
+{
+ GroupRoleMembersReply Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ { RequestID LLUUID }
+ { TotalPairs U32 }
+ }
+ {
+ MemberData Variable
+ { RoleID LLUUID }
+ { MemberID LLUUID }
+ }
+}
+
+// GroupTitlesRequest
+// viewer -> simulator -> dataserver
+{
+ GroupTitlesRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GroupID LLUUID }
+ { RequestID LLUUID }
+ }
+}
+
+
+// GroupTitlesReply
+// dataserver -> simulator -> viewer
+{
+ GroupTitlesReply Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ { RequestID LLUUID }
+ }
+ {
+ GroupData Variable
+ { Title Variable 1 } // string
+ { RoleID LLUUID }
+ { Selected BOOL }
+ }
+}
+
+// GroupTitleUpdate
+// viewer -> simulator -> dataserver
+{
+ GroupTitleUpdate Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GroupID LLUUID }
+ { TitleRoleID LLUUID }
+ }
+}
+
+// GroupRoleUpdate
+// viewer -> simulator -> dataserver
+{
+ GroupRoleUpdate Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { GroupID LLUUID }
+ }
+ {
+ RoleData Variable
+ { RoleID LLUUID }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ { Title Variable 1 }
+ { Powers U64 }
+ { UpdateType U8 }
+ }
+}
+
+
+
+// Request the members of the live help group needed for requesting agent.
+// userserver -> dataserver
+{
+ LiveHelpGroupRequest Low Trusted Unencoded
+ {
+ RequestData Single
+ { RequestID LLUUID }
+ { AgentID LLUUID }
+ }
+}
+
+// Send down the group
+// dataserver -> userserver
+{
+ LiveHelpGroupReply Low Trusted Unencoded
+ {
+ ReplyData Single
+ { RequestID LLUUID }
+ { GroupID LLUUID }
+ { Selection Variable 1 } // selection criteria all or active
+ }
+}
+
+//-----------------------------------------------------------------------------
+// Wearable messages
+//-----------------------------------------------------------------------------
+
+// AgentWearablesRequest
+// (a.k.a. "Tell me what the avatar is wearing.")
+// viewer -> userserver -> dataserver
+// reliable
+{
+ AgentWearablesRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID } // UUID
+ }
+}
+
+// AgentWearablesUpdate
+// (a.k.a. "Here's what the avatar is wearing now.")
+// viewer -> userserver -> dataserver
+// dataserver -> userserver -> viewer
+// reliable
+{
+ AgentWearablesUpdate Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SerialNum U32 } // U32, Increases every time the wearables change for a given agent. Used to avoid processing out of order packets.
+ }
+ {
+ WearableData Variable
+ { ItemID LLUUID }
+ { AssetID LLUUID }
+ { WearableType U8 } // U8, LLWearable::EWearType
+ }
+}
+
+// AgentCachedTexture
+// viewer queries for cached textures on dataserver (via simulator)
+// viewer -> simulator -> dataserver
+// reliable
+{
+ AgentCachedTexture Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { SerialNum S32 }
+ }
+ {
+ WearableData Variable
+ { ID LLUUID }
+ { TextureIndex U8 }
+ }
+}
+
+// AgentCachedTextureResponse
+// response to viewer queries for cached textures on dataserver (via simulator)
+// dataserver -> simulator -> viewer
+// reliable
+{
+ AgentCachedTextureResponse Low Trusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ { SerialNum S32 }
+ }
+ {
+ WearableData Variable
+ { TextureID LLUUID }
+ { TextureIndex U8 }
+ { HostName Variable 1 }
+ }
+}
+
+// Request an AgentDataUpdate without changing any agent data.
+{
+ AgentDataUpdateRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+}
+
+// AgentDataUpdate
+// Updates a viewer or simulator's impression of agent-specific information.
+// Used, for example, when an agent's group changes.
+// dataserver -> simulator -> viewer
+// reliable
+{
+ AgentDataUpdate Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { FirstName Variable 1 } // string
+ { LastName Variable 1 } // string
+ { GroupTitle Variable 1 } // string
+ { ActiveGroupID LLUUID } // active group
+ { GroupPowers U64 }
+ { GroupName Variable 1 } // string
+ }
+}
+
+
+// GroupDataUpdate
+// This is a bunch of group data that needs to be appropriatly routed based on presence info.
+// dataserver -> simulator
+{
+ GroupDataUpdate Low Trusted Zerocoded
+ {
+ AgentGroupData Variable
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ { AgentPowers U64 }
+ { GroupTitle Variable 1 }
+ }
+}
+
+// AgentGroupDataUpdate
+// Updates a viewer or simulator's impression of the groups an agent is in.
+// dataserver -> simulator -> viewer
+// reliable
+{
+ AgentGroupDataUpdate Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ GroupData Variable
+ { GroupID LLUUID }
+ { GroupPowers U64 }
+ { AcceptNotices BOOL }
+ { GroupInsigniaID LLUUID }
+ { Contribution S32 }
+ { GroupName Variable 1 } // string
+ }
+}
+
+// AgentDropGroup
+// Updates the viewer / simulator that an agent is no longer part of a group
+// dataserver -> simulator -> viewer
+// dataserver -> userserver
+// reliable
+{
+ AgentDropGroup Low Trusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { GroupID LLUUID }
+ }
+}
+
+// LogTextMessage
+// Asks the dataserver to log the contents of this message in the
+// chat and IM log table.
+// Sent from userserver (IM logging) and simulator (chat logging).
+{
+ LogTextMessage Low Trusted Zerocoded
+ {
+ DataBlock Variable
+ { FromAgentId LLUUID }
+ { ToAgentId LLUUID }
+ { GlobalX F64 }
+ { GlobalY F64 }
+ { Time U32 } // utc seconds since epoch
+ { Message Variable 2 } // string
+ }
+}
+
+// ViewerEffect
+// Viewer side effect that's sent from one viewer, and broadcast to other agents nearby
+{
+ ViewerEffect Medium NotTrusted Zerocoded
+ {
+ Effect Variable
+ { ID LLUUID } // UUID of the effect
+ { Type U8 } // Type of the effect
+ { Duration F32 } // F32 time (seconds)
+ { Color Fixed 4 } // Color4U
+ { TypeData Variable 1 } // Type specific data
+ }
+}
+
+// SetSunPhase
+// Sets the current phase of the sun - propagated from viewer->sim->spaceserver (if godlike)
+{
+ SetSunPhase Medium NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ Data Single
+ { Phase F32 } // F32 (radians)
+ }
+}
+
+// CreateTrustedCircuit
+// Sent to establish a trust relationship between two components.
+// Only sent in response to a DenyTrustedCircuit message.
+{
+ CreateTrustedCircuit Low NotTrusted Unencoded
+ {
+ DataBlock Single
+ { EndPointID LLUUID }
+ { Digest Fixed 32 } // 32 hex digits == 1 MD5 Digest
+ }
+}
+
+// DenyTrustedCircuit
+// Sent :
+// - in response to failed CreateTrustedCircuit
+// - to force the remote end-point to try to establish a trusted circuit
+// - the reception of a trusted message on a non-trusted circuit
+// This allows us to re-auth a circuit if it gets closed due to timeouts or network failures.
+{
+ DenyTrustedCircuit Low NotTrusted Unencoded
+ {
+ DataBlock Single
+ { EndPointID LLUUID }
+ }
+}
+
+
+{
+ RezSingleAttachmentFromInv Low NotTrusted Zerocoded
+ {
+ ObjectData Single
+ { AgentID LLUUID }
+ { AssetID LLUUID } // asset id in inventory
+ { ItemID LLUUID } // inventory item id
+ { AttachmentPt U8 } // 0 for default
+ { ItemFlags U32 }
+ { GroupMask U32 }
+ { EveryoneMask U32 }
+ { NextOwnerMask U32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ }
+}
+
+{
+ RezMultipleAttachmentsFromInv Low NotTrusted Zerocoded
+ {
+ HeaderData Single
+ { CompoundMsgID LLUUID } // All messages a single "compound msg" must have the same id
+ { TotalObjects U8 }
+ { AgentID LLUUID }
+ { FirstDetachAll U8 }
+ }
+ {
+ ObjectData Variable // 1 to 4 of these per packet
+ { AssetID LLUUID } // asset id in inventory
+ { ItemID LLUUID } // inventory item id
+ { AttachmentPt U8 } // 0 for default
+ { ItemFlags U32 }
+ { GroupMask U32 }
+ { EveryoneMask U32 }
+ { NextOwnerMask U32 }
+ { Name Variable 1 }
+ { Description Variable 1 }
+ }
+}
+
+
+{
+ DetachAttachmentIntoInv Low NotTrusted Unencoded
+ {
+ ObjectData Single
+ { AgentID LLUUID }
+ { ItemID LLUUID }
+ }
+}
+
+
+// Viewer -> Sim
+// Used in "Make New Outfit"
+{
+ CreateNewOutfitAttachments Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ HeaderData Single
+ { NewFolderID LLUUID }
+ }
+ {
+ ObjectData Variable
+ { OldItemID LLUUID }
+ { OldFolderID LLUUID }
+ }
+}
+
+//-----------------------------------------------------------------------------
+// Personal information messages
+//-----------------------------------------------------------------------------
+
+{
+ UserInfoRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+}
+
+{
+ UserInfoReply Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ UserData Single
+ { IMViaEMail BOOL }
+ { EMail Variable 2 }
+ }
+}
+
+{
+ UpdateUserInfo Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ UserData Single
+ { IMViaEMail BOOL }
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+// System operations and maintenance
+//-----------------------------------------------------------------------------
+
+// GodExpungeUser is sent from a viewer or other untrusted source to
+// start the process for getting rid of a list of users. The message
+// goes to the userserver, checks for godhood, and forwards the
+// request to the dataserver. The dataserver then marks the user as being
+// expunged and sends a StartExpungeProcess out to the simulators.
+{
+ GodExpungeUser Low NotTrusted Zerocoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ ExpungeData Variable
+ { AgentID LLUUID }
+ }
+}
+
+// StartExpungeProcess is sent from the dataserver to the userserver,
+// and from there relayed to the simulators which mark parcels and
+// objects owned by the agent as being expunged.
+{
+ StartExpungeProcess Low Trusted Zerocoded
+ {
+ ExpungeData Variable
+ { AgentID LLUUID }
+ }
+}
+
+// StartExpungeProcessAck - is sent from the userserver to anyone who
+// sends a StartExpungeProcess. This is used to aid scripting the
+// expunge process, since the message system does not generate
+// any errors if you attempt to connect to a non-existant host within
+// a reasonable timeframe for scripting
+{
+ StartExpungeProcessAck Low Trusted Unencoded
+}
+
+// Message to rename identified parcels. script -> userserver -> dataserver
+{
+ StartParcelRename Low Trusted Unencoded
+ {
+ ParcelData Variable
+ { ParcelID LLUUID }
+ { NewName Variable 1 } // string
+ }
+}
+
+// ack the last message. userserver->script
+{
+ StartParcelRenameAck Low Trusted Unencoded
+}
+
+// dataserver -> userserver -> spaceserver
+{
+ BulkParcelRename Low Trusted Zerocoded
+ {
+ ParcelData Variable
+ { RegionHandle U64 }
+ { ParcelID LLUUID }
+ { NewName Variable 1 } // string
+ }
+}
+
+// spaceserver -> sim
+// tell a particular simulator to rename a parcel
+{
+ ParcelRename Low Trusted Unencoded
+ {
+ ParcelData Variable
+ { ParcelID LLUUID }
+ { NewName Variable 1 } // string
+ }
+}
+
+// message to remove specified parcels. script -> userserver -> dataserver
+{
+ StartParcelRemove Low Trusted Unencoded
+ {
+ ParcelData Variable
+ { ParcelID LLUUID }
+ }
+}
+
+// ack the start parcel remove message
+{
+ StartParcelRemoveAck Low Trusted Unencoded
+}
+
+// dataserver -> userserver -> spaceserver
+// The space server will then slice this message into a series of
+// RemoveParcel messages.
+{
+ BulkParcelRemove Low Trusted Zerocoded
+ {
+ ParcelData Variable
+ { RegionHandle U64 }
+ { ParcelID LLUUID }
+ }
+}
+
+
+// viewer -> sim
+// initiate upload. primarily used for uploading raw files.
+{
+ InitiateUpload Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ FileData Single
+ { BaseFilename Variable 1 } // string
+ { SourceFilename Variable 1 } // string
+ }
+}
+
+// sim -> viewer
+// initiate upload. primarily used for uploading raw files.
+{
+ InitiateDownload Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ }
+ {
+ FileData Single
+ { SimFilename Variable 1 } // string
+ { ViewerFilename Variable 1 } // string
+ }
+}
+
+// Generalized system message. Each Requst has its own protocol for
+// the StringData block format and contents.
+{
+ SystemMessage Low Trusted Zerocoded
+ {
+ MethodData Single
+ { Method Variable 1 }
+ { Invoice LLUUID }
+ { Digest Fixed 32 } // 32 hex digits == 1 MD5 Digest
+ }
+ {
+ ParamList Variable
+ { Parameter Variable 1 }
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+// map messages
+//-----------------------------------------------------------------------------
+
+// viewer -> sim
+// reliable
+// This message is sent up from the viewer to (eventually) get a list
+// of all map layers and NULL-layer sims.
+// Returns: MapLayerReply and MapBlockReply
+{
+ MapLayerRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Flags U32 }
+ { EstateID U32 } // filled in on sim
+ { Godlike BOOL } // filled in on sim
+ }
+}
+
+// sim -> viewer
+{
+ MapLayerReply Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Flags U32 }
+ }
+ {
+ LayerData Variable
+ { Left U32 }
+ { Right U32 }
+ { Top U32 }
+ { Bottom U32 }
+ { ImageID LLUUID }
+ }
+}
+
+// viewer -> sim
+// This message is sent up from the viewer to get a list
+// of the sims in a specified region.
+// Returns: MapBlockReply
+{
+ MapBlockRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Flags U32 }
+ { EstateID U32 } // filled in on sim
+ { Godlike BOOL } // filled in on sim
+ }
+ {
+ PositionData Single
+ { MinX U16 } // in region-widths
+ { MaxX U16 } // in region-widths
+ { MinY U16 } // in region-widths
+ { MaxY U16 } // in region-widths
+ }
+}
+
+// viewer -> sim
+// This message is sent up from the viewer to get a list
+// of the sims with a given name.
+// Returns: MapBlockReply
+{
+ MapNameRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Flags U32 }
+ { EstateID U32 } // filled in on sim
+ { Godlike BOOL } // filled in on sim
+ }
+ {
+ NameData Single
+ { Name Variable 1 } // string
+ }
+}
+
+// sim -> viewer
+{
+ MapBlockReply Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Flags U32 }
+ }
+ {
+ Data Variable
+ { X U16 } // in region-widths
+ { Y U16 } // in region-widths
+ { Name Variable 1 } // string
+ { Access U8 } // PG, mature, etc.
+ { RegionFlags U32 }
+ { WaterHeight U8 } // meters
+ { Agents U8 }
+ { MapImageID LLUUID }
+ }
+}
+
+// viewer -> sim
+// This message is sent up from the viewer to get a list
+// of the items of a particular type on the map.
+// Used for Telehubs, Agents, Events, Popular Places, etc.
+// Returns: MapBlockReply
+{
+ MapItemRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Flags U32 }
+ { EstateID U32 } // filled in on sim
+ { Godlike BOOL } // filled in on sim
+ }
+ {
+ RequestData Single
+ { ItemType U32 }
+ { RegionHandle U64 } // filled in on sim
+ }
+}
+
+// sim -> viewer
+{
+ MapItemReply Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { Flags U32 }
+ }
+ {
+ RequestData Single
+ { ItemType U32 }
+ }
+ {
+ Data Variable
+ { X U32 } // global position
+ { Y U32 } // global position
+ { ID LLUUID } // identifier id
+ { Extra S32 } // extra information
+ { Extra2 S32 } // extra information
+ { Name Variable 1 } // identifier string
+ }
+}
+
+//-----------------------------------------------------------------------------
+// Postcard messages
+//-----------------------------------------------------------------------------
+// reliable
+{
+ SendPostcard Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { AssetID LLUUID }
+ { PosGlobal LLVector3d } // Where snapshot was taken
+ { To Variable 1 } // dest email address(es)
+ { From Variable 1 } // src email address(es)
+ { Name Variable 1 } // src name
+ { Subject Variable 1 } // mail subject
+ { Msg Variable 2 } // message text
+ { AllowPublish BOOL } // Allow publishing on the web.
+ { MaturePublish BOOL } // profile is "mature"
+ }
+}
+
+// RPC messages
+// Script on simulator requests rpc channel from rpcserver
+// simulator -> dataserver -> MySQL
+{
+ RpcChannelRequest Low Trusted Unencoded
+ {
+ DataBlock Single
+ { GridX U32 }
+ { GridY U32 }
+ { TaskID LLUUID }
+ { ItemID LLUUID }
+ }
+}
+
+// RpcServer allocated a session for the script
+// ChannelID will be the NULL UUID if unable to register
+// dataserver -> simulator
+{
+ RpcChannelReply Low Trusted Unencoded
+ {
+ DataBlock Single
+ { TaskID LLUUID }
+ { ItemID LLUUID }
+ { ChannelID LLUUID }
+ }
+}
+
+// Inbound RPC requests follow this path:
+// RpcScriptRequestInbound: rpcserver -> spaceserver
+// RpcScriptRequestInboundForward: spaceserver -> simulator
+// reply: simulator -> rpcserver
+{
+ RpcScriptRequestInbound Low NotTrusted Unencoded
+ {
+ TargetBlock Single
+ { GridX U32 }
+ { GridY U32 }
+ }
+ {
+ DataBlock Single
+ { TaskID LLUUID }
+ { ItemID LLUUID }
+ { ChannelID LLUUID }
+ { IntValue U32 }
+ { StringValue Variable 2 } // string
+ }
+}
+
+// spaceserver -> simulator
+{
+ RpcScriptRequestInboundForward Low Trusted Unencoded
+ {
+ DataBlock Single
+ { RPCServerIP IPADDR }
+ { RPCServerPort IPPORT }
+ { TaskID LLUUID }
+ { ItemID LLUUID }
+ { ChannelID LLUUID }
+ { IntValue U32 }
+ { StringValue Variable 2 } // string
+ }
+}
+
+// simulator -> rpcserver
+// Not trusted because trust establishment doesn't work here.
+{
+ RpcScriptReplyInbound Low NotTrusted Unencoded
+ {
+ DataBlock Single
+ { TaskID LLUUID }
+ { ItemID LLUUID }
+ { ChannelID LLUUID }
+ { IntValue U32 }
+ { StringValue Variable 2 } // string
+ }
+}
+
+// Simulator asks for what sim a script lives on (intersim object->object email delivery)
+// simulator -> dataserver
+{
+ MailTaskSimRequest Low NotTrusted Unencoded
+ {
+ DataBlock Single
+ { TaskID LLUUID }
+ }
+}
+
+// Reply from dataserver to simulator about where a mailping needs to go.
+// Same as below, but needs to be different as it has different routing.
+{
+ MailTaskSimReply Low NotTrusted Unencoded
+ {
+ TargetBlock Single
+ { TargetIP Variable 1 } // String IP
+ { TargetPort IPPORT }
+ }
+ {
+ DataBlock Single
+ { TaskID LLUUID }
+ }
+}
+
+// ScriptMailRegistration
+// Simulator -> dataserver
+{
+ ScriptMailRegistration Low NotTrusted Unencoded
+ {
+ DataBlock Single
+ { TargetIP Variable 1 } // String IP
+ { TargetPort IPPORT }
+ { TaskID LLUUID }
+ { Flags U32 }
+ }
+}
+
+
+// MailPingBounce
+// This is sent to the RPC server when the sim can not be found.
+// Not currently used.
+// Spaceserver -> RPC server
+{
+ MailPingBounce Low NotTrusted Unencoded
+ {
+ DataBlock Single
+ { TargetIP IPADDR }
+ { TargetPort IPPORT }
+ { TaskID LLUUID }
+ { Flags U32 }
+ }
+}
+
+
+// ParcelMediaCommandMessage
+// Sends a parcel media command
+{
+ ParcelMediaCommandMessage Low NotTrusted Unencoded
+ {
+ CommandBlock Single
+ { Flags U32 }
+ { Command U32 }
+ { Time F32 }
+ }
+}
+
+// ParcelMediaUpdate
+// Sends a parcel media update to a single user
+// For global updates use the parcel manager.
+{
+ ParcelMediaUpdate Low NotTrusted Unencoded
+ {
+ DataBlock Single
+ { MediaURL Variable 1 } // string
+ { MediaID LLUUID }
+ { MediaAutoScale U8 }
+ }
+}
+
+// LandStatRequest
+// Sent by the viewer to request collider/script information for a parcel
+{
+ LandStatRequest Low NotTrusted Unencoded
+ {
+ AgentData Single
+ { AgentID LLUUID }
+ { SessionID LLUUID }
+ }
+ {
+ RequestData Single
+ { ReportType U32 }
+ { RequestFlags U32 }
+ { Filter Variable 1 }
+ { ParcelLocalID S32 1 }
+ }
+}
+
+// LandStatReply
+// Sent by the simulator in response to LandCollidersRequest
+{
+ LandStatReply Low NotTrusted Unencoded
+ {
+ RequestData Single
+ { ReportType U32 }
+ { RequestFlags U32 }
+ { TotalObjectCount U32 }
+ }
+ {
+ ReportData Variable
+ { TaskLocalID U32 }
+ { TaskID LLUUID }
+ { LocationX F32 }
+ { LocationY F32 }
+ { LocationZ F32 }
+ { Score F32 }
+ { TaskName Variable 1 }
+ { OwnerName Variable 1 }
+ }
+}
+
+
+
+
diff --git a/libsecondlife-cs/InventorySystem/InventoryManager.cs b/libsecondlife-cs/InventorySystem/InventoryManager.cs
index e3607be1..9f905317 100644
--- a/libsecondlife-cs/InventorySystem/InventoryManager.cs
+++ b/libsecondlife-cs/InventorySystem/InventoryManager.cs
@@ -362,7 +362,11 @@ namespace libsecondlife.InventorySystem
// while still enumerating it.
ArrayList alRestartList = new ArrayList();
- Console.WriteLine( htFolderDownloadStatus[0].GetType() );
+ if (htFolderDownloadStatus[0] != null)
+ {
+ Console.WriteLine(htFolderDownloadStatus[0].GetType());
+ }
+
foreach( DescendentRequest dr in htFolderDownloadStatus )
{
Console.WriteLine( dr.FolderID + " " + dr.Expected + " / " + dr.Received + " / " + dr.LastReceived );
@@ -449,11 +453,11 @@ namespace libsecondlife.InventorySystem
{
case "Name":
invItem._Name = System.Text.Encoding.UTF8.GetString( (byte[])field.Data).Trim();
- invItem._Name = invItem.Name.Substring(0,invItem.Name.Length-1);
+ invItem._Name = invItem.Name.Replace("\0", "");
break;
case "Description":
invItem._Description = System.Text.Encoding.UTF8.GetString( (byte[])field.Data).Trim();
- invItem._Description = invItem.Description.Substring(0,invItem.Description.Length-1);
+ invItem._Description = invItem.Description.Replace("\0", "");
break;
case "InvType":
@@ -566,7 +570,7 @@ namespace libsecondlife.InventorySystem
{
case "Name":
name = System.Text.Encoding.UTF8.GetString( (byte[])field.Data).Trim();
- name = name.Substring(0,name.Length-1);
+ name = name.Replace("\0", "");
break;
case "FolderID":
folderid = new LLUUID(field.Data.ToString());
diff --git a/libsecondlife-cs/Utils/InventoryApp.cs b/libsecondlife-cs/Utils/InventoryApp.cs
index dbb11de9..95fbb21e 100644
--- a/libsecondlife-cs/Utils/InventoryApp.cs
+++ b/libsecondlife-cs/Utils/InventoryApp.cs
@@ -20,7 +20,7 @@ namespace libsecondlife.Utils
{
try
{
- client = new SecondLife("keywords.txt", "protocol.txt");
+ client = new SecondLife("keywords.txt", "message_template.msg");
}
catch (Exception e)
{
diff --git a/libsecondlife-cs/examples/ParcelDownload/ParcelDownload.cs b/libsecondlife-cs/examples/ParcelDownload/ParcelDownload.cs
index 87ebc1e1..d42f95ce 100644
--- a/libsecondlife-cs/examples/ParcelDownload/ParcelDownload.cs
+++ b/libsecondlife-cs/examples/ParcelDownload/ParcelDownload.cs
@@ -1,27 +1,27 @@
-/*
- * Copyright (c) 2006, Second Life Reverse Engineering Team
- * All rights reserved.
- *
- * - Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * - Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- * - Neither the name of the Second Life Reverse Engineering Team nor the names
- * of its contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
+/*
+ * Copyright (c) 2006, Second Life Reverse Engineering Team
+ * All rights reserved.
+ *
+ * - Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ * - Neither the name of the Second Life Reverse Engineering Team nor the names
+ * of its contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
*/
using System;
@@ -52,7 +52,7 @@ namespace ParcelDownloader
try
{
- client = new SecondLife("keywords.txt", "protocol.txt");
+ client = new SecondLife("keywords.txt", "message_template.msg");
}
catch (Exception e)
{
diff --git a/libsecondlife-cs/examples/name2key/name2key.cs b/libsecondlife-cs/examples/name2key/name2key.cs
index 9e231d02..64329a90 100644
--- a/libsecondlife-cs/examples/name2key/name2key.cs
+++ b/libsecondlife-cs/examples/name2key/name2key.cs
@@ -1,27 +1,27 @@
-/*
- * Copyright (c) 2006, Second Life Reverse Engineering Team
- * All rights reserved.
- *
- * - Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * - Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- * - Neither the name of the Second Life Reverse Engineering Team nor the names
- * of its contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
+/*
+ * Copyright (c) 2006, Second Life Reverse Engineering Team
+ * All rights reserved.
+ *
+ * - Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ * - Neither the name of the Second Life Reverse Engineering Team nor the names
+ * of its contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
*/
using System;
@@ -36,8 +36,8 @@ namespace name2key
//
public static void QueryHandler(Packet packet, Simulator simulator)
- {
- if (packet.Layout.Name.IndexOf("Dir") > -1)
+ {
+ if (packet.Layout.Name.IndexOf("Dir") > -1)
{
ArrayList blocks = packet.Blocks();
@@ -61,7 +61,7 @@ namespace name2key
}
}
- Done:
+ Done:
waiting = false;
}
}
@@ -82,7 +82,7 @@ namespace name2key
try
{
- client = new SecondLife("keywords.txt", "protocol.txt");
+ client = new SecondLife("keywords.txt", "message_template.msg");
}
catch (Exception e)
{
diff --git a/libsecondlife-cs/examples/primexport/frmPrimExport.cs b/libsecondlife-cs/examples/primexport/frmPrimExport.cs
index bc2574d7..8e74f2db 100644
--- a/libsecondlife-cs/examples/primexport/frmPrimExport.cs
+++ b/libsecondlife-cs/examples/primexport/frmPrimExport.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
@@ -144,7 +143,6 @@ namespace primexport
this.cmdCapture.Size = new System.Drawing.Size(560, 49);
this.cmdCapture.TabIndex = 52;
this.cmdCapture.Text = "Start Capture";
- this.cmdCapture.UseVisualStyleBackColor = true;
this.cmdCapture.Click += new System.EventHandler(this.cmdCapture_Click);
//
// txtLog
@@ -158,8 +156,6 @@ namespace primexport
//
// frmPrimExport
//
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(587, 299);
this.Controls.Add(this.txtLog);
this.Controls.Add(this.cmdCapture);
@@ -187,7 +183,7 @@ namespace primexport
try
{
- client = new SecondLife("keywords.txt", "protocol.txt");
+ client = new SecondLife("keywords.txt", "message_template.msg");
grpLogin.Enabled = true;
}
catch (Exception error)
@@ -271,12 +267,22 @@ namespace primexport
output += "" + Environment.NewLine;
+ "\" s=\"" + prim.Rotation.S + "\" />" + Environment.NewLine;
output += "" + Environment.NewLine;
- output += "" + Environment.NewLine;
- output += "" + Environment.NewLine;
+
+ if (type == 1)
+ {
+ output += "" + Environment.NewLine;
+ output += "" + Environment.NewLine;
+ }
+ else
+ {
+ output += "" + Environment.NewLine;
+ output += "" + Environment.NewLine;
+ }
+
output += "" + Environment.NewLine;
output += "" + Environment.NewLine;
output += "" + Environment.NewLine;
@@ -285,8 +291,8 @@ namespace primexport
output += "" + Environment.NewLine;
output += "" + Environment.NewLine;
// prim.blender stores taper values a bit different than the SL network layer
- output += "" + Environment.NewLine;
+ output += "" + Environment.NewLine;
output += "" + Environment.NewLine;
output += "" + Environment.NewLine;
output += "" + Environment.NewLine;
diff --git a/libsecondlife-cs/examples/primexport/primexport.cs b/libsecondlife-cs/examples/primexport/primexport.cs
index a9969a7a..29aa462c 100644
--- a/libsecondlife-cs/examples/primexport/primexport.cs
+++ b/libsecondlife-cs/examples/primexport/primexport.cs
@@ -32,96 +32,6 @@ namespace primexport
{
class primexport
{
- //
- static void PrimSeen(Simulator simulator, PrimObject prim, U64 regionHandle, ushort timeDilation)
- {
- uint type = 0;
- string output = "";
-
- output += "\n";
- output += "\n" +
- "FALSE\n" +
- "FALSE\n" +
- "FALSE\n" +
- "\n";
- output += "\n" +
- "\n";
-
- if (prim.ProfileCurve == 1 && prim.PathCurve == 16)
- {
- type = 0;
- }
- else if (prim.ProfileCurve == 0 && prim.PathCurve == 16)
- {
- type = 1;
- }
- else if (prim.ProfileCurve == 3 && prim.PathCurve == 16)
- {
- type = 2;
- }
- else if (prim.ProfileCurve == 5 && prim.PathCurve == 32)
- {
- type = 3;
- }
- else if (prim.ProfileCurve == 0 && prim.PathCurve == 32)
- {
- type = 4;
- }
- else if (prim.ProfileCurve == 1 && prim.PathCurve == 32)
- {
- type = 5;
- }
- else if (prim.ProfileCurve == 3 && prim.PathCurve == 32)
- {
- type = 6;
- }
- else
- {
- Console.WriteLine("Unhandled prim type, ProfileCurve=" +
- prim.ProfileCurve + ", PathCurve=" + prim.PathCurve);
- type = 0;
- }
-
- output += "\n";
- output += "\n";
- output += "\n";
- output += "\n";
- output += "\n";
- output += "\n";
- output += "\n";
- output += "\n";
- output += "\n";
- output += "\n";
- output += "\n";
- output += "\n";
- // prim.blender stores taper values a bit different than the SL network layer
- output += "\n";
- output += "\n";
- output += "\n";
- output += "\n";
- output += "\n";
- // TODO: Hollowshape. 16-21 = circle, 32-37 = square, 48-53 = triangle
- output += "\n";
-
- output += "\n" +
- "\n" +
- "\n" +
- "\n" +
- "\n" +
- "\n";
-
- Console.WriteLine(output);
- }
-
///
/// The main entry point for the application.
///
diff --git a/libsecondlife-cs/examples/slaccountant/frmSLAccountant.cs b/libsecondlife-cs/examples/slaccountant/frmSLAccountant.cs
index a7a496bb..79373d21 100644
--- a/libsecondlife-cs/examples/slaccountant/frmSLAccountant.cs
+++ b/libsecondlife-cs/examples/slaccountant/frmSLAccountant.cs
@@ -471,7 +471,7 @@ namespace SLAccountant
try
{
- client = new SecondLife("keywords.txt", "protocol.txt");
+ client = new SecondLife("keywords.txt", "message_template.msg");
// Install our packet handlers
client.Network.RegisterCallback("AvatarAppearance", new PacketCallback(AvatarAppearanceHandler));
diff --git a/libsecondlife-cs/examples/sldump/sldump.cs b/libsecondlife-cs/examples/sldump/sldump.cs
index 6699193c..c4d49132 100644
--- a/libsecondlife-cs/examples/sldump/sldump.cs
+++ b/libsecondlife-cs/examples/sldump/sldump.cs
@@ -1,27 +1,27 @@
-/*
- * Copyright (c) 2006, Second Life Reverse Engineering Team
- * All rights reserved.
- *
- * - Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * - Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- * - Neither the name of the Second Life Reverse Engineering Team nor the names
- * of its contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
+/*
+ * Copyright (c) 2006, Second Life Reverse Engineering Team
+ * All rights reserved.
+ *
+ * - Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ * - Neither the name of the Second Life Reverse Engineering Team nor the names
+ * of its contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
*/
using System;
@@ -35,7 +35,7 @@ namespace sldump
// Default packet handler, registered for all packet types
public static void DefaultHandler(Packet packet, Simulator simulator)
{
- //Console.Write(packet.ToString());
+ Console.Write(packet.ToString());
}
///
@@ -69,7 +69,7 @@ namespace sldump
try
{
- client = new SecondLife("keywords.txt", "protocol.txt");
+ client = new SecondLife("keywords.txt", "message_template.msg");
}
catch (Exception e)
{
diff --git a/libsecondlife.build b/libsecondlife.build
index 5cc4851c..9bf7232a 100644
--- a/libsecondlife.build
+++ b/libsecondlife.build
@@ -88,6 +88,12 @@
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
+
-
+
+