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 @@ + + + + + + - - - - + + + + - + - + +