corrade-vassal – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 vero 1 // Linden Lab development message templates
2  
3 version 2.0
4  
5 // The Version 2.0 template requires preservation of message
6 // numbers. Each message must be numbered relative to the
7 // other messages of that type. The current highest number
8 // for each type is listed below:
9 // Low: 423
10 // Medium: 18
11 // High: 29
12 // PLEASE UPDATE THIS WHEN YOU ADD A NEW MESSAGE!
13  
14  
15 // *************************************************************************
16 // Test Message
17 // *************************************************************************
18  
19 // Test Message
20  
21 {
22 TestMessage Low 1 NotTrusted Zerocoded
23 {
24 TestBlock1 Single
25 { Test1 U32 }
26 }
27 {
28 NeighborBlock Multiple 4
29 { Test0 U32 }
30 { Test1 U32 }
31 { Test2 U32 }
32 }
33 }
34  
35 // *************************************************************************
36 // Messaging Internal Data Management Message
37 // *************************************************************************
38  
39 // *************************
40 // List fixed messages first
41 // *************************
42  
43  
44 // Packet Ack - Ack a list of packets sent reliable
45 {
46 PacketAck Fixed 0xFFFFFFFB NotTrusted Unencoded
47 {
48 Packets Variable
49 { ID U32 }
50 }
51 }
52  
53  
54 // OpenCircuit - Tells the recipient's messaging system to open the descibed circuit
55 {
56 OpenCircuit Fixed 0xFFFFFFFC NotTrusted Unencoded UDPBlackListed
57 {
58 CircuitInfo Single
59 { IP IPADDR }
60 { Port IPPORT }
61 }
62 }
63  
64  
65 // CloseCircuit - Tells the recipient's messaging system to close the descibed circuit
66 {
67 CloseCircuit Fixed 0xFFFFFFFD NotTrusted Unencoded
68 }
69  
70  
71 // ******************
72 // End fixed messages
73 // ******************
74  
75 // StartPingCheck - used to measure circuit ping times
76 // PingID is used to determine how backlogged the ping was that was
77 // returned (or how hosed the other side is)
78 {
79 StartPingCheck High 1 NotTrusted Unencoded
80 {
81 PingID Single
82 { PingID U8 }
83 { OldestUnacked U32 } // Current oldest "unacked" packet on the sender side
84 }
85 }
86  
87 // CompletePingCheck - used to measure circuit ping times
88  
89 {
90 CompletePingCheck High 2 NotTrusted Unencoded
91 {
92 PingID Single
93 { PingID U8 }
94 }
95 }
96  
97 // space->sim
98 // sim->sim
99 // AddCircuitCode - Tells the recipient's messaging system that this code
100 // is for a legal circuit
101 {
102 AddCircuitCode Low 2 Trusted Unencoded
103 {
104 CircuitCode Single
105 { Code U32 }
106 { SessionID LLUUID }
107 { AgentID LLUUID } // WARNING - may be null in valid message
108 }
109 }
110  
111 // viewer->sim
112 // UseCircuitCode - Attempts to provide the recipient with IP and Port
113 // info. In the case of viewers, the id is the session id. For other
114 // machines it may be null. The session id will always be the session
115 // id of the process, which every server will generate on startup and
116 // the viewer will be handed after login.
117 {
118 UseCircuitCode Low 3 NotTrusted Unencoded
119 {
120 CircuitCode Single
121 { Code U32 }
122 { SessionID LLUUID }
123 { ID LLUUID } // agent id
124 }
125 }
126  
127  
128 // *************************************************************************
129 // SpaceServer to Simulator Messages
130 // ************************************************************************
131  
132 // Neighbor List - Passed anytime neighbors change
133 {
134 NeighborList High 3 Trusted Unencoded
135 {
136 NeighborBlock Multiple 4
137 { IP IPADDR }
138 { Port IPPORT }
139 { PublicIP IPADDR }
140 { PublicPort IPPORT }
141 { RegionID LLUUID }
142 { Name Variable 1 } // string
143 { SimAccess U8 }
144 }
145 }
146  
147  
148 // AvatarTextureUpdate
149 // simulator -> dataserver
150 // reliable
151 {
152 AvatarTextureUpdate Low 4 Trusted Zerocoded
153 {
154 AgentData Single
155 { AgentID LLUUID }
156 { TexturesChanged BOOL }
157 }
158 {
159 WearableData Variable
160 { CacheID LLUUID }
161 { TextureIndex U8 }
162 { HostName Variable 1 }
163 }
164 {
165 TextureData Variable
166 { TextureID LLUUID }
167 }
168 }
169  
170  
171 // SimulatorMapUpdate
172 // simulator -> dataserver
173 // reliable
174 {
175 SimulatorMapUpdate Low 5 Trusted Unencoded
176 {
177 MapData Single
178 { Flags U32 }
179 }
180 }
181  
182 // SimulatorSetMap
183 // simulator -> dataserver
184 // reliable
185 // Used to upload a map image into the database (currently used only for Land For Sale)
186 {
187 SimulatorSetMap Low 6 Trusted Unencoded
188 {
189 MapData Single
190 { RegionHandle U64 }
191 { Type S32 }
192 { MapImage LLUUID }
193 }
194 }
195  
196 // SubscribeLoad
197 // spaceserver -> simulator
198 // reliable
199 {
200 SubscribeLoad Low 7 Trusted Unencoded
201 }
202  
203 // UnsubscribeLoad
204 // spaceserver -> simulator
205 // reliable
206 {
207 UnsubscribeLoad Low 8 Trusted Unencoded
208 }
209  
210  
211 // ************************************************************************
212 // Simulator to SpaceServer Messages
213 // ************************************************************************
214  
215 // SimulatorReady - indicates the sim has finished loading its state
216 // and is ready to receive updates from others
217 {
218 SimulatorReady Low 9 Trusted Zerocoded
219 {
220 SimulatorBlock Single
221 { SimName Variable 1 }
222 { SimAccess U8 }
223 { RegionFlags U32 }
224 { RegionID LLUUID }
225 { EstateID U32 }
226 { ParentEstateID U32 }
227 }
228 {
229 TelehubBlock Single
230 { HasTelehub BOOL }
231 { TelehubPos LLVector3 }
232 }
233 }
234  
235 // TelehubInfo - fill in the UI for telehub creation floater.
236 // sim -> viewer
237 // reliable
238 {
239 TelehubInfo Low 10 Trusted Unencoded
240 {
241 TelehubBlock Single
242 { ObjectID LLUUID } // null if no telehub
243 { ObjectName Variable 1 } // string
244 { TelehubPos LLVector3 } // fallback if viewer can't find object
245 { TelehubRot LLQuaternion }
246 }
247 {
248 SpawnPointBlock Variable
249 { SpawnPointPos LLVector3 } // relative to telehub position
250 }
251 }
252  
253 // SimulatorPresentAtLocation - indicates that the sim is present at a grid
254 // location and passes what it believes its neighbors are
255 {
256 SimulatorPresentAtLocation Low 11 Trusted Unencoded
257 {
258 SimulatorPublicHostBlock Single
259 { Port IPPORT }
260 { SimulatorIP IPADDR }
261 { GridX U32 }
262 { GridY U32 }
263 }
264 {
265 NeighborBlock Multiple 4
266 { IP IPADDR }
267 { Port IPPORT }
268 }
269 {
270 SimulatorBlock Single
271 { SimName Variable 1 }
272 { SimAccess U8 }
273 { RegionFlags U32 }
274 { RegionID LLUUID }
275 { EstateID U32 }
276 { ParentEstateID U32 }
277 }
278 {
279 TelehubBlock Variable
280 { HasTelehub BOOL }
281 { TelehubPos LLVector3 }
282 }
283 }
284  
285 // SimulatorLoad
286 // simulator -> spaceserver
287 // reliable
288 {
289 SimulatorLoad Low 12 Trusted Unencoded
290 {
291 SimulatorLoad Single
292 { TimeDilation F32 }
293 { AgentCount S32 }
294 { CanAcceptAgents BOOL }
295 }
296 {
297 AgentList Variable
298 { CircuitCode U32 }
299 { X U8 }
300 { Y U8 }
301 }
302 }
303  
304 // Simulator Shutdown Request - Tells spaceserver that a simulator is trying to shutdown
305 {
306 SimulatorShutdownRequest Low 13 Trusted Unencoded
307 }
308  
309 // ****************************************************************************
310 // Presense messages
311 // ****************************************************************************
312  
313 // sim -> dataserver
314 {
315 RegionPresenceRequestByRegionID Low 14 Trusted Unencoded
316 {
317 RegionData Variable
318 { RegionID LLUUID }
319 }
320 }
321  
322 // sim -> dataserver
323 {
324 RegionPresenceRequestByHandle Low 15 Trusted Unencoded
325 {
326 RegionData Variable
327 { RegionHandle U64 }
328 }
329 }
330  
331 // dataserver -> sim
332 {
333 RegionPresenceResponse Low 16 Trusted Zerocoded
334 {
335 RegionData Variable
336 { RegionID LLUUID }
337 { RegionHandle U64 }
338 { InternalRegionIP IPADDR }
339 { ExternalRegionIP IPADDR }
340 { RegionPort IPPORT }
341 { ValidUntil F64 }
342 { Message Variable 1 }
343 }
344 }
345  
346  
347 // ****************************************************************************
348 // Simulator to dataserver messages
349 // ****************************************************************************
350  
351 // Updates SimName, EstateID and SimAccess using RegionID as a key
352 {
353 UpdateSimulator Low 17 Trusted Unencoded
354 {
355 SimulatorInfo Single
356 { RegionID LLUUID }
357 { SimName Variable 1 }
358 { EstateID U32 }
359 { SimAccess U8 }
360 }
361 }
362  
363  
364 // record dwell time.
365 {
366 LogDwellTime Low 18 Trusted Unencoded
367 {
368 DwellInfo Single
369 { AgentID LLUUID }
370 { SessionID LLUUID }
371 { Duration F32 }
372 { SimName Variable 1 }
373 { RegionX U32 }
374 { RegionY U32 }
375 { AvgAgentsInView U8 }
376 { AvgViewerFPS U8 }
377 }
378 }
379  
380 // Disabled feature response message
381 {
382 FeatureDisabled Low 19 Trusted Unencoded
383 {
384 FailureInfo Single
385 { ErrorMessage Variable 1 }
386 { AgentID LLUUID }
387 { TransactionID LLUUID }
388 }
389 }
390  
391  
392 // record lost money transactions. This message could be generated
393 // from either the simulator or the dataserver, depending on how
394 // the transaction failed.
395 {
396 LogFailedMoneyTransaction Low 20 Trusted Unencoded
397 {
398 TransactionData Single
399 { TransactionID LLUUID }
400 { TransactionTime U32 } // utc seconds since epoch
401 { TransactionType S32 } // see lltransactiontypes.h
402 { SourceID LLUUID }
403 { DestID LLUUID } // destination of the transfer
404 { Flags U8 }
405 { Amount S32 }
406 { SimulatorIP IPADDR } // U32 encoded IP
407 { GridX U32 }
408 { GridY U32 }
409 { FailureType U8 }
410 }
411 }
412  
413 // complaint/bug-report - sim -> dataserver. see UserReport for details.
414 // reliable
415 {
416 UserReportInternal Low 21 Trusted Zerocoded
417 {
418 ReportData Single
419 { ReportType U8 }
420 { Category U8 }
421 { ReporterID LLUUID }
422 { ViewerPosition LLVector3 }
423 { AgentPosition LLVector3 }
424 { ScreenshotID LLUUID }
425 { ObjectID LLUUID }
426 { OwnerID LLUUID }
427 { LastOwnerID LLUUID }
428 { CreatorID LLUUID }
429 { RegionID LLUUID }
430 { AbuserID LLUUID }
431 { AbuseRegionName Variable 1 }
432 { AbuseRegionID LLUUID }
433 { Summary Variable 1 }
434 { Details Variable 2 }
435 { VersionString Variable 1 }
436 }
437 }
438  
439 // SetSimStatusInDatabase
440 // alters the "simulator" table in the database
441 // sim -> dataserver
442 // reliable
443 {
444 SetSimStatusInDatabase Low 22 Trusted Unencoded
445 {
446 Data Single
447 { RegionID LLUUID }
448 { HostName Variable 1 }
449 { X S32 }
450 { Y S32 }
451 { PID S32 }
452 { AgentCount S32 }
453 { TimeToLive S32 } // in seconds
454 { Status Variable 1 }
455 }
456 }
457  
458 // SetSimPresenceInDatabase
459 // updates the "presence" table in the database to ensure
460 // that a given simulator is present and valid for a set amount of
461 // time
462 {
463 SetSimPresenceInDatabase Low 23 Trusted Unencoded
464 {
465 SimData Single
466 { RegionID LLUUID }
467 { HostName Variable 1 }
468 { GridX U32 }
469 { GridY U32 }
470 { PID S32 }
471 { AgentCount S32 }
472 { TimeToLive S32 } // in seconds
473 { Status Variable 1 }
474 }
475 }
476  
477 // ***************************************************************************
478 // Economy messages
479 // ***************************************************************************
480  
481 // once we use local stats, this will include a region handle
482 {
483 EconomyDataRequest Low 24 NotTrusted Unencoded
484 }
485  
486 // dataserver to sim, response w/ econ data
487 {
488 EconomyData Low 25 Trusted Zerocoded
489 {
490 Info Single
491 { ObjectCapacity S32 }
492 { ObjectCount S32 }
493 { PriceEnergyUnit S32 }
494 { PriceObjectClaim S32 }
495 { PricePublicObjectDecay S32 }
496 { PricePublicObjectDelete S32 }
497 { PriceParcelClaim S32 }
498 { PriceParcelClaimFactor F32 }
499 { PriceUpload S32 }
500 { PriceRentLight S32 }
501 { TeleportMinPrice S32 }
502 { TeleportPriceExponent F32 }
503 { EnergyEfficiency F32 }
504 { PriceObjectRent F32 }
505 { PriceObjectScaleFactor F32 }
506 { PriceParcelRent S32 }
507 { PriceGroupCreate S32 }
508 }
509 }
510  
511 // ***************************************************************************
512 // Search messages
513 // ***************************************************************************
514  
515 // AvatarPickerRequest
516 // Get a list of names to select a person
517 // viewer -> sim -> data
518 // reliable
519 {
520 AvatarPickerRequest Low 26 NotTrusted Unencoded
521 {
522 AgentData Single
523 { AgentID LLUUID }
524 { SessionID LLUUID }
525 { QueryID LLUUID }
526 }
527 {
528 Data Single
529 { Name Variable 1 }
530 }
531 }
532  
533 // backend implementation which tracks if the user is a god.
534 {
535 AvatarPickerRequestBackend Low 27 Trusted Unencoded
536 {
537 AgentData Single
538 { AgentID LLUUID }
539 { SessionID LLUUID }
540 { QueryID LLUUID }
541 { GodLevel U8 }
542 }
543 {
544 Data Single
545 { Name Variable 1 }
546 }
547 }
548  
549 // AvatarPickerReply
550 // List of names to select a person
551 // reliable
552 {
553 AvatarPickerReply Low 28 Trusted Unencoded
554 {
555 AgentData Single
556 { AgentID LLUUID }
557 { QueryID LLUUID }
558 }
559 {
560 Data Variable
561 { AvatarID LLUUID }
562 { FirstName Variable 1 }
563 { LastName Variable 1 }
564 }
565 }
566  
567 // PlacesQuery
568 // Used for getting a list of places for the group land panel
569 // and the user land holdings panel. NOT for the directory.
570 {
571 PlacesQuery Low 29 NotTrusted Zerocoded
572 {
573 AgentData Single
574 { AgentID LLUUID }
575 { SessionID LLUUID }
576 { QueryID LLUUID }
577 }
578 {
579 TransactionData Single
580 { TransactionID LLUUID }
581 }
582 {
583 QueryData Single
584 { QueryText Variable 1 }
585 { QueryFlags U32 }
586 { Category S8 }
587 { SimName Variable 1 }
588 }
589 }
590  
591 // PlacesReply
592 // dataserver -> simulator -> viewer
593 // If the user has specified a location, use that to compute
594 // global x,y,z. Otherwise, use center of the AABB.
595 // reliable
596 {
597 PlacesReply Low 30 Trusted Zerocoded UDPDeprecated
598 {
599 AgentData Single
600 { AgentID LLUUID }
601 { QueryID LLUUID }
602 }
603 {
604 TransactionData Single
605 { TransactionID LLUUID }
606 }
607 {
608 QueryData Variable
609 { OwnerID LLUUID }
610 { Name Variable 1 }
611 { Desc Variable 1 }
612 { ActualArea S32 }
613 { BillableArea S32 }
614 { Flags U8 }
615 { GlobalX F32 } // meters
616 { GlobalY F32 } // meters
617 { GlobalZ F32 } // meters
618 { SimName Variable 1 }
619 { SnapshotID LLUUID }
620 { Dwell F32 }
621 { Price S32 }
622 //{ ProductSKU Variable 1 }
623 }
624 }
625  
626 // DirFindQuery viewer->sim
627 // Message to start asking questions for the directory
628 {
629 DirFindQuery Low 31 NotTrusted Zerocoded
630 {
631 AgentData Single
632 { AgentID LLUUID }
633 { SessionID LLUUID }
634 }
635 {
636 QueryData Single
637 { QueryID LLUUID }
638 { QueryText Variable 1 }
639 { QueryFlags U32 }
640 { QueryStart S32 } // prev/next page support
641 }
642 }
643  
644 // DirFindQueryBackend sim->data
645 // Trusted message generated by receipt of DirFindQuery to sim.
646 {
647 DirFindQueryBackend Low 32 Trusted Zerocoded
648 {
649 AgentData Single
650 { AgentID LLUUID }
651 }
652 {
653 QueryData Single
654 { QueryID LLUUID }
655 { QueryText Variable 1 }
656 { QueryFlags U32 }
657 { QueryStart S32 } // prev/next page support
658 { EstateID U32 }
659 { Godlike BOOL }
660 }
661 }
662  
663  
664 // DirPlacesQuery viewer->sim
665 // Used for the Find directory of places
666 {
667 DirPlacesQuery Low 33 NotTrusted Zerocoded
668 {
669 AgentData Single
670 { AgentID LLUUID }
671 { SessionID LLUUID }
672 }
673 {
674 QueryData Single
675 { QueryID LLUUID }
676 { QueryText Variable 1 }
677 { QueryFlags U32 }
678 { Category S8 }
679 { SimName Variable 1 }
680 { QueryStart S32 }
681 }
682 }
683  
684 // DirPlacesQueryBackend sim->dataserver
685 // Used for the Find directory of places.
686 {
687 DirPlacesQueryBackend Low 34 Trusted Zerocoded
688 {
689 AgentData Single
690 { AgentID LLUUID }
691 }
692 {
693 QueryData Single
694 { QueryID LLUUID }
695 { QueryText Variable 1 }
696 { QueryFlags U32 }
697 { Category S8 }
698 { SimName Variable 1 }
699 { EstateID U32 }
700 { Godlike BOOL }
701 { QueryStart S32 }
702 }
703 }
704  
705 // DirPlacesReply dataserver->sim->viewer
706 // If the user has specified a location, use that to compute
707 // global x,y,z. Otherwise, use center of the AABB.
708 // reliable
709 {
710 DirPlacesReply Low 35 Trusted Zerocoded
711 {
712 AgentData Single
713 { AgentID LLUUID }
714 }
715 {
716 QueryData Variable
717 { QueryID LLUUID }
718 }
719 {
720 QueryReplies Variable
721 { ParcelID LLUUID }
722 { Name Variable 1 }
723 { ForSale BOOL }
724 { Auction BOOL }
725 { Dwell F32 }
726 }
727 {
728 StatusData Variable
729 { Status U32 }
730 }
731 }
732  
733 // DirPeopleReply
734 {
735 DirPeopleReply Low 36 Trusted Zerocoded
736 {
737 AgentData Single
738 { AgentID LLUUID }
739 }
740 {
741 QueryData Single
742 { QueryID LLUUID }
743 }
744 {
745 QueryReplies Variable
746 { AgentID LLUUID }
747 { FirstName Variable 1 }
748 { LastName Variable 1 }
749 { Group Variable 1 }
750 { Online BOOL }
751 { Reputation S32 }
752 }
753 }
754  
755 // DirEventsReply
756 {
757 DirEventsReply Low 37 Trusted Zerocoded
758 {
759 AgentData Single
760 { AgentID LLUUID }
761 }
762 {
763 QueryData Single
764 { QueryID LLUUID }
765 }
766 {
767 QueryReplies Variable
768 { OwnerID LLUUID }
769 { Name Variable 1 }
770 { EventID U32 }
771 { Date Variable 1 }
772 { UnixTime U32 }
773 { EventFlags U32 }
774 }
775 {
776 StatusData Variable
777 { Status U32 }
778 }
779 }
780  
781 // DirGroupsReply
782 // dataserver -> userserver -> viewer
783 // reliable
784 {
785 DirGroupsReply Low 38 Trusted Zerocoded
786 {
787 AgentData Single
788 { AgentID LLUUID }
789 }
790 {
791 QueryData Single
792 { QueryID LLUUID }
793 }
794 {
795 QueryReplies Variable
796 { GroupID LLUUID }
797 { GroupName Variable 1 } // string
798 { Members S32 }
799 { SearchOrder F32 }
800 }
801 }
802  
803  
804 // DirClassifiedQuery viewer->sim
805 // reliable
806 {
807 DirClassifiedQuery Low 39 NotTrusted Zerocoded
808 {
809 AgentData Single
810 { AgentID LLUUID }
811 { SessionID LLUUID }
812 }
813 {
814 QueryData Single
815 { QueryID LLUUID }
816 { QueryText Variable 1 }
817 { QueryFlags U32 }
818 { Category U32 }
819 { QueryStart S32 }
820 }
821 }
822  
823 // DirClassifiedQueryBackend sim->dataserver
824 // reliable
825 {
826 DirClassifiedQueryBackend Low 40 Trusted Zerocoded
827 {
828 AgentData Single
829 { AgentID LLUUID }
830 }
831 {
832 QueryData Single
833 { QueryID LLUUID }
834 { QueryText Variable 1 }
835 { QueryFlags U32 }
836 { Category U32 }
837 { EstateID U32 }
838 { Godlike BOOL }
839 { QueryStart S32 }
840 }
841 }
842  
843 // DirClassifiedReply dataserver->sim->viewer
844 // reliable
845 {
846 DirClassifiedReply Low 41 Trusted Zerocoded
847 {
848 AgentData Single
849 { AgentID LLUUID }
850 }
851 {
852 QueryData Single
853 { QueryID LLUUID }
854 }
855 {
856 QueryReplies Variable
857 { ClassifiedID LLUUID }
858 { Name Variable 1 }
859 { ClassifiedFlags U8 }
860 { CreationDate U32 }
861 { ExpirationDate U32 }
862 { PriceForListing S32 }
863 }
864 {
865 StatusData Variable
866 { Status U32 }
867 }
868 }
869  
870  
871 // AvatarClassifiedReply
872 // dataserver -> simulator -> viewer
873 // Send the header information for this avatar's classifieds
874 // This fills in the tabs of the Classifieds panel.
875 // reliable
876 {
877 AvatarClassifiedReply Low 42 Trusted Unencoded
878 {
879 AgentData Single
880 { AgentID LLUUID }
881 { TargetID LLUUID }
882 }
883 {
884 Data Variable
885 { ClassifiedID LLUUID }
886 { Name Variable 1 }
887 }
888 }
889  
890  
891 // ClassifiedInfoRequest
892 // viewer -> simulator
893 // simulator -> dataserver
894 // reliable
895 {
896 ClassifiedInfoRequest Low 43 NotTrusted Zerocoded
897 {
898 AgentData Single
899 { AgentID LLUUID }
900 { SessionID LLUUID }
901 }
902 {
903 Data Single
904 { ClassifiedID LLUUID }
905 }
906 }
907  
908  
909 // ClassifiedInfoReply
910 // dataserver -> simulator
911 // simulator -> viewer
912 // reliable
913 {
914 ClassifiedInfoReply Low 44 Trusted Unencoded
915 {
916 AgentData Single
917 { AgentID LLUUID }
918 }
919 {
920 Data Single
921 { ClassifiedID LLUUID }
922 { CreatorID LLUUID }
923 { CreationDate U32 }
924 { ExpirationDate U32 }
925 { Category U32 }
926 { Name Variable 1 }
927 { Desc Variable 2 }
928 { ParcelID LLUUID }
929 { ParentEstate U32 }
930 { SnapshotID LLUUID }
931 { SimName Variable 1 }
932 { PosGlobal LLVector3d }
933 { ParcelName Variable 1 }
934 { ClassifiedFlags U8 }
935 { PriceForListing S32 }
936 }
937 }
938  
939  
940 // ClassifiedInfoUpdate
941 // Update a classified. ParcelID and EstateID are set
942 // on the simulator as the message passes through.
943 // viewer -> simulator -> dataserver
944 // reliable
945 {
946 ClassifiedInfoUpdate Low 45 NotTrusted Unencoded
947 {
948 AgentData Single
949 { AgentID LLUUID }
950 { SessionID LLUUID }
951 }
952 {
953 Data Single
954 { ClassifiedID LLUUID }
955 { Category U32 }
956 { Name Variable 1 }
957 { Desc Variable 2 }
958 { ParcelID LLUUID }
959 { ParentEstate U32 }
960 { SnapshotID LLUUID }
961 { PosGlobal LLVector3d }
962 { ClassifiedFlags U8 }
963 { PriceForListing S32 }
964 }
965 }
966  
967  
968 // ClassifiedDelete
969 // Delete a classified from the database.
970 // viewer -> simulator -> dataserver
971 // reliable
972 {
973 ClassifiedDelete Low 46 NotTrusted Unencoded
974 {
975 AgentData Single
976 { AgentID LLUUID }
977 { SessionID LLUUID }
978 }
979 {
980 Data Single
981 { ClassifiedID LLUUID }
982 }
983 }
984  
985 // ClassifiedGodDelete
986 // Delete a classified from the database.
987 // QueryID is needed so database can send a repeat list of
988 // classified.
989 // viewer -> simulator -> dataserver
990 // reliable
991 {
992 ClassifiedGodDelete Low 47 NotTrusted Unencoded
993 {
994 AgentData Single
995 { AgentID LLUUID }
996 { SessionID LLUUID }
997 }
998 {
999 Data Single
1000 { ClassifiedID LLUUID }
1001 { QueryID LLUUID }
1002 }
1003 }
1004  
1005  
1006 // DirLandQuery viewer->sim
1007 // Special query for the land for sale/auction panel.
1008 // reliable
1009 {
1010 DirLandQuery Low 48 NotTrusted Zerocoded
1011 {
1012 AgentData Single
1013 { AgentID LLUUID }
1014 { SessionID LLUUID }
1015 }
1016 {
1017 QueryData Single
1018 { QueryID LLUUID }
1019 { QueryFlags U32 }
1020 { SearchType U32 }
1021 { Price S32 }
1022 { Area S32 }
1023 { QueryStart S32 }
1024 }
1025 }
1026  
1027 // DirLandQueryBackend sim->dataserver
1028 // Special query for the land for sale/auction panel.
1029 {
1030 DirLandQueryBackend Low 49 Trusted Zerocoded
1031 {
1032 AgentData Single
1033 { AgentID LLUUID }
1034 }
1035 {
1036 QueryData Single
1037 { QueryID LLUUID }
1038 { QueryFlags U32 }
1039 { SearchType U32 }
1040 { Price S32 }
1041 { Area S32 }
1042 { QueryStart S32 }
1043 { EstateID U32 }
1044 { Godlike BOOL }
1045 }
1046 }
1047  
1048 // DirLandReply
1049 // dataserver -> simulator -> viewer
1050 // reliable
1051 {
1052 DirLandReply Low 50 Trusted Zerocoded UDPDeprecated
1053 {
1054 AgentData Single
1055 { AgentID LLUUID }
1056 }
1057 {
1058 QueryData Single
1059 { QueryID LLUUID }
1060 }
1061 {
1062 QueryReplies Variable
1063 { ParcelID LLUUID }
1064 { Name Variable 1 }
1065 { Auction BOOL }
1066 { ForSale BOOL }
1067 { SalePrice S32 }
1068 { ActualArea S32 }
1069 //{ ProductSKU Variable 1 }
1070 }
1071 }
1072  
1073 // DEPRECATED: DirPopularQuery viewer->sim
1074 // Special query for the land for sale/auction panel.
1075 // reliable
1076 {
1077 DirPopularQuery Low 51 NotTrusted Zerocoded Deprecated
1078 {
1079 AgentData Single
1080 { AgentID LLUUID }
1081 { SessionID LLUUID }
1082 }
1083 {
1084 QueryData Single
1085 { QueryID LLUUID }
1086 { QueryFlags U32 }
1087 }
1088 }
1089  
1090 // DEPRECATED: DirPopularQueryBackend sim->dataserver
1091 // Special query for the land for sale/auction panel.
1092 // reliable
1093 {
1094 DirPopularQueryBackend Low 52 Trusted Zerocoded Deprecated
1095 {
1096 AgentData Single
1097 { AgentID LLUUID }
1098 }
1099 {
1100 QueryData Single
1101 { QueryID LLUUID }
1102 { QueryFlags U32 }
1103 { EstateID U32 }
1104 { Godlike BOOL }
1105 }
1106 }
1107  
1108 // DEPRECATED: DirPopularReply
1109 // dataserver -> simulator -> viewer
1110 // reliable
1111 {
1112 DirPopularReply Low 53 Trusted Zerocoded Deprecated
1113 {
1114 AgentData Single
1115 { AgentID LLUUID }
1116 }
1117 {
1118 QueryData Single
1119 { QueryID LLUUID }
1120 }
1121 {
1122 QueryReplies Variable
1123 { ParcelID LLUUID }
1124 { Name Variable 1 }
1125 { Dwell F32 }
1126 }
1127 }
1128  
1129 // ParcelInfoRequest
1130 // viewer -> simulator -> dataserver
1131 // reliable
1132 {
1133 ParcelInfoRequest Low 54 NotTrusted Unencoded
1134 {
1135 AgentData Single
1136 { AgentID LLUUID }
1137 { SessionID LLUUID }
1138 }
1139 {
1140 Data Single
1141 { ParcelID LLUUID }
1142 }
1143 }
1144  
1145 // ParcelInfoReply
1146 // dataserver -> simulator -> viewer
1147 // reliable
1148 {
1149 ParcelInfoReply Low 55 Trusted Zerocoded
1150 {
1151 AgentData Single
1152 { AgentID LLUUID }
1153 }
1154 {
1155 Data Single
1156 { ParcelID LLUUID }
1157 { OwnerID LLUUID }
1158 { Name Variable 1 }
1159 { Desc Variable 1 }
1160 { ActualArea S32 }
1161 { BillableArea S32 }
1162 { Flags U8 }
1163 { GlobalX F32 } // meters
1164 { GlobalY F32 } // meters
1165 { GlobalZ F32 } // meters
1166 { SimName Variable 1 }
1167 { SnapshotID LLUUID }
1168 { Dwell F32 }
1169 { SalePrice S32 }
1170 { AuctionID S32 }
1171 }
1172 }
1173  
1174  
1175 // ParcelObjectOwnersRequest
1176 // viewer -> simulator
1177 // reliable
1178 {
1179 ParcelObjectOwnersRequest Low 56 NotTrusted Unencoded
1180 {
1181 AgentData Single
1182 { AgentID LLUUID }
1183 { SessionID LLUUID }
1184 }
1185 {
1186 ParcelData Single
1187 { LocalID S32 }
1188 }
1189 }
1190  
1191  
1192 // ParcelObjectOwnersReply
1193 // simulator -> viewer
1194 // reliable
1195 {
1196 ParcelObjectOwnersReply Low 57 Trusted Zerocoded UDPDeprecated
1197 {
1198 Data Variable
1199 { OwnerID LLUUID }
1200 { IsGroupOwned BOOL }
1201 { Count S32 }
1202 { OnlineStatus BOOL }
1203 }
1204 }
1205  
1206 // GroupNoticeListRequest
1207 // viewer -> simulator -> dataserver
1208 // reliable
1209 {
1210 GroupNoticesListRequest Low 58 NotTrusted Unencoded
1211 {
1212 AgentData Single
1213 { AgentID LLUUID }
1214 { SessionID LLUUID }
1215 }
1216 {
1217 Data Single
1218 { GroupID LLUUID }
1219 }
1220 }
1221  
1222 // GroupNoticesListReply
1223 // dataserver -> simulator -> viewer
1224 // reliable
1225 {
1226 GroupNoticesListReply Low 59 Trusted Unencoded
1227 {
1228 AgentData Single
1229 { AgentID LLUUID }
1230 { GroupID LLUUID }
1231 }
1232 {
1233 Data Variable
1234 { NoticeID LLUUID }
1235 { Timestamp U32 }
1236 { FromName Variable 2 }
1237 { Subject Variable 2 }
1238 { HasAttachment BOOL }
1239 { AssetType U8 }
1240 }
1241 }
1242  
1243 // GroupNoticeRequest
1244 // viewer -> simulator
1245 // simulator -> dataserver
1246 // reliable
1247 {
1248 GroupNoticeRequest Low 60 NotTrusted Unencoded
1249 {
1250 AgentData Single
1251 { AgentID LLUUID }
1252 { SessionID LLUUID }
1253 }
1254 {
1255 Data Single
1256 { GroupNoticeID LLUUID }
1257 }
1258 }
1259  
1260 // GroupNoticeAdd
1261 // Add a group notice.
1262 // simulator -> dataserver
1263 // reliable
1264 {
1265 GroupNoticeAdd Low 61 Trusted Unencoded
1266 {
1267 AgentData Single
1268 { AgentID LLUUID }
1269 }
1270 {
1271 MessageBlock Single
1272 { ToGroupID LLUUID }
1273 { ID LLUUID }
1274 { Dialog U8 }
1275 { FromAgentName Variable 1 }
1276 { Message Variable 2 }
1277 { BinaryBucket Variable 2 }
1278 }
1279 }
1280  
1281  
1282 // ****************************************************************************
1283 // Teleport messages
1284 //
1285 // The teleport messages are numerous, so I have attempted to give them a
1286 // consistent naming convention. Since there is a bit of glob pattern
1287 // aliasing, the rules are applied in order.
1288 //
1289 // Teleport* - viewer->sim or sim->viewer message which announces a
1290 // teleportation request, progrees, start, or end.
1291 // Data* - sim->data or data->sim trusted message.
1292 // Space* - sim->space or space->sim trusted messaging
1293 // *Lure - A lure message to pass around information.
1294 //
1295 // All actual viewer teleports will begin with a Teleport* message and
1296 // end in a TeleportStart, TeleportLocal or TeleportFailed message. The TeleportFailed
1297 // message may be returned by any process and must be routed through the
1298 // teleporting agent's simulator and back to the viewer.
1299 // ****************************************************************************
1300  
1301 // TeleportRequest
1302 // viewer -> sim specifying exact teleport destination
1303 {
1304 TeleportRequest Low 62 NotTrusted Unencoded
1305 {
1306 AgentData Single
1307 { AgentID LLUUID }
1308 { SessionID LLUUID }
1309 }
1310 {
1311 Info Single
1312 { RegionID LLUUID }
1313 { Position LLVector3 }
1314 { LookAt LLVector3 }
1315 }
1316 }
1317  
1318 // TeleportLocationRequest
1319 // viewer -> sim specifying exact teleport destination
1320 {
1321 TeleportLocationRequest Low 63 NotTrusted Unencoded
1322 {
1323 AgentData Single
1324 { AgentID LLUUID }
1325 { SessionID LLUUID }
1326 }
1327 {
1328 Info Single
1329 { RegionHandle U64 }
1330 { Position LLVector3 }
1331 { LookAt LLVector3 }
1332 }
1333 }
1334  
1335 // TeleportLocal
1336 // sim -> viewer reply telling the viewer that we've successfully TP'd
1337 // to somewhere else within the sim
1338 {
1339 TeleportLocal Low 64 Trusted Unencoded
1340 {
1341 Info Single
1342 { AgentID LLUUID }
1343 { LocationID U32 }
1344 { Position LLVector3 } // region
1345 { LookAt LLVector3 }
1346 { TeleportFlags U32 }
1347 }
1348 }
1349  
1350 // TeleportLandmarkRequest viewer->sim
1351 // teleport to landmark asset ID destination. use LLUUD::null for home.
1352 {
1353 TeleportLandmarkRequest Low 65 NotTrusted Zerocoded
1354 {
1355 Info Single
1356 { AgentID LLUUID }
1357 { SessionID LLUUID }
1358 { LandmarkID LLUUID }
1359 }
1360 }
1361  
1362 // TeleportProgress sim->viewer
1363 // Tell the agent how the teleport is going.
1364 {
1365 TeleportProgress Low 66 Trusted Unencoded
1366 {
1367 AgentData Single
1368 { AgentID LLUUID }
1369 }
1370 {
1371 Info Single
1372 { TeleportFlags U32 }
1373 { Message Variable 1 } // string
1374 }
1375 }
1376  
1377 // DataHomeLocationRequest sim->data
1378 // Request
1379 {
1380 DataHomeLocationRequest Low 67 Trusted Zerocoded
1381 {
1382 Info Single
1383 { AgentID LLUUID }
1384 { KickedFromEstateID U32 }
1385 }
1386 {
1387 AgentInfo Single
1388 { AgentEffectiveMaturity U32 }
1389 }
1390 }
1391  
1392 // DataHomeLocationReply data->sim
1393 // response is the location of agent home.
1394 {
1395 DataHomeLocationReply Low 68 Trusted Unencoded
1396 {
1397 Info Single
1398 { AgentID LLUUID }
1399 { RegionHandle U64 }
1400 { Position LLVector3 } // region coords
1401 { LookAt LLVector3 }
1402 }
1403 }
1404  
1405  
1406 // TeleportFinish sim->viewer
1407 // called when all of the information has been collected and readied for
1408 // the agent.
1409 {
1410 TeleportFinish Low 69 Trusted Unencoded UDPBlackListed
1411 {
1412 Info Single
1413 { AgentID LLUUID }
1414 { LocationID U32 }
1415 { SimIP IPADDR }
1416 { SimPort IPPORT }
1417 { RegionHandle U64 }
1418 { SeedCapability Variable 2 } // URL
1419 { SimAccess U8 }
1420 { TeleportFlags U32 }
1421 }
1422 }
1423  
1424 // StartLure viewer->sim
1425 // Sent from viewer to the local simulator to lure target id to near
1426 // agent id. This will generate an instant message that will be routed
1427 // through the space server and out to the userserver. When that IM
1428 // goes through the userserver and the TargetID is online, the
1429 // userserver will send an InitializeLure to the spaceserver. When that
1430 // packet is acked, the original instant message is finally forwarded to
1431 // TargetID.
1432 {
1433 StartLure Low 70 NotTrusted Unencoded
1434 {
1435 AgentData Single
1436 { AgentID LLUUID }
1437 { SessionID LLUUID }
1438 }
1439 {
1440 Info Single
1441 { LureType U8 }
1442 { Message Variable 1 }
1443 }
1444 {
1445 TargetData Variable
1446 { TargetID LLUUID }
1447 }
1448 }
1449  
1450 // TeleportLureRequest viewer->sim
1451 // Message from target of lure to begin the teleport process on the
1452 // local simulator.
1453 {
1454 TeleportLureRequest Low 71 NotTrusted Unencoded
1455 {
1456 Info Single
1457 { AgentID LLUUID }
1458 { SessionID LLUUID }
1459 { LureID LLUUID }
1460 { TeleportFlags U32 }
1461 }
1462 }
1463  
1464 // TeleportCancel viewer->sim
1465 // reliable
1466 {
1467 TeleportCancel Low 72 NotTrusted Unencoded
1468 {
1469 Info Single
1470 { AgentID LLUUID }
1471 { SessionID LLUUID }
1472 }
1473 }
1474  
1475  
1476 // TeleportStart sim->viewer
1477 // announce a successful teleport request to the viewer.
1478 {
1479 TeleportStart Low 73 Trusted Unencoded
1480 {
1481 Info Single
1482 { TeleportFlags U32 }
1483 }
1484 }
1485  
1486 // TeleportFailed somewhere->sim->viewer
1487 // announce failure of teleport request
1488 {
1489 TeleportFailed Low 74 Trusted Unencoded
1490 {
1491 Info Single
1492 { AgentID LLUUID }
1493 { Reason Variable 1 } // string
1494 }
1495 {
1496 AlertInfo Variable
1497 { Message Variable 1 } // string id
1498 { ExtraParams Variable 1 } // llsd extra parameters
1499 }
1500 }
1501  
1502  
1503 // ***************************************************************************
1504 // Viewer to Simulator Messages
1505 // ***************************************************************************
1506  
1507 // Undo
1508 {
1509 Undo Low 75 NotTrusted Unencoded
1510 {
1511 AgentData Single
1512 { AgentID LLUUID }
1513 { SessionID LLUUID }
1514 { GroupID LLUUID }
1515 }
1516 {
1517 ObjectData Variable
1518 { ObjectID LLUUID }
1519 }
1520 }
1521  
1522  
1523 // Redo
1524 {
1525 Redo Low 76 NotTrusted Unencoded
1526 {
1527 AgentData Single
1528 { AgentID LLUUID }
1529 { SessionID LLUUID }
1530 { GroupID LLUUID }
1531 }
1532 {
1533 ObjectData Variable
1534 { ObjectID LLUUID }
1535 }
1536 }
1537  
1538 // UndoLand
1539 {
1540 UndoLand Low 77 NotTrusted Unencoded
1541 {
1542 AgentData Single
1543 { AgentID LLUUID }
1544 { SessionID LLUUID }
1545 }
1546 }
1547  
1548  
1549 // AgentPause - viewer occasionally will block, inform simulator of this fact
1550 {
1551 AgentPause Low 78 NotTrusted Unencoded
1552 {
1553 AgentData Single
1554 { AgentID LLUUID }
1555 { SessionID LLUUID }
1556 { SerialNum U32 } // U32, used by both pause and resume. Non-increasing numbers are ignored.
1557 }
1558 }
1559  
1560 // AgentResume - unblock the agent
1561 {
1562 AgentResume Low 79 NotTrusted Unencoded
1563 {
1564 AgentData Single
1565 { AgentID LLUUID }
1566 { SessionID LLUUID }
1567 { SerialNum U32 } // U32, used by both pause and resume. Non-increasing numbers are ignored.
1568 }
1569 }
1570  
1571  
1572 // AgentUpdate - Camera info sent from viewer to simulator
1573 // or, more simply, two axes and compute cross product
1574 // State data is temporary, indicates current behavior state:
1575 // 0 = walking
1576 // 1 = mouselook
1577 // 2 = typing
1578 //
1579 // Center is region local (JNC 8.16.2001)
1580 // Camera center is region local (JNC 8.29.2001)
1581 {
1582 AgentUpdate High 4 NotTrusted Zerocoded
1583 {
1584 AgentData Single
1585 { AgentID LLUUID }
1586 { SessionID LLUUID }
1587 { BodyRotation LLQuaternion }
1588 { HeadRotation LLQuaternion }
1589 { State U8 }
1590 { CameraCenter LLVector3 }
1591 { CameraAtAxis LLVector3 }
1592 { CameraLeftAxis LLVector3 }
1593 { CameraUpAxis LLVector3 }
1594 { Far F32 }
1595 { ControlFlags U32 }
1596 { Flags U8 }
1597 }
1598 }
1599  
1600 // ChatFromViewer
1601 // Specifies the text to be said and the "type",
1602 // normal speech, shout, whisper.
1603 // with the specified radius
1604 {
1605 ChatFromViewer Low 80 NotTrusted Zerocoded
1606 {
1607 AgentData Single
1608 { AgentID LLUUID }
1609 { SessionID LLUUID }
1610 }
1611 {
1612 ChatData Single
1613 { Message Variable 2 }
1614 { Type U8 }
1615 { Channel S32 }
1616 }
1617 }
1618  
1619  
1620 // AgentThrottle
1621 {
1622 AgentThrottle Low 81 NotTrusted Zerocoded
1623 {
1624 AgentData Single
1625 { AgentID LLUUID }
1626 { SessionID LLUUID }
1627 { CircuitCode U32 }
1628 }
1629 {
1630 Throttle Single
1631 { GenCounter U32 }
1632 { Throttles Variable 1 }
1633 }
1634 }
1635  
1636  
1637 // AgentFOV - Update to agent's field of view, angle is vertical, single F32 float in radians
1638 {
1639 AgentFOV Low 82 NotTrusted Unencoded
1640 {
1641 AgentData Single
1642 { AgentID LLUUID }
1643 { SessionID LLUUID }
1644 { CircuitCode U32 }
1645 }
1646 {
1647 FOVBlock Single
1648 { GenCounter U32 }
1649 { VerticalAngle F32 }
1650 }
1651 }
1652  
1653  
1654 // AgentHeightWidth - Update to height and aspect, sent as height/width to save space
1655 // Usually sent when window resized or created
1656 {
1657 AgentHeightWidth Low 83 NotTrusted Unencoded
1658 {
1659 AgentData Single
1660 { AgentID LLUUID }
1661 { SessionID LLUUID }
1662 { CircuitCode U32 }
1663 }
1664 {
1665 HeightWidthBlock Single
1666 { GenCounter U32 }
1667 { Height U16 }
1668 { Width U16 }
1669 }
1670 }
1671  
1672  
1673 // AgentSetAppearance - Update to agent appearance
1674 {
1675 AgentSetAppearance Low 84 NotTrusted Zerocoded
1676 {
1677 AgentData Single
1678 { AgentID LLUUID }
1679 { SessionID LLUUID }
1680 { SerialNum U32 } // U32, Increases every time the appearance changes. A value of 0 resets.
1681 { Size LLVector3 }
1682 }
1683 {
1684 WearableData Variable
1685 { CacheID LLUUID }
1686 { TextureIndex U8 }
1687 }
1688 {
1689 ObjectData Single
1690 { TextureEntry Variable 2 }
1691 }
1692 {
1693 VisualParam Variable
1694 { ParamValue U8 }
1695 }
1696 }
1697  
1698 // AgentAnimation - Update animation state
1699 // viewer --> simulator
1700 {
1701 AgentAnimation High 5 NotTrusted Unencoded
1702 {
1703 AgentData Single
1704 { AgentID LLUUID }
1705 { SessionID LLUUID }
1706 }
1707 {
1708 AnimationList Variable
1709 { AnimID LLUUID }
1710 { StartAnim BOOL }
1711 }
1712 {
1713 PhysicalAvatarEventList Variable
1714 { TypeData Variable 1 }
1715 }
1716 }
1717  
1718 // AgentRequestSit - Try to sit on an object
1719 {
1720 AgentRequestSit High 6 NotTrusted Zerocoded
1721 {
1722 AgentData Single
1723 { AgentID LLUUID }
1724 { SessionID LLUUID }
1725 }
1726 {
1727 TargetObject Single
1728 { TargetID LLUUID }
1729 { Offset LLVector3 }
1730 }
1731 }
1732  
1733 // AgentSit - Actually sit on object
1734 {
1735 AgentSit High 7 NotTrusted Unencoded
1736 {
1737 AgentData Single
1738 { AgentID LLUUID }
1739 { SessionID LLUUID }
1740 }
1741 }
1742  
1743  
1744 // quit message sent between simulators
1745 {
1746 AgentQuitCopy Low 85 NotTrusted Unencoded
1747 {
1748 AgentData Single
1749 { AgentID LLUUID }
1750 { SessionID LLUUID }
1751 }
1752 {
1753 FuseBlock Single
1754 { ViewerCircuitCode U32 }
1755 }
1756 }
1757  
1758  
1759 // Request Image - Sent by the viewer to request a specified image at a specified resolution
1760  
1761 {
1762 RequestImage High 8 NotTrusted Unencoded
1763 {
1764 AgentData Single
1765 { AgentID LLUUID }
1766 { SessionID LLUUID }
1767 }
1768 {
1769 RequestImage Variable
1770 { Image LLUUID }
1771 { DiscardLevel S8 }
1772 { DownloadPriority F32 }
1773 { Packet U32 }
1774 { Type U8 }
1775 }
1776 }
1777  
1778 // ImageNotInDatabase
1779 // Simulator informs viewer that a requsted image definitely does not exist in the asset database
1780 {
1781 ImageNotInDatabase Low 86 Trusted Unencoded
1782 {
1783 ImageID Single
1784 { ID LLUUID }
1785 }
1786 }
1787  
1788 // RebakeAvatarTextures
1789 // simulator -> viewer request when a temporary baked avatar texture is not found
1790 {
1791 RebakeAvatarTextures Low 87 Trusted Unencoded
1792 {
1793 TextureData Single
1794 { TextureID LLUUID }
1795 }
1796 }
1797  
1798  
1799 // SetAlwaysRun
1800 // Lets the viewer choose between running and walking
1801 {
1802 SetAlwaysRun Low 88 NotTrusted Unencoded
1803 {
1804 AgentData Single
1805 { AgentID LLUUID }
1806 { SessionID LLUUID }
1807 { AlwaysRun BOOL }
1808 }
1809 }
1810  
1811 // ObjectAdd - create new object in the world
1812 // Simulator will assign ID and send message back to signal
1813 // object actually created.
1814 //
1815 // AddFlags (see also ObjectUpdate)
1816 // 0x01 - use physics
1817 // 0x02 - create selected
1818 //
1819 // If only one ImageID is sent for an object type that has more than
1820 // one face, the same image is repeated on each subsequent face.
1821 //
1822 // Data field is opaque type-specific data for this object
1823 {
1824 ObjectAdd Medium 1 NotTrusted Zerocoded
1825 {
1826 AgentData Single
1827 { AgentID LLUUID }
1828 { SessionID LLUUID }
1829 { GroupID LLUUID }
1830 }
1831 {
1832 ObjectData Single
1833 { PCode U8 }
1834 { Material U8 }
1835 { AddFlags U32 } // see object_flags.h
1836  
1837 { PathCurve U8 }
1838 { ProfileCurve U8 }
1839 { PathBegin U16 } // 0 to 1, quanta = 0.01
1840 { PathEnd U16 } // 0 to 1, quanta = 0.01
1841 { PathScaleX U8 } // 0 to 1, quanta = 0.01
1842 { PathScaleY U8 } // 0 to 1, quanta = 0.01
1843 { PathShearX U8 } // -.5 to .5, quanta = 0.01
1844 { PathShearY U8 } // -.5 to .5, quanta = 0.01
1845 { PathTwist S8 } // -1 to 1, quanta = 0.01
1846 { PathTwistBegin S8 } // -1 to 1, quanta = 0.01
1847 { PathRadiusOffset S8 } // -1 to 1, quanta = 0.01
1848 { PathTaperX S8 } // -1 to 1, quanta = 0.01
1849 { PathTaperY S8 } // -1 to 1, quanta = 0.01
1850 { PathRevolutions U8 } // 0 to 3, quanta = 0.015
1851 { PathSkew S8 } // -1 to 1, quanta = 0.01
1852 { ProfileBegin U16 } // 0 to 1, quanta = 0.01
1853 { ProfileEnd U16 } // 0 to 1, quanta = 0.01
1854 { ProfileHollow U16 } // 0 to 1, quanta = 0.01
1855  
1856 { BypassRaycast U8 }
1857 { RayStart LLVector3 }
1858 { RayEnd LLVector3 }
1859 { RayTargetID LLUUID }
1860 { RayEndIsIntersection U8 }
1861  
1862 { Scale LLVector3 }
1863 { Rotation LLQuaternion }
1864  
1865 { State U8 }
1866 }
1867 }
1868  
1869  
1870 // ObjectDelete
1871 // viewer -> simulator
1872 {
1873 ObjectDelete Low 89 NotTrusted Zerocoded
1874 {
1875 AgentData Single
1876 { AgentID LLUUID }
1877 { SessionID LLUUID }
1878 { Force BOOL } // BOOL, god trying to force delete
1879 }
1880 {
1881 ObjectData Variable
1882 { ObjectLocalID U32 }
1883 }
1884 }
1885  
1886  
1887 // ObjectDuplicate
1888 // viewer -> simulator
1889 // Makes a copy of a set of objects, offset by a given amount
1890 {
1891 ObjectDuplicate Low 90 NotTrusted Zerocoded
1892 {
1893 AgentData Single
1894 { AgentID LLUUID }
1895 { SessionID LLUUID }
1896 { GroupID LLUUID }
1897 }
1898 {
1899 SharedData Single
1900 { Offset LLVector3 }
1901 { DuplicateFlags U32 } // see object_flags.h
1902 }
1903 {
1904 ObjectData Variable
1905 { ObjectLocalID U32 }
1906 }
1907 }
1908  
1909  
1910 // ObjectDuplicateOnRay
1911 // viewer -> simulator
1912 // Makes a copy of an object, using the add object raycast
1913 // code to abut it to other objects.
1914 {
1915 ObjectDuplicateOnRay Low 91 NotTrusted Zerocoded
1916 {
1917 AgentData Single
1918 { AgentID LLUUID }
1919 { SessionID LLUUID }
1920 { GroupID LLUUID }
1921 { RayStart LLVector3 } // region local
1922 { RayEnd LLVector3 } // region local
1923 { BypassRaycast BOOL }
1924 { RayEndIsIntersection BOOL }
1925 { CopyCenters BOOL }
1926 { CopyRotates BOOL }
1927 { RayTargetID LLUUID }
1928 { DuplicateFlags U32 } // see object_flags.h
1929 }
1930 {
1931 ObjectData Variable
1932 { ObjectLocalID U32 }
1933 }
1934 }
1935  
1936  
1937 // MultipleObjectUpdate
1938 // viewer -> simulator
1939 // updates position, rotation and scale in one message
1940 // positions sent as region-local floats
1941 {
1942 MultipleObjectUpdate Medium 2 NotTrusted Zerocoded
1943 {
1944 AgentData Single
1945 { AgentID LLUUID }
1946 { SessionID LLUUID }
1947 }
1948 {
1949 ObjectData Variable
1950 { ObjectLocalID U32 }
1951 { Type U8 }
1952 { Data Variable 1 } // custom type
1953 }
1954 }
1955  
1956 // RequestMultipleObjects
1957 // viewer -> simulator
1958 // reliable
1959 //
1960 // When the viewer gets a local_id/crc for an object that
1961 // it either doesn't have, or doesn't have the current version
1962 // of, it sends this upstream get get an update.
1963 //
1964 // CacheMissType 0 => full object (viewer doesn't have it)
1965 // CacheMissType 1 => CRC mismatch only
1966 {
1967 RequestMultipleObjects Medium 3 NotTrusted Zerocoded
1968 {
1969 AgentData Single
1970 { AgentID LLUUID }
1971 { SessionID LLUUID }
1972 }
1973 {
1974 ObjectData Variable
1975 { CacheMissType U8 }
1976 { ID U32 }
1977 }
1978 }
1979  
1980  
1981 // DEPRECATED: ObjectPosition
1982 // == Old Behavior ==
1983 // Set the position on objects
1984 //
1985 // == Reason for deprecation ==
1986 // Unused code path was removed in the move to Havok4
1987 // Object position, scale and rotation messages were already unified
1988 // to MultipleObjectUpdate and this message was unused cruft.
1989 //
1990 // == New Location ==
1991 // MultipleObjectUpdate can be used instead.
1992 {
1993 ObjectPosition Medium 4 NotTrusted Zerocoded Deprecated
1994 {
1995 AgentData Single
1996 { AgentID LLUUID }
1997 { SessionID LLUUID }
1998 }
1999 {
2000 ObjectData Variable
2001 { ObjectLocalID U32 }
2002 { Position LLVector3 } // region
2003 }
2004 }
2005  
2006  
2007 // DEPRECATED: ObjectScale
2008 // == Old Behavior ==
2009 // Set the scale on objects
2010 //
2011 // == Reason for deprecation ==
2012 // Unused code path was removed in the move to Havok4
2013 // Object position, scale and rotation messages were already unified
2014 // to MultipleObjectUpdate and this message was unused cruft.
2015 //
2016 // == New Location ==
2017 // MultipleObjectUpdate can be used instead.
2018 {
2019 ObjectScale Low 92 NotTrusted Zerocoded Deprecated
2020 {
2021 AgentData Single
2022 { AgentID LLUUID }
2023 { SessionID LLUUID }
2024 }
2025 {
2026 ObjectData Variable
2027 { ObjectLocalID U32 }
2028 { Scale LLVector3 }
2029 }
2030 }
2031  
2032  
2033 // ObjectRotation
2034 // viewer -> simulator
2035 {
2036 ObjectRotation Low 93 NotTrusted Zerocoded
2037 {
2038 AgentData Single
2039 { AgentID LLUUID }
2040 { SessionID LLUUID }
2041 }
2042 {
2043 ObjectData Variable
2044 { ObjectLocalID U32 }
2045 { Rotation LLQuaternion }
2046 }
2047 }
2048  
2049  
2050 // ObjectFlagUpdate
2051 // viewer -> simulator
2052 {
2053 ObjectFlagUpdate Low 94 NotTrusted Zerocoded
2054 {
2055 AgentData Single
2056 { AgentID LLUUID }
2057 { SessionID LLUUID }
2058 { ObjectLocalID U32 }
2059 { UsePhysics BOOL }
2060 { IsTemporary BOOL }
2061 { IsPhantom BOOL }
2062 { CastsShadows BOOL }
2063 }
2064 {
2065 ExtraPhysics Variable
2066 { PhysicsShapeType U8 }
2067 { Density F32 }
2068 { Friction F32 }
2069 { Restitution F32 }
2070 { GravityMultiplier F32 }
2071  
2072 }
2073 }
2074  
2075  
2076 // ObjectClickAction
2077 // viewer -> simulator
2078 {
2079 ObjectClickAction Low 95 NotTrusted Zerocoded
2080 {
2081 AgentData Single
2082 { AgentID LLUUID }
2083 { SessionID LLUUID }
2084 }
2085 {
2086 ObjectData Variable
2087 { ObjectLocalID U32 }
2088 { ClickAction U8 }
2089 }
2090 }
2091  
2092  
2093 // ObjectImage
2094 // viewer -> simulator
2095 {
2096 ObjectImage Low 96 NotTrusted Zerocoded
2097 {
2098 AgentData Single
2099 { AgentID LLUUID }
2100 { SessionID LLUUID }
2101 }
2102 {
2103 ObjectData Variable
2104 { ObjectLocalID U32 }
2105 { MediaURL Variable 1 }
2106 { TextureEntry Variable 2 }
2107 }
2108 }
2109  
2110  
2111 {
2112 ObjectMaterial Low 97 NotTrusted Zerocoded
2113 {
2114 AgentData Single
2115 { AgentID LLUUID }
2116 { SessionID LLUUID }
2117 }
2118 {
2119 ObjectData Variable
2120 { ObjectLocalID U32 }
2121 { Material U8 }
2122 }
2123 }
2124  
2125  
2126 {
2127 ObjectShape Low 98 NotTrusted Zerocoded
2128 {
2129 AgentData Single
2130 { AgentID LLUUID }
2131 { SessionID LLUUID }
2132 }
2133 {
2134 ObjectData Variable
2135 { ObjectLocalID U32 }
2136 { PathCurve U8 }
2137 { ProfileCurve U8 }
2138 { PathBegin U16 } // 0 to 1, quanta = 0.01
2139 { PathEnd U16 } // 0 to 1, quanta = 0.01
2140 { PathScaleX U8 } // 0 to 1, quanta = 0.01
2141 { PathScaleY U8 } // 0 to 1, quanta = 0.01
2142 { PathShearX U8 } // -.5 to .5, quanta = 0.01
2143 { PathShearY U8 } // -.5 to .5, quanta = 0.01
2144 { PathTwist S8 } // -1 to 1, quanta = 0.01
2145 { PathTwistBegin S8 } // -1 to 1, quanta = 0.01
2146 { PathRadiusOffset S8 } // -1 to 1, quanta = 0.01
2147 { PathTaperX S8 } // -1 to 1, quanta = 0.01
2148 { PathTaperY S8 } // -1 to 1, quanta = 0.01
2149 { PathRevolutions U8 } // 0 to 3, quanta = 0.015
2150 { PathSkew S8 } // -1 to 1, quanta = 0.01
2151 { ProfileBegin U16 } // 0 to 1, quanta = 0.01
2152 { ProfileEnd U16 } // 0 to 1, quanta = 0.01
2153 { ProfileHollow U16 } // 0 to 1, quanta = 0.01
2154 }
2155 }
2156  
2157 {
2158 ObjectExtraParams Low 99 NotTrusted Zerocoded
2159 {
2160 AgentData Single
2161 { AgentID LLUUID }
2162 { SessionID LLUUID }
2163 }
2164 {
2165 ObjectData Variable
2166 { ObjectLocalID U32 }
2167 { ParamType U16 }
2168 { ParamInUse BOOL }
2169 { ParamSize U32 }
2170 { ParamData Variable 1 }
2171 }
2172 }
2173  
2174  
2175 // ObjectOwner
2176 // To make public, set OwnerID to LLUUID::null.
2177 // TODO: Eliminate god-bit. Maybe not. God-bit is ok, because it's
2178 // known on the server.
2179 {
2180 ObjectOwner Low 100 NotTrusted Zerocoded
2181 {
2182 AgentData Single
2183 { AgentID LLUUID }
2184 { SessionID LLUUID }
2185 }
2186 {
2187 HeaderData Single
2188 { Override BOOL } // BOOL, God-bit.
2189 { OwnerID LLUUID }
2190 { GroupID LLUUID }
2191 }
2192 {
2193 ObjectData Variable
2194 { ObjectLocalID U32 }
2195 }
2196 }
2197  
2198 // ObjectGroup
2199 // To make the object part of no group, set GroupID = LLUUID::null.
2200 // This call only works if objectid.ownerid == agentid.
2201 {
2202 ObjectGroup Low 101 NotTrusted Zerocoded
2203 {
2204 AgentData Single
2205 { AgentID LLUUID }
2206 { SessionID LLUUID }
2207 { GroupID LLUUID }
2208 }
2209 {
2210 ObjectData Variable
2211 { ObjectLocalID U32 }
2212 }
2213 }
2214  
2215 // Attempt to buy an object. This will only pack root objects.
2216 {
2217 ObjectBuy Low 102 NotTrusted Zerocoded
2218 {
2219 AgentData Single
2220 { AgentID LLUUID }
2221 { SessionID LLUUID }
2222 { GroupID LLUUID }
2223 { CategoryID LLUUID } // folder where it goes (if derezed)
2224 }
2225 {
2226 ObjectData Variable
2227 { ObjectLocalID U32 }
2228 { SaleType U8 } // U8 -> EForSale
2229 { SalePrice S32 }
2230 }
2231 }
2232  
2233 // viewer -> simulator
2234  
2235 // buy object inventory. If the transaction succeeds, it will add
2236 // inventory to the agent, and potentially remove the original.
2237 {
2238 BuyObjectInventory Low 103 NotTrusted Zerocoded
2239 {
2240 AgentData Single
2241 { AgentID LLUUID }
2242 { SessionID LLUUID }
2243 }
2244 {
2245 Data Single
2246 { ObjectID LLUUID }
2247 { ItemID LLUUID }
2248 { FolderID LLUUID }
2249 }
2250 }
2251  
2252 // sim -> viewer
2253 // Used to propperly handle buying asset containers
2254 {
2255 DerezContainer Low 104 Trusted Zerocoded
2256 {
2257 Data Single
2258 { ObjectID LLUUID }
2259 { Delete BOOL } // BOOL
2260 }
2261 }
2262  
2263 // ObjectPermissions
2264 // Field - see llpermissionsflags.h
2265 // If Set is true, tries to turn on bits in mask.
2266 // If set is false, tries to turn off bits in mask.
2267 // BUG: This just forces the permissions field.
2268 {
2269 ObjectPermissions Low 105 NotTrusted Zerocoded
2270 {
2271 AgentData Single
2272 { AgentID LLUUID }
2273 { SessionID LLUUID }
2274 }
2275 {
2276 HeaderData Single
2277 { Override BOOL } // BOOL, God-bit.
2278 }
2279 {
2280 ObjectData Variable
2281 { ObjectLocalID U32 }
2282 { Field U8 }
2283 { Set U8 }
2284 { Mask U32 }
2285 }
2286 }
2287  
2288 // set object sale information
2289 {
2290 ObjectSaleInfo Low 106 NotTrusted Zerocoded
2291 {
2292 AgentData Single
2293 { AgentID LLUUID }
2294 { SessionID LLUUID }
2295 }
2296 {
2297 ObjectData Variable
2298 { LocalID U32 }
2299 { SaleType U8 } // U8 -> EForSale
2300 { SalePrice S32 }
2301 }
2302 }
2303  
2304  
2305 // set object names
2306 {
2307 ObjectName Low 107 NotTrusted Zerocoded
2308 {
2309 AgentData Single
2310 { AgentID LLUUID }
2311 { SessionID LLUUID }
2312 }
2313 {
2314 ObjectData Variable
2315 { LocalID U32 }
2316 { Name Variable 1 }
2317 }
2318 }
2319  
2320 // set object descriptions
2321 {
2322 ObjectDescription Low 108 NotTrusted Zerocoded
2323 {
2324 AgentData Single
2325 { AgentID LLUUID }
2326 { SessionID LLUUID }
2327 }
2328 {
2329 ObjectData Variable
2330 { LocalID U32 }
2331 { Description Variable 1 }
2332 }
2333 }
2334  
2335 // set object category
2336 {
2337 ObjectCategory Low 109 NotTrusted Zerocoded
2338 {
2339 AgentData Single
2340 { AgentID LLUUID }
2341 { SessionID LLUUID }
2342 }
2343 {
2344 ObjectData Variable
2345 { LocalID U32 }
2346 { Category U32 }
2347 }
2348 }
2349  
2350 // ObjectSelect
2351 // Variable object data because rectangular selection can
2352 // generate a large list very quickly.
2353 {
2354 ObjectSelect Low 110 NotTrusted Zerocoded
2355 {
2356 AgentData Single
2357 { AgentID LLUUID }
2358 { SessionID LLUUID }
2359 }
2360 {
2361 ObjectData Variable
2362 { ObjectLocalID U32 }
2363 }
2364  
2365 }
2366  
2367  
2368 // ObjectDeselect
2369 {
2370 ObjectDeselect Low 111 NotTrusted Zerocoded
2371 {
2372 AgentData Single
2373 { AgentID LLUUID }
2374 { SessionID LLUUID }
2375 }
2376 {
2377 ObjectData Variable
2378 { ObjectLocalID U32 }
2379 }
2380  
2381 }
2382  
2383 // ObjectAttach
2384 {
2385 ObjectAttach Low 112 NotTrusted Zerocoded
2386 {
2387 AgentData Single
2388 { AgentID LLUUID }
2389 { SessionID LLUUID }
2390 { AttachmentPoint U8 }
2391 }
2392 {
2393 ObjectData Variable
2394 { ObjectLocalID U32 }
2395 { Rotation LLQuaternion }
2396 }
2397 }
2398  
2399 // ObjectDetach -- derezzes an attachment, marking its item in your inventory as not "(worn)"
2400 {
2401 ObjectDetach Low 113 NotTrusted Unencoded
2402 {
2403 AgentData Single
2404 { AgentID LLUUID }
2405 { SessionID LLUUID }
2406 }
2407 {
2408 ObjectData Variable
2409 { ObjectLocalID U32 }
2410 }
2411 }
2412  
2413  
2414 // ObjectDrop -- drops an attachment from your avatar onto the ground
2415 {
2416 ObjectDrop Low 114 NotTrusted Unencoded
2417 {
2418 AgentData Single
2419 { AgentID LLUUID }
2420 { SessionID LLUUID }
2421 }
2422 {
2423 ObjectData Variable
2424 { ObjectLocalID U32 }
2425 }
2426 }
2427  
2428  
2429 // ObjectLink
2430 {
2431 ObjectLink Low 115 NotTrusted Unencoded
2432 {
2433 AgentData Single
2434 { AgentID LLUUID }
2435 { SessionID LLUUID }
2436 }
2437 {
2438 ObjectData Variable
2439 { ObjectLocalID U32 }
2440 }
2441 }
2442  
2443 // ObjectDelink
2444 {
2445 ObjectDelink Low 116 NotTrusted Unencoded
2446 {
2447 AgentData Single
2448 { AgentID LLUUID }
2449 { SessionID LLUUID }
2450 }
2451 {
2452 ObjectData Variable
2453 { ObjectLocalID U32 }
2454 }
2455 }
2456  
2457  
2458 // ObjectGrab
2459 {
2460 ObjectGrab Low 117 NotTrusted Zerocoded
2461 {
2462 AgentData Single
2463 { AgentID LLUUID }
2464 { SessionID LLUUID }
2465 }
2466 {
2467 ObjectData Single
2468 { LocalID U32 }
2469 { GrabOffset LLVector3 }
2470 }
2471 {
2472 SurfaceInfo Variable
2473 { UVCoord LLVector3 }
2474 { STCoord LLVector3 }
2475 { FaceIndex S32 }
2476 { Position LLVector3 }
2477 { Normal LLVector3 }
2478 { Binormal LLVector3 }
2479 }
2480 }
2481  
2482  
2483 // ObjectGrabUpdate
2484 // TODO: Quantize this data, reduce message size.
2485 // TimeSinceLast could go to 1 byte, since capped
2486 // at 100 on sim.
2487 {
2488 ObjectGrabUpdate Low 118 NotTrusted Zerocoded
2489 {
2490 AgentData Single
2491 { AgentID LLUUID }
2492 { SessionID LLUUID }
2493 }
2494 {
2495 ObjectData Single
2496 { ObjectID LLUUID }
2497 { GrabOffsetInitial LLVector3 } // LLVector3
2498 { GrabPosition LLVector3 } // LLVector3, region local
2499 { TimeSinceLast U32 }
2500 }
2501 {
2502 SurfaceInfo Variable
2503 { UVCoord LLVector3 }
2504 { STCoord LLVector3 }
2505 { FaceIndex S32 }
2506 { Position LLVector3 }
2507 { Normal LLVector3 }
2508 { Binormal LLVector3 }
2509 }
2510  
2511 }
2512  
2513  
2514 // ObjectDeGrab
2515 {
2516 ObjectDeGrab Low 119 NotTrusted Unencoded
2517 {
2518 AgentData Single
2519 { AgentID LLUUID }
2520 { SessionID LLUUID }
2521 }
2522 {
2523 ObjectData Single
2524 { LocalID U32 }
2525 }
2526 {
2527 SurfaceInfo Variable
2528 { UVCoord LLVector3 }
2529 { STCoord LLVector3 }
2530 { FaceIndex S32 }
2531 { Position LLVector3 }
2532 { Normal LLVector3 }
2533 { Binormal LLVector3 }
2534 }
2535 }
2536  
2537  
2538 // ObjectSpinStart
2539 {
2540 ObjectSpinStart Low 120 NotTrusted Zerocoded
2541 {
2542 AgentData Single
2543 { AgentID LLUUID }
2544 { SessionID LLUUID }
2545 }
2546 {
2547 ObjectData Single
2548 { ObjectID LLUUID }
2549 }
2550 }
2551  
2552  
2553 // ObjectSpinUpdate
2554 {
2555 ObjectSpinUpdate Low 121 NotTrusted Zerocoded
2556 {
2557 AgentData Single
2558 { AgentID LLUUID }
2559 { SessionID LLUUID }
2560 }
2561 {
2562 ObjectData Single
2563 { ObjectID LLUUID }
2564 { Rotation LLQuaternion }
2565 }
2566 }
2567  
2568  
2569 // ObjectSpinStop
2570 {
2571 ObjectSpinStop Low 122 NotTrusted Zerocoded
2572 {
2573 AgentData Single
2574 { AgentID LLUUID }
2575 { SessionID LLUUID }
2576 }
2577 {
2578 ObjectData Single
2579 { ObjectID LLUUID }
2580 }
2581 }
2582  
2583 // Export selected objects
2584 // viewer->sim
2585 {
2586 ObjectExportSelected Low 123 NotTrusted Zerocoded
2587 {
2588 AgentData Single
2589 { AgentID LLUUID }
2590 { RequestID LLUUID }
2591 { VolumeDetail S16 }
2592 }
2593 {
2594 ObjectData Variable
2595 { ObjectID LLUUID }
2596 }
2597 }
2598  
2599  
2600 // ModifyLand - sent to modify a piece of land on a simulator.
2601 // viewer -> sim
2602 {
2603 ModifyLand Low 124 NotTrusted Zerocoded
2604 {
2605 AgentData Single
2606 { AgentID LLUUID }
2607 { SessionID LLUUID }
2608 }
2609 {
2610 ModifyBlock Single
2611 { Action U8 }
2612 { BrushSize U8 }
2613 { Seconds F32 }
2614 { Height F32 }
2615 }
2616 {
2617 ParcelData Variable
2618 { LocalID S32 }
2619 { West F32 }
2620 { South F32 }
2621 { East F32 }
2622 { North F32 }
2623 }
2624 {
2625 ModifyBlockExtended Variable
2626 { BrushSize F32 }
2627 }
2628 }
2629  
2630  
2631 // VelocityInterpolateOn
2632 // viewer->sim
2633 // requires administrative access
2634 {
2635 VelocityInterpolateOn Low 125 NotTrusted Unencoded
2636 {
2637 AgentData Single
2638 { AgentID LLUUID }
2639 { SessionID LLUUID }
2640 }
2641 }
2642  
2643  
2644 // VelocityInterpolateOff
2645 // viewer->sim
2646 // requires administrative access
2647 {
2648 VelocityInterpolateOff Low 126 NotTrusted Unencoded
2649 {
2650 AgentData Single
2651 { AgentID LLUUID }
2652 { SessionID LLUUID }
2653 }
2654 }
2655  
2656 // Save State
2657 // viewer->sim
2658 // requires administrative access
2659 {
2660 StateSave Low 127 NotTrusted Unencoded
2661 {
2662 AgentData Single
2663 { AgentID LLUUID }
2664 { SessionID LLUUID }
2665 }
2666 {
2667 DataBlock Single
2668 { Filename Variable 1 }
2669 }
2670 }
2671  
2672 // ReportAutosaveCrash
2673 // sim->launcher
2674 {
2675 ReportAutosaveCrash Low 128 NotTrusted Unencoded
2676 {
2677 AutosaveData Single
2678 { PID S32 }
2679 { Status S32 }
2680 }
2681 }
2682  
2683 // SimWideDeletes
2684 {
2685 SimWideDeletes Low 129 NotTrusted Unencoded
2686 {
2687 AgentData Single
2688 { AgentID LLUUID }
2689 { SessionID LLUUID }
2690 }
2691 {
2692 DataBlock Single
2693 { TargetID LLUUID }
2694 { Flags U32 }
2695 }
2696 }
2697  
2698 // RequestObjectPropertiesFamily
2699 // Ask for extended information, such as creator, permissions, resources, etc.
2700 // Medium frequency because it is driven by mouse hovering over objects, which
2701 // occurs at high rates.
2702 {
2703 RequestObjectPropertiesFamily Medium 5 NotTrusted Zerocoded
2704 {
2705 AgentData Single
2706 { AgentID LLUUID }
2707 { SessionID LLUUID }
2708 }
2709 {
2710 ObjectData Single
2711 { RequestFlags U32 }
2712 { ObjectID LLUUID }
2713 }
2714 }
2715  
2716  
2717 // Track agent - this information is used when sending out the
2718 // coarse location update so that we know who you are tracking.
2719 // To stop tracking - send a null uuid as the prey.
2720 {
2721 TrackAgent Low 130 NotTrusted Unencoded
2722 {
2723 AgentData Single
2724 { AgentID LLUUID }
2725 { SessionID LLUUID }
2726 }
2727 {
2728 TargetData Single
2729 { PreyID LLUUID }
2730 }
2731 }
2732  
2733 // end viewer to simulator section
2734  
2735 {
2736 ViewerStats Low 131 NotTrusted Zerocoded UDPDeprecated
2737 {
2738 AgentData Single
2739 { AgentID LLUUID }
2740 { SessionID LLUUID }
2741 { IP IPADDR }
2742 { StartTime U32 }
2743 { RunTime F32 } // F32
2744 { SimFPS F32 } // F32
2745 { FPS F32 } // F32
2746 { AgentsInView U8 } //
2747 { Ping F32 } // F32
2748 { MetersTraveled F64 }
2749 { RegionsVisited S32 }
2750 { SysRAM U32 }
2751 { SysOS Variable 1 } // String
2752 { SysCPU Variable 1 } // String
2753 { SysGPU Variable 1 } // String
2754 }
2755  
2756 {
2757 DownloadTotals Single
2758 { World U32 }
2759 { Objects U32 }
2760 { Textures U32 }
2761 }
2762  
2763 {
2764 NetStats Multiple 2
2765 { Bytes U32 }
2766 { Packets U32 }
2767 { Compressed U32 }
2768 { Savings U32 }
2769 }
2770  
2771 {
2772 FailStats Single
2773 { SendPacket U32 }
2774 { Dropped U32 }
2775 { Resent U32 }
2776 { FailedResends U32 }
2777 { OffCircuit U32 }
2778 { Invalid U32 }
2779 }
2780  
2781 {
2782 MiscStats Variable
2783 { Type U32 }
2784 { Value F64 }
2785 }
2786 }
2787  
2788 // ScriptAnswerYes
2789 // reliable
2790 {
2791 ScriptAnswerYes Low 132 NotTrusted Unencoded
2792 {
2793 AgentData Single
2794 { AgentID LLUUID }
2795 { SessionID LLUUID }
2796 }
2797 {
2798 Data Single
2799 { TaskID LLUUID }
2800 { ItemID LLUUID }
2801 { Questions S32 }
2802 }
2803 }
2804  
2805  
2806 // complaint/bug-report
2807 // reliable
2808 {
2809 UserReport Low 133 NotTrusted Zerocoded
2810 {
2811 AgentData Single
2812 { AgentID LLUUID }
2813 { SessionID LLUUID }
2814 }
2815 {
2816 ReportData Single
2817 { ReportType U8 } // BUG=1, COMPLAINT=2
2818 { Category U8 } // see sequence.user_report_category
2819 { Position LLVector3 } // screenshot position, region-local
2820 { CheckFlags U8 } // checkboxflags
2821 { ScreenshotID LLUUID }
2822 { ObjectID LLUUID }
2823 { AbuserID LLUUID }
2824 { AbuseRegionName Variable 1 }
2825 { AbuseRegionID LLUUID }
2826 { Summary Variable 1 }
2827 { Details Variable 2 }
2828 { VersionString Variable 1 }
2829 }
2830 }
2831  
2832  
2833 // ***************************************************************************
2834 // Simulator to Viewer Messages
2835 // ***************************************************************************
2836  
2837 // AlertMessage
2838 // Specifies the text to be posted in an alert dialog
2839 {
2840 AlertMessage Low 134 Trusted Unencoded
2841 {
2842 AlertData Single
2843 { Message Variable 1 }
2844 }
2845 {
2846 AlertInfo Variable
2847 { Message Variable 1 }
2848 { ExtraParams Variable 1 }
2849 }
2850 }
2851  
2852 // Send an AlertMessage to the named agent.
2853 // usually dataserver->simulator
2854 {
2855 AgentAlertMessage Low 135 Trusted Unencoded
2856 {
2857 AgentData Single
2858 { AgentID LLUUID }
2859 }
2860 {
2861 AlertData Single
2862 { Modal BOOL }
2863 { Message Variable 1 }
2864 }
2865 }
2866  
2867  
2868 // MeanCollisionAlert
2869 // Specifies the text to be posted in an alert dialog
2870 {
2871 MeanCollisionAlert Low 136 Trusted Zerocoded
2872 {
2873 MeanCollision Variable
2874 { Victim LLUUID }
2875 { Perp LLUUID }
2876 { Time U32 }
2877 { Mag F32 }
2878 { Type U8 }
2879 }
2880 }
2881  
2882 // ViewerFrozenMessage
2883 // Specifies the text to be posted in an alert dialog
2884 {
2885 ViewerFrozenMessage Low 137 Trusted Unencoded
2886 {
2887 FrozenData Single
2888 { Data BOOL }
2889 }
2890 }
2891  
2892 // Health Message
2893 // Tells viewer what agent health is
2894 {
2895 HealthMessage Low 138 Trusted Zerocoded
2896 {
2897 HealthData Single
2898 { Health F32 }
2899 }
2900 }
2901  
2902 // ChatFromSimulator
2903 // Chat text to appear on a user's screen
2904 // Position is region local.
2905 // Viewer can optionally use position to animate
2906 // If audible is CHAT_NOT_AUDIBLE, message will not be valid
2907 {
2908 ChatFromSimulator Low 139 Trusted Unencoded
2909 {
2910 ChatData Single
2911 { FromName Variable 1 }
2912 { SourceID LLUUID } // agent id or object id
2913 { OwnerID LLUUID } // object's owner
2914 { SourceType U8 }
2915 { ChatType U8 }
2916 { Audible U8 }
2917 { Position LLVector3 }
2918 { Message Variable 2 } // UTF-8 text
2919 }
2920 }
2921  
2922  
2923 // Simulator statistics packet (goes out to viewer and dataserver/spaceserver)
2924 {
2925 SimStats Low 140 Trusted Unencoded
2926 {
2927 Region Single
2928 { RegionX U32 }
2929 { RegionY U32 }
2930 { RegionFlags U32 }
2931 { ObjectCapacity U32 }
2932 }
2933 {
2934 Stat Variable
2935 { StatID U32 }
2936 { StatValue F32 }
2937 }
2938 {
2939 PidStat Single
2940 { PID S32 }
2941 }
2942 {
2943 RegionInfo Variable
2944 { RegionFlagsExtended U64 }
2945 }
2946 }
2947  
2948 // viewer -> sim
2949 // reliable
2950 {
2951 RequestRegionInfo Low 141 NotTrusted Unencoded
2952 {
2953 AgentData Single
2954 { AgentID LLUUID }
2955 { SessionID LLUUID }
2956 }
2957 }
2958  
2959 // RegionInfo
2960 // Used to populate UI for both region/estate floater
2961 // and god tools floater
2962 // sim -> viewer
2963 // reliable
2964 {
2965 RegionInfo Low 142 NotTrusted Zerocoded
2966 {
2967 AgentData Single
2968 { AgentID LLUUID }
2969 { SessionID LLUUID }
2970 }
2971 {
2972 RegionInfo Single
2973 { SimName Variable 1 } // string
2974 { EstateID U32 }
2975 { ParentEstateID U32 }
2976 { RegionFlags U32 }
2977 { SimAccess U8 }
2978 { MaxAgents U8 }
2979 { BillableFactor F32 }
2980 { ObjectBonusFactor F32 }
2981 { WaterHeight F32 }
2982 { TerrainRaiseLimit F32 }
2983 { TerrainLowerLimit F32 }
2984 { PricePerMeter S32 }
2985 { RedirectGridX S32 }
2986 { RedirectGridY S32 }
2987 { UseEstateSun BOOL }
2988 { SunHour F32 } // last value set by estate or region controls JC
2989 }
2990 {
2991 RegionInfo2 Single
2992 { ProductSKU Variable 1 } // string
2993 { ProductName Variable 1 } // string
2994 { MaxAgents32 U32 } // Identical to RegionInfo.MaxAgents but allows greater range
2995 { HardMaxAgents U32 }
2996 { HardMaxObjects U32 }
2997 }
2998 {
2999 RegionInfo3 Variable
3000 { RegionFlagsExtended U64 }
3001 }
3002 }
3003  
3004 // GodUpdateRegionInfo
3005 // Sent from viewer to sim after a god has changed some
3006 // of the parameters in the god tools floater
3007 // viewer -> sim
3008 // reliable
3009 {
3010 GodUpdateRegionInfo Low 143 NotTrusted Zerocoded
3011 {
3012 AgentData Single
3013 { AgentID LLUUID }
3014 { SessionID LLUUID }
3015 }
3016 {
3017 RegionInfo Single
3018 { SimName Variable 1 } // string
3019 { EstateID U32 }
3020 { ParentEstateID U32 }
3021 { RegionFlags U32 }
3022 { BillableFactor F32 }
3023 { PricePerMeter S32 }
3024 { RedirectGridX S32 }
3025 { RedirectGridY S32 }
3026 }
3027 {
3028 RegionInfo2 Variable
3029 { RegionFlagsExtended U64 }
3030 }
3031 }
3032  
3033 //NearestLandingRegionRequest
3034 //sim->dataserver
3035 //Sent from the region to the data server
3036 //to request the most up to date region for the requesting
3037 //region to redirect teleports to
3038 {
3039 NearestLandingRegionRequest Low 144 Trusted Unencoded
3040 {
3041 RequestingRegionData Single
3042 { RegionHandle U64 }
3043 }
3044 }
3045  
3046 //NearestLandingPointReply
3047 //dataserver->sim
3048 //Sent from the data server to a region in reply
3049 //to the redirectregion request stating which region
3050 //the requesting region should redirect teleports to if necessary
3051 {
3052 NearestLandingRegionReply Low 145 Trusted Unencoded
3053 {
3054 LandingRegionData Single
3055 { RegionHandle U64 }
3056 }
3057 }
3058  
3059 //NearestLandingPointUpdated
3060 //sim->dataserver
3061 //Sent from a region to the data server
3062 //to have the dataserver note/clear in the db
3063 //that the region has updated it's nearest landing point
3064 {
3065 NearestLandingRegionUpdated Low 146 Trusted Unencoded
3066 {
3067 RegionData Single
3068 { RegionHandle U64 }
3069 }
3070 }
3071  
3072  
3073 //TeleportLandingStatusChanged
3074 //sim->dataserver
3075 //Sent from the region to the data server
3076 //to note that the region's teleportation landing status has changed
3077 {
3078 TeleportLandingStatusChanged Low 147 Trusted Unencoded
3079 {
3080 RegionData Single
3081 { RegionHandle U64 }
3082 }
3083 }
3084  
3085 // RegionHandshake
3086 // Sent by region to viewer after it has received UseCircuitCode
3087 // from that viewer.
3088 // sim -> viewer
3089 // reliable
3090 {
3091 RegionHandshake Low 148 Trusted Zerocoded
3092 {
3093 RegionInfo Single
3094 { RegionFlags U32 }
3095 { SimAccess U8 }
3096 { SimName Variable 1 } // string
3097 { SimOwner LLUUID }
3098 { IsEstateManager BOOL } // this agent, for this sim
3099 { WaterHeight F32 }
3100 { BillableFactor F32 }
3101 { CacheID LLUUID }
3102 { TerrainBase0 LLUUID }
3103 { TerrainBase1 LLUUID }
3104 { TerrainBase2 LLUUID }
3105 { TerrainBase3 LLUUID }
3106 { TerrainDetail0 LLUUID }
3107 { TerrainDetail1 LLUUID }
3108 { TerrainDetail2 LLUUID }
3109 { TerrainDetail3 LLUUID }
3110 { TerrainStartHeight00 F32 }
3111 { TerrainStartHeight01 F32 }
3112 { TerrainStartHeight10 F32 }
3113 { TerrainStartHeight11 F32 }
3114 { TerrainHeightRange00 F32 }
3115 { TerrainHeightRange01 F32 }
3116 { TerrainHeightRange10 F32 }
3117 { TerrainHeightRange11 F32 }
3118 }
3119 {
3120 RegionInfo2 Single
3121 { RegionID LLUUID }
3122 }
3123 {
3124 RegionInfo3 Single
3125 { CPUClassID S32 }
3126 { CPURatio S32 }
3127 { ColoName Variable 1 } // string
3128 { ProductSKU Variable 1 } // string
3129 { ProductName Variable 1 } // string
3130 }
3131 {
3132 RegionInfo4 Variable
3133 { RegionFlagsExtended U64 }
3134 { RegionProtocols U64 }
3135 }
3136 }
3137  
3138 // RegionHandshakeReply
3139 // viewer -> sim
3140 // reliable
3141 // Sent after viewer has initialized the (pre-existing)
3142 // LLViewerRegion with the name, access level, etc. and
3143 // has loaded the cache for the region.
3144 // After the simulator receives this, it will start sending
3145 // data about objects.
3146 {
3147 RegionHandshakeReply Low 149 NotTrusted Zerocoded
3148 {
3149 AgentData Single
3150 { AgentID LLUUID }
3151 { SessionID LLUUID }
3152 }
3153 {
3154 RegionInfo Single
3155 { Flags U32 }
3156 }
3157 }
3158  
3159 // The CoarseLocationUpdate message is sent to notify the viewer of
3160 // the location of mappable objects in the region. 1 meter resolution is
3161 // sufficient for this. The index block is used to show where you are,
3162 // and where someone you are tracking is located. They are -1 if not
3163 // applicable.
3164 {
3165 CoarseLocationUpdate Medium 6 Trusted Unencoded
3166 {
3167 Location Variable
3168 { X U8 }
3169 { Y U8 }
3170 { Z U8 } // Z in meters / 4
3171 }
3172 {
3173 Index Single
3174 { You S16 }
3175 { Prey S16 }
3176 }
3177 {
3178 AgentData Variable
3179 { AgentID LLUUID }
3180 }
3181 }
3182  
3183 // ImageData - sent to viewer to transmit information about an image
3184 {
3185 ImageData High 9 Trusted Unencoded
3186 {
3187 ImageID Single
3188 { ID LLUUID }
3189 { Codec U8 }
3190 { Size U32 }
3191 { Packets U16 }
3192 }
3193 {
3194 ImageData Single
3195 { Data Variable 2 }
3196 }
3197 }
3198  
3199 // ImagePacket - follow on image data for images having > 1 packet of data
3200 {
3201 ImagePacket High 10 Trusted Unencoded
3202 {
3203 ImageID Single
3204 { ID LLUUID }
3205 { Packet U16 }
3206 }
3207 {
3208 ImageData Single
3209 { Data Variable 2 }
3210 }
3211 }
3212  
3213 // LayerData - Sent to viewer - encodes layer data
3214  
3215 {
3216 LayerData High 11 Trusted Unencoded
3217 {
3218 LayerID Single
3219 { Type U8 }
3220  
3221 }
3222 {
3223 LayerData Single
3224 { Data Variable 2 }
3225 }
3226 }
3227  
3228 // ObjectUpdate - Sent by objects from the simulator to the viewer
3229 //
3230 // If only one ImageID is sent for an object type that has more than
3231 // one face, the same image is repeated on each subsequent face.
3232 //
3233 // NameValue is a list of name-value strings, separated by \n characters,
3234 // terminated by \0
3235 //
3236 // Data is type-specific opaque data for this object
3237 {
3238 ObjectUpdate High 12 Trusted Zerocoded
3239 {
3240 RegionData Single
3241 { RegionHandle U64 }
3242 { TimeDilation U16 }
3243 }
3244 {
3245 ObjectData Variable
3246 { ID U32 }
3247 { State U8 }
3248  
3249 { FullID LLUUID }
3250 { CRC U32 } // TEMPORARY HACK FOR JAMES
3251 { PCode U8 }
3252 { Material U8 }
3253 { ClickAction U8 }
3254 { Scale LLVector3 }
3255 { ObjectData Variable 1 }
3256  
3257 { ParentID U32 }
3258 { UpdateFlags U32 } // U32, see object_flags.h
3259  
3260 { PathCurve U8 }
3261 { ProfileCurve U8 }
3262 { PathBegin U16 } // 0 to 1, quanta = 0.01
3263 { PathEnd U16 } // 0 to 1, quanta = 0.01
3264 { PathScaleX U8 } // 0 to 1, quanta = 0.01
3265 { PathScaleY U8 } // 0 to 1, quanta = 0.01
3266 { PathShearX U8 } // -.5 to .5, quanta = 0.01
3267 { PathShearY U8 } // -.5 to .5, quanta = 0.01
3268 { PathTwist S8 } // -1 to 1, quanta = 0.01
3269 { PathTwistBegin S8 } // -1 to 1, quanta = 0.01
3270 { PathRadiusOffset S8 } // -1 to 1, quanta = 0.01
3271 { PathTaperX S8 } // -1 to 1, quanta = 0.01
3272 { PathTaperY S8 } // -1 to 1, quanta = 0.01
3273 { PathRevolutions U8 } // 0 to 3, quanta = 0.015
3274 { PathSkew S8 } // -1 to 1, quanta = 0.01
3275 { ProfileBegin U16 } // 0 to 1, quanta = 0.01
3276 { ProfileEnd U16 } // 0 to 1, quanta = 0.01
3277 { ProfileHollow U16 } // 0 to 1, quanta = 0.01
3278  
3279 { TextureEntry Variable 2 }
3280 { TextureAnim Variable 1 }
3281  
3282 { NameValue Variable 2 }
3283 { Data Variable 2 }
3284 { Text Variable 1 } // llSetText() hovering text
3285 { TextColor Fixed 4 } // actually, a LLColor4U
3286 { MediaURL Variable 1 } // URL for web page, movie, etc.
3287  
3288 // Info for particle systems
3289 { PSBlock Variable 1 }
3290  
3291 // Extra parameters
3292 { ExtraParams Variable 1 }
3293  
3294 // info for looped attached sounds
3295 // because these are almost always all zero
3296 // the hit after zero-coding is only 2 bytes
3297 // not the 42 you see here
3298 { Sound LLUUID }
3299 { OwnerID LLUUID } // HACK object's owner id, only set if non-null sound, for muting
3300 { Gain F32 }
3301 { Flags U8 }
3302 { Radius F32 } // cutoff radius
3303  
3304 // joint info -- is sent in the update of each joint-child-root
3305 { JointType U8 }
3306 { JointPivot LLVector3 }
3307 { JointAxisOrAnchor LLVector3 }
3308 }
3309 }
3310  
3311  
3312 // ObjectUpdateCompressed
3313 {
3314 ObjectUpdateCompressed High 13 Trusted Unencoded
3315 {
3316 RegionData Single
3317 { RegionHandle U64 }
3318 { TimeDilation U16 }
3319 }
3320 {
3321 ObjectData Variable
3322 { UpdateFlags U32 }
3323 { Data Variable 2 }
3324 }
3325 }
3326  
3327 // ObjectUpdateCached
3328 // reliable
3329 {
3330 ObjectUpdateCached High 14 Trusted Unencoded
3331 {
3332 RegionData Single
3333 { RegionHandle U64 }
3334 { TimeDilation U16 }
3335 }
3336 {
3337 ObjectData Variable
3338 { ID U32 }
3339 { CRC U32 }
3340 { UpdateFlags U32 }
3341 }
3342 }
3343  
3344 // packed terse object update format
3345 {
3346 ImprovedTerseObjectUpdate High 15 Trusted Unencoded
3347 {
3348 RegionData Single
3349 { RegionHandle U64 }
3350 { TimeDilation U16 }
3351 }
3352 {
3353 ObjectData Variable
3354 { Data Variable 1 }
3355 { TextureEntry Variable 2 }
3356 }
3357 }
3358  
3359 // KillObject - Sent by objects to the viewer to tell them to kill themselves
3360  
3361 {
3362 KillObject High 16 Trusted Unencoded
3363 {
3364 ObjectData Variable
3365 { ID U32 }
3366 }
3367 }
3368  
3369  
3370 // CrossedRegion - new way to tell a viewer it has gone across a region
3371 // boundary
3372 {
3373 CrossedRegion Medium 7 Trusted Unencoded UDPBlackListed
3374 {
3375 AgentData Single
3376 { AgentID LLUUID }
3377 { SessionID LLUUID }
3378 }
3379 {
3380 RegionData Single
3381 { SimIP IPADDR }
3382 { SimPort IPPORT }
3383 { RegionHandle U64 }
3384 { SeedCapability Variable 2 } // URL
3385 }
3386 {
3387 Info Single
3388 { Position LLVector3 }
3389 { LookAt LLVector3 }
3390 }
3391 }
3392  
3393 // SimulatorViewerTimeMessage - Allows viewer to resynch to world time
3394  
3395 {
3396 SimulatorViewerTimeMessage Low 150 Trusted Unencoded
3397 {
3398 TimeInfo Single
3399 { UsecSinceStart U64 }
3400 { SecPerDay U32 }
3401 { SecPerYear U32 }
3402 { SunDirection LLVector3 }
3403 { SunPhase F32 }
3404 { SunAngVelocity LLVector3 }
3405 }
3406 }
3407  
3408 // EnableSimulator - Preps a viewer to receive data from a simulator
3409  
3410 {
3411 EnableSimulator Low 151 Trusted Unencoded UDPBlackListed
3412 {
3413 SimulatorInfo Single
3414 { Handle U64 }
3415 { IP IPADDR }
3416 { Port IPPORT }
3417 }
3418 }
3419  
3420 // DisableThisSimulator - Tells a viewer not to expect data from this simulator anymore
3421  
3422 {
3423 DisableSimulator Low 152 Trusted Unencoded
3424 }
3425  
3426 // ConfirmEnableSimulator - A confirmation message sent from simulator to neighbors that the simulator
3427 // has successfully been enabled by the viewer
3428  
3429 {
3430 ConfirmEnableSimulator Medium 8 Trusted Unencoded
3431 {
3432 AgentData Single
3433 { AgentID LLUUID }
3434 { SessionID LLUUID }
3435 }
3436 }
3437  
3438 //-----------------------------------------------------------------------------
3439 // New Transfer system
3440 //-----------------------------------------------------------------------------
3441  
3442 // Request a new transfer (target->source)
3443 {
3444 TransferRequest Low 153 NotTrusted Zerocoded
3445 {
3446 TransferInfo Single
3447 { TransferID LLUUID }
3448 { ChannelType S32 }
3449 { SourceType S32 }
3450 { Priority F32 }
3451 { Params Variable 2 }
3452 }
3453 }
3454  
3455 // Return info about a transfer/initiate transfer (source->target)
3456 // Possibly should have a Params field like above
3457 {
3458 TransferInfo Low 154 NotTrusted Zerocoded
3459 {
3460 TransferInfo Single
3461 { TransferID LLUUID }
3462 { ChannelType S32 }
3463 { TargetType S32 }
3464 { Status S32 }
3465 { Size S32 }
3466 { Params Variable 2 }
3467 }
3468 }
3469  
3470 {
3471 TransferPacket High 17 NotTrusted Unencoded
3472 {
3473 TransferData Single
3474 { TransferID LLUUID }
3475 { ChannelType S32 }
3476 { Packet S32 }
3477 { Status S32 }
3478 { Data Variable 2 }
3479 }
3480 }
3481  
3482 // Abort a transfer in progress (either from target->source or source->target)
3483 {
3484 TransferAbort Low 155 NotTrusted Zerocoded
3485 {
3486 TransferInfo Single
3487 { TransferID LLUUID }
3488 { ChannelType S32 }
3489 }
3490 }
3491  
3492  
3493 //-----------------------------------------------------------------------------
3494 // General file transfer
3495 //-----------------------------------------------------------------------------
3496  
3497 // RequestXfer - request an arbitrary xfer
3498 {
3499 RequestXfer Low 156 NotTrusted Zerocoded
3500 {
3501 XferID Single
3502 { ID U64 }
3503 { Filename Variable 1 }
3504 { FilePath U8 } // ELLPath
3505 { DeleteOnCompletion BOOL } // BOOL
3506 { UseBigPackets BOOL } // BOOL
3507 { VFileID LLUUID }
3508 { VFileType S16 }
3509 }
3510 }
3511  
3512 // SendXferPacket - send an additional packet of an arbitrary xfer from sim -> viewer
3513 {
3514 SendXferPacket High 18 NotTrusted Unencoded
3515 {
3516 XferID Single
3517 { ID U64 }
3518 { Packet U32 }
3519 }
3520 {
3521 DataPacket Single
3522 { Data Variable 2 }
3523 }
3524 }
3525  
3526 // ConfirmXferPacket
3527 {
3528 ConfirmXferPacket High 19 NotTrusted Unencoded
3529 {
3530 XferID Single
3531 { ID U64 }
3532 { Packet U32 }
3533 }
3534 }
3535  
3536 // AbortXfer
3537 {
3538 AbortXfer Low 157 NotTrusted Unencoded
3539 {
3540 XferID Single
3541 { ID U64 }
3542 { Result S32 }
3543 }
3544 }
3545  
3546 //-----------------------------------------------------------------------------
3547 // Avatar information
3548 //-----------------------------------------------------------------------------
3549  
3550  
3551 // AvatarAnimation - Update animation state
3552 // simulator --> viewer
3553 {
3554 AvatarAnimation High 20 Trusted Unencoded
3555 {
3556 Sender Single
3557 { ID LLUUID }
3558 }
3559 {
3560 AnimationList Variable
3561 { AnimID LLUUID }
3562 { AnimSequenceID S32 }
3563 }
3564 {
3565 AnimationSourceList Variable
3566 { ObjectID LLUUID }
3567 }
3568 {
3569 PhysicalAvatarEventList Variable
3570 { TypeData Variable 1 }
3571 }
3572  
3573 }
3574  
3575 // AvatarAppearance - Update visual params
3576 {
3577 AvatarAppearance Low 158 Trusted Zerocoded
3578 {
3579 Sender Single
3580 { ID LLUUID }
3581 { IsTrial BOOL }
3582 }
3583 {
3584 ObjectData Single
3585 { TextureEntry Variable 2 }
3586 }
3587 {
3588 VisualParam Variable
3589 { ParamValue U8 }
3590 }
3591 {
3592 AppearanceData Variable
3593 { AppearanceVersion U8 }
3594 { CofVersion S32 }
3595 { Flags U32 }
3596 }
3597 {
3598 AppearanceHover Variable
3599 { HoverHeight LLVector3 }
3600 }
3601 }
3602  
3603 // AvatarSitResponse - response to a request to sit on an object
3604 {
3605 AvatarSitResponse High 21 Trusted Zerocoded
3606 {
3607 SitObject Single
3608 { ID LLUUID }
3609 }
3610 {
3611 SitTransform Single
3612 { AutoPilot BOOL }
3613 { SitPosition LLVector3 }
3614 { SitRotation LLQuaternion }
3615 { CameraEyeOffset LLVector3 }
3616 { CameraAtOffset LLVector3 }
3617 { ForceMouselook BOOL }
3618 }
3619 }
3620  
3621 // SetFollowCamProperties
3622 {
3623 SetFollowCamProperties Low 159 Trusted Unencoded
3624 {
3625 ObjectData Single
3626 { ObjectID LLUUID }
3627 }
3628 {
3629 CameraProperty Variable
3630 { Type S32 }
3631 { Value F32 }
3632 }
3633 }
3634  
3635 // ClearFollowCamProperties
3636 {
3637 ClearFollowCamProperties Low 160 Trusted Unencoded
3638 {
3639 ObjectData Single
3640 { ObjectID LLUUID }
3641 }
3642 }
3643  
3644 // CameraConstraint - new camera distance limit (based on collision with objects)
3645 {
3646 CameraConstraint High 22 Trusted Zerocoded
3647 {
3648 CameraCollidePlane Single
3649 { Plane LLVector4 }
3650 }
3651 }
3652  
3653 // ObjectProperties
3654 // Extended information such as creator, permissions, etc.
3655 // Medium because potentially driven by mouse hover events.
3656 {
3657 ObjectProperties Medium 9 Trusted Zerocoded
3658 {
3659 ObjectData Variable
3660 { ObjectID LLUUID }
3661 { CreatorID LLUUID }
3662 { OwnerID LLUUID }
3663 { GroupID LLUUID }
3664 { CreationDate U64 }
3665 { BaseMask U32 }
3666 { OwnerMask U32 }
3667 { GroupMask U32 }
3668 { EveryoneMask U32 }
3669 { NextOwnerMask U32 }
3670 { OwnershipCost S32 }
3671 // { TaxRate F32 } // F32
3672 { SaleType U8 } // U8 -> EForSale
3673 { SalePrice S32 }
3674 { AggregatePerms U8 }
3675 { AggregatePermTextures U8 }
3676 { AggregatePermTexturesOwner U8 }
3677 { Category U32 } // LLCategory
3678 { InventorySerial S16 } // S16
3679 { ItemID LLUUID }
3680 { FolderID LLUUID }
3681 { FromTaskID LLUUID }
3682 { LastOwnerID LLUUID }
3683 { Name Variable 1 }
3684 { Description Variable 1 }
3685 { TouchName Variable 1 }
3686 { SitName Variable 1 }
3687 { TextureID Variable 1 }
3688 }
3689 }
3690  
3691 // ObjectPropertiesFamily
3692 // Medium because potentially driven by mouse hover events.
3693 {
3694 ObjectPropertiesFamily Medium 10 Trusted Zerocoded
3695 {
3696 ObjectData Single
3697 { RequestFlags U32 }
3698 { ObjectID LLUUID }
3699 { OwnerID LLUUID }
3700 { GroupID LLUUID }
3701 { BaseMask U32 }
3702 { OwnerMask U32 }
3703 { GroupMask U32 }
3704 { EveryoneMask U32 }
3705 { NextOwnerMask U32 }
3706 { OwnershipCost S32 }
3707 { SaleType U8 } // U8 -> EForSale
3708 { SalePrice S32 }
3709 { Category U32 } // LLCategory
3710 { LastOwnerID LLUUID }
3711 { Name Variable 1 }
3712 { Description Variable 1 }
3713 }
3714 }
3715  
3716 // RequestPayPrice
3717 // viewer -> sim
3718 {
3719 RequestPayPrice Low 161 NotTrusted Unencoded
3720 {
3721 ObjectData Single
3722 { ObjectID LLUUID }
3723 }
3724 }
3725  
3726 // PayPriceReply
3727 // sim -> viewer
3728 {
3729 PayPriceReply Low 162 Trusted Unencoded
3730 {
3731 ObjectData Single
3732 { ObjectID LLUUID }
3733 { DefaultPayPrice S32 }
3734 }
3735 {
3736 ButtonData Variable
3737  
3738 { PayButton S32 }
3739 }
3740 }
3741  
3742 // KickUser
3743 // *FIXME*
3744 // Kick off a logged-in user, such as when two people log in with the
3745 // same account name.
3746 // ROUTED dataserver -> userserver -> spaceserver -> simulator -> viewer
3747 // reliable, but that may not matter if a system component is quitting
3748 {
3749 KickUser Low 163 Trusted Unencoded
3750 {
3751 TargetBlock Single
3752 { TargetIP IPADDR } // U32 encoded IP
3753 { TargetPort IPPORT }
3754 }
3755 {
3756 UserInfo Single
3757 { AgentID LLUUID }
3758 { SessionID LLUUID }
3759 { Reason Variable 2 } // string
3760 }
3761 }
3762  
3763 // ack sent from the simulator up to the main database so that login
3764 // can continue.
3765 {
3766 KickUserAck Low 164 Trusted Unencoded
3767 {
3768 UserInfo Single
3769 { SessionID LLUUID }
3770 { Flags U32 }
3771 }
3772 }
3773  
3774 // GodKickUser
3775 // When a god wants someone kicked
3776 // viewer -> sim
3777 // reliable
3778 {
3779 GodKickUser Low 165 NotTrusted Unencoded
3780 {
3781 UserInfo Single
3782 { GodID LLUUID }
3783 { GodSessionID LLUUID }
3784 { AgentID LLUUID }
3785 { KickFlags U32 }
3786 { Reason Variable 2 } // string
3787 }
3788 }
3789  
3790 // SystemKickUser
3791 // user->space, reliable
3792 {
3793 SystemKickUser Low 166 Trusted Unencoded
3794 {
3795 AgentInfo Variable
3796 { AgentID LLUUID }
3797 }
3798 }
3799  
3800 // EjectUser
3801 // viewer -> sim
3802 // reliable
3803 {
3804 EjectUser Low 167 NotTrusted Unencoded
3805 {
3806 AgentData Single
3807 { AgentID LLUUID }
3808 { SessionID LLUUID }
3809 }
3810 {
3811 Data Single
3812 { TargetID LLUUID }
3813 { Flags U32 }
3814 }
3815 }
3816  
3817 // FreezeUser
3818 // Freeze someone who is on my land.
3819 // viewer -> sim
3820 // reliable
3821 {
3822 FreezeUser Low 168 NotTrusted Unencoded
3823 {
3824 AgentData Single
3825 { AgentID LLUUID }
3826 { SessionID LLUUID }
3827 }
3828 {
3829 Data Single
3830 { TargetID LLUUID }
3831 { Flags U32 }
3832 }
3833 }
3834  
3835  
3836 // AvatarPropertiesRequest
3837 // viewer -> simulator
3838 // reliable
3839 {
3840 AvatarPropertiesRequest Low 169 NotTrusted Unencoded
3841 {
3842 AgentData Single
3843 { AgentID LLUUID }
3844 { SessionID LLUUID }
3845 { AvatarID LLUUID }
3846 }
3847 }
3848  
3849 // AvatarPropertiesRequestBackend
3850 // simulator -> dataserver
3851 // reliable
3852 {
3853 AvatarPropertiesRequestBackend Low 170 Trusted Unencoded
3854 {
3855 AgentData Single
3856 { AgentID LLUUID }
3857 { AvatarID LLUUID }
3858 { GodLevel U8 }
3859 { WebProfilesDisabled BOOL }
3860 }
3861 }
3862 // AvatarPropertiesReply
3863 // dataserver -> simulator
3864 // simulator -> viewer
3865 // reliable
3866 {
3867 AvatarPropertiesReply Low 171 Trusted Zerocoded
3868 {
3869 AgentData Single
3870 { AgentID LLUUID } // your id
3871 { AvatarID LLUUID } // avatar you're asking about
3872 }
3873 {
3874 PropertiesData Single
3875 { ImageID LLUUID }
3876 { FLImageID LLUUID }
3877 { PartnerID LLUUID }
3878 { AboutText Variable 2 } // string, up to 512
3879 { FLAboutText Variable 1 } // string
3880 { BornOn Variable 1 } // string
3881 { ProfileURL Variable 1 } // string
3882 { CharterMember Variable 1 } // special - usually U8
3883 { Flags U32 }
3884 }
3885 }
3886  
3887 {
3888 AvatarInterestsReply Low 172 Trusted Zerocoded
3889 {
3890 AgentData Single
3891 { AgentID LLUUID } // your id
3892 { AvatarID LLUUID } // avatar you're asking about
3893 }
3894 {
3895 PropertiesData Single
3896 { WantToMask U32 }
3897 { WantToText Variable 1 } // string
3898 { SkillsMask U32 }
3899 { SkillsText Variable 1 } // string
3900 { LanguagesText Variable 1 } // string
3901 }
3902 }
3903  
3904 // AvatarGroupsReply
3905 // dataserver -> simulator
3906 // simulator -> viewer
3907 // reliable
3908 {
3909 AvatarGroupsReply Low 173 Trusted Zerocoded
3910 {
3911 AgentData Single
3912 { AgentID LLUUID } // your id
3913 { AvatarID LLUUID } // avatar you're asking about
3914 }
3915 {
3916 GroupData Variable
3917 { GroupPowers U64 }
3918 { AcceptNotices BOOL }
3919 { GroupTitle Variable 1 }
3920 { GroupID LLUUID }
3921 { GroupName Variable 1 }
3922 { GroupInsigniaID LLUUID }
3923 }
3924 {
3925 NewGroupData Single
3926 { ListInProfile BOOL } // whether group displays in profile
3927 }
3928 }
3929  
3930  
3931 // AvatarPropertiesUpdate
3932 // viewer -> simulator
3933 // reliable
3934 {
3935 AvatarPropertiesUpdate Low 174 NotTrusted Zerocoded
3936 {
3937 AgentData Single
3938 { AgentID LLUUID }
3939 { SessionID LLUUID }
3940 }
3941 {
3942 PropertiesData Single
3943 { ImageID LLUUID }
3944 { FLImageID LLUUID }
3945 { AboutText Variable 2 } // string, up to 512
3946 { FLAboutText Variable 1 }
3947 { AllowPublish BOOL } // whether profile is externally visible or not
3948 { MaturePublish BOOL } // profile is "mature"
3949 { ProfileURL Variable 1 } // string
3950 }
3951 }
3952  
3953 // AvatarInterestsUpdate
3954 // viewer -> simulator
3955 // reliable
3956 {
3957 AvatarInterestsUpdate Low 175 NotTrusted Zerocoded
3958 {
3959 AgentData Single
3960 { AgentID LLUUID }
3961 { SessionID LLUUID }
3962 }
3963 {
3964 PropertiesData Single
3965 { WantToMask U32 }
3966 { WantToText Variable 1 } // string
3967 { SkillsMask U32 }
3968 { SkillsText Variable 1 } // string
3969 { LanguagesText Variable 1 } // string
3970 }
3971 }
3972  
3973  
3974  
3975 // AvatarNotesReply
3976 // dataserver -> simulator
3977 // simulator -> viewer
3978 // reliable
3979 {
3980 AvatarNotesReply Low 176 Trusted Unencoded
3981 {
3982 AgentData Single
3983 { AgentID LLUUID }
3984 }
3985 {
3986 Data Single
3987 { TargetID LLUUID }
3988 { Notes Variable 2 } // string
3989 }
3990 }
3991  
3992  
3993 // AvatarNotesUpdate
3994 // viewer -> simulator -> dataserver
3995 // reliable
3996 {
3997 AvatarNotesUpdate Low 177 NotTrusted Unencoded
3998 {
3999 AgentData Single
4000 { AgentID LLUUID }
4001 { SessionID LLUUID }
4002 }
4003 {
4004 Data Single
4005 { TargetID LLUUID }
4006 { Notes Variable 2 } // string
4007 }
4008 }
4009  
4010  
4011 // AvatarPicksReply
4012 // dataserver -> simulator -> viewer
4013 // Send the header information for this avatar's picks
4014 // This fills in the tabs of the Picks panel.
4015 // reliable
4016 {
4017 AvatarPicksReply Low 178 Trusted Unencoded
4018 {
4019 AgentData Single
4020 { AgentID LLUUID }
4021 { TargetID LLUUID }
4022 }
4023 {
4024 Data Variable
4025 { PickID LLUUID }
4026 { PickName Variable 1 } // string
4027 }
4028 }
4029  
4030  
4031 // EventInfoRequest
4032 // viewer -> simulator
4033 // simulator -> dataserver
4034 // reliable
4035 {
4036 EventInfoRequest Low 179 NotTrusted Unencoded
4037 {
4038 AgentData Single
4039 { AgentID LLUUID }
4040 { SessionID LLUUID }
4041 }
4042 {
4043 EventData Single
4044 { EventID U32 }
4045 }
4046 }
4047  
4048  
4049 // EventInfoReply
4050 // dataserver -> simulator
4051 // simulator -> viewer
4052 // reliable
4053 {
4054 EventInfoReply Low 180 Trusted Unencoded
4055 {
4056 AgentData Single
4057 { AgentID LLUUID }
4058 }
4059 {
4060 EventData Single
4061 { EventID U32 }
4062 { Creator Variable 1 }
4063 { Name Variable 1 }
4064 { Category Variable 1 }
4065 { Desc Variable 2 }
4066 { Date Variable 1 }
4067 { DateUTC U32 }
4068 { Duration U32 }
4069 { Cover U32 }
4070 { Amount U32 }
4071 { SimName Variable 1 }
4072 { GlobalPos LLVector3d }
4073 { EventFlags U32 }
4074 }
4075 }
4076  
4077  
4078 // EventNotificationAddRequest
4079 // viewer -> simulator
4080 // simulator -> dataserver
4081 // reliable
4082 {
4083 EventNotificationAddRequest Low 181 NotTrusted Unencoded
4084 {
4085 AgentData Single
4086 { AgentID LLUUID }
4087 { SessionID LLUUID }
4088 }
4089 {
4090 EventData Single
4091 { EventID U32 }
4092 }
4093 }
4094  
4095  
4096 // EventNotificationRemoveRequest
4097 // viewer -> simulator
4098 // simulator -> dataserver
4099 // reliable
4100 {
4101 EventNotificationRemoveRequest Low 182 NotTrusted Unencoded
4102 {
4103 AgentData Single
4104 { AgentID LLUUID }
4105 { SessionID LLUUID }
4106 }
4107 {
4108 EventData Single
4109 { EventID U32 }
4110 }
4111 }
4112  
4113 // EventGodDelete
4114 // viewer -> simulator
4115 // simulator -> dataserver
4116 // QueryData is used to resend a search result after the deletion
4117 // reliable
4118 {
4119 EventGodDelete Low 183 NotTrusted Unencoded
4120 {
4121 AgentData Single
4122 { AgentID LLUUID }
4123 { SessionID LLUUID }
4124 }
4125 {
4126 EventData Single
4127 { EventID U32 }
4128 }
4129 {
4130 QueryData Single
4131 { QueryID LLUUID }
4132 { QueryText Variable 1 }
4133 { QueryFlags U32 }
4134 { QueryStart S32 } // prev/next page support
4135 }
4136 }
4137  
4138  
4139 // PickInfoReply
4140 // dataserver -> simulator
4141 // simulator -> viewer
4142 // reliable
4143 {
4144 PickInfoReply Low 184 Trusted Unencoded
4145 {
4146 AgentData Single
4147 { AgentID LLUUID }
4148 }
4149 {
4150 Data Single
4151 { PickID LLUUID }
4152 { CreatorID LLUUID }
4153 { TopPick BOOL }
4154 { ParcelID LLUUID }
4155 { Name Variable 1 }
4156 { Desc Variable 2 }
4157 { SnapshotID LLUUID }
4158 { User Variable 1 }
4159 { OriginalName Variable 1 }
4160 { SimName Variable 1 }
4161 { PosGlobal LLVector3d }
4162 { SortOrder S32 }
4163 { Enabled BOOL }
4164 }
4165 }
4166  
4167  
4168 // PickInfoUpdate
4169 // Update a pick. ParcelID is set on the simulator as the message
4170 // passes through.
4171 // If TopPick is TRUE, the simulator will only pass on the message
4172 // if the agent_id is a god.
4173 // viewer -> simulator -> dataserver
4174 // reliable
4175 {
4176 PickInfoUpdate Low 185 NotTrusted Unencoded
4177 {
4178 AgentData Single
4179 { AgentID LLUUID }
4180 { SessionID LLUUID }
4181 }
4182 {
4183 Data Single
4184 { PickID LLUUID }
4185 { CreatorID LLUUID }
4186 { TopPick BOOL }
4187 { ParcelID LLUUID }
4188 { Name Variable 1 }
4189 { Desc Variable 2 }
4190 { SnapshotID LLUUID }
4191 { PosGlobal LLVector3d }
4192 { SortOrder S32 }
4193 { Enabled BOOL }
4194 }
4195 }
4196  
4197  
4198 // PickDelete
4199 // Delete a non-top pick from the database.
4200 // viewer -> simulator -> dataserver
4201 // reliable
4202 {
4203 PickDelete Low 186 NotTrusted Unencoded
4204 {
4205 AgentData Single
4206 { AgentID LLUUID }
4207 { SessionID LLUUID }
4208 }
4209 {
4210 Data Single
4211 { PickID LLUUID }
4212 }
4213 }
4214  
4215 // PickGodDelete
4216 // Delete a pick from the database.
4217 // QueryID is needed so database can send a repeat list of
4218 // picks.
4219 // viewer -> simulator -> dataserver
4220 // reliable
4221 {
4222 PickGodDelete Low 187 NotTrusted Unencoded
4223 {
4224 AgentData Single
4225 { AgentID LLUUID }
4226 { SessionID LLUUID }
4227 }
4228 {
4229 Data Single
4230 { PickID LLUUID }
4231 { QueryID LLUUID }
4232 }
4233 }
4234  
4235  
4236 // ScriptQuestion
4237 // reliable
4238 {
4239 ScriptQuestion Low 188 Trusted Unencoded
4240 {
4241 Data Single
4242 { TaskID LLUUID }
4243 { ItemID LLUUID }
4244 { ObjectName Variable 1 }
4245 { ObjectOwner Variable 1 }
4246 { Questions S32 }
4247 }
4248 }
4249  
4250 // ScriptControlChange
4251 // reliable
4252 {
4253 ScriptControlChange Low 189 Trusted Unencoded
4254 {
4255 Data Variable
4256 { TakeControls BOOL }
4257 { Controls U32 }
4258 { PassToAgent BOOL }
4259 }
4260 }
4261  
4262 // ScriptDialog
4263 // sim -> viewer
4264 // reliable
4265 {
4266 ScriptDialog Low 190 Trusted Zerocoded
4267 {
4268 Data Single
4269 { ObjectID LLUUID }
4270 { FirstName Variable 1 }
4271 { LastName Variable 1 }
4272 { ObjectName Variable 1 }
4273 { Message Variable 2 }
4274 { ChatChannel S32 }
4275 { ImageID LLUUID }
4276 }
4277 {
4278 Buttons Variable
4279 { ButtonLabel Variable 1 }
4280 }
4281 {
4282 OwnerData Variable
4283 { OwnerID LLUUID }
4284 }
4285 }
4286  
4287  
4288 // ScriptDialogReply
4289 // viewer -> sim
4290 // reliable
4291 {
4292 ScriptDialogReply Low 191 NotTrusted Zerocoded
4293 {
4294 AgentData Single
4295 { AgentID LLUUID }
4296 { SessionID LLUUID }
4297 }
4298 {
4299 Data Single
4300 { ObjectID LLUUID }
4301 { ChatChannel S32 }
4302 { ButtonIndex S32 }
4303 { ButtonLabel Variable 1 }
4304 }
4305 }
4306  
4307  
4308 // ForceScriptControlRelease
4309 // reliable
4310 {
4311 ForceScriptControlRelease Low 192 NotTrusted Unencoded
4312 {
4313 AgentData Single
4314 { AgentID LLUUID }
4315 { SessionID LLUUID }
4316 }
4317 }
4318  
4319 // RevokePermissions
4320 // reliable
4321 {
4322 RevokePermissions Low 193 NotTrusted Unencoded
4323 {
4324 AgentData Single
4325 { AgentID LLUUID }
4326 { SessionID LLUUID }
4327 }
4328 {
4329 Data Single
4330 { ObjectID LLUUID }
4331 { ObjectPermissions U32 }
4332 }
4333 }
4334  
4335 // LoadURL
4336 // sim -> viewer
4337 // Ask the user if they would like to load a URL
4338 // reliable
4339 {
4340 LoadURL Low 194 Trusted Unencoded
4341 {
4342 Data Single
4343 { ObjectName Variable 1 }
4344 { ObjectID LLUUID }
4345 { OwnerID LLUUID }
4346 { OwnerIsGroup BOOL }
4347 { Message Variable 1 }
4348 { URL Variable 1 }
4349 }
4350 }
4351  
4352 // ScriptTeleportRequest
4353 // reliable
4354 {
4355 ScriptTeleportRequest Low 195 Trusted Unencoded
4356 {
4357 Data Single
4358 { ObjectName Variable 1 }
4359 { SimName Variable 1 }
4360 { SimPosition LLVector3 }
4361 { LookAt LLVector3 }
4362 }
4363 }
4364  
4365  
4366  
4367  
4368 // ***************************************************************************
4369 // Land Parcel system
4370 // ***************************************************************************
4371  
4372 // ParcelOverlay
4373 // We send N packets per region to the viewer.
4374 // N = 4, currently. At 256x256 meter regions, 4x4 meter parcel grid,
4375 // there are 4096 parcel units per region. At N = 4, that's 1024 units
4376 // per packet, allowing 8 bit bytes.
4377 // sim -> viewer
4378 // reliable
4379 {
4380 ParcelOverlay Low 196 Trusted Zerocoded
4381 {
4382 ParcelData Single
4383 { SequenceID S32 } // 0...3, which piece of region
4384 { Data Variable 2 } // packed bit-field, (grids*grids)/N
4385 }
4386 }
4387  
4388  
4389 // ParcelPropertiesRequest
4390 // SequenceID should be -1 or -2, and is echoed back in the
4391 // parcel properties message.
4392 // viewer -> sim
4393 // reliable
4394 {
4395 ParcelPropertiesRequest Medium 11 NotTrusted Zerocoded
4396 {
4397 AgentData Single
4398 { AgentID LLUUID }
4399 { SessionID LLUUID }
4400 }
4401 {
4402 ParcelData Single
4403 { SequenceID S32 }
4404 { West F32 }
4405 { South F32 }
4406 { East F32 }
4407 { North F32 }
4408 { SnapSelection BOOL }
4409 }
4410 }
4411  
4412 // ParcelPropertiesRequestByID
4413 // viewer -> sim
4414 // reliable
4415 {
4416 ParcelPropertiesRequestByID Low 197 NotTrusted Zerocoded
4417 {
4418 AgentData Single
4419 { AgentID LLUUID }
4420 { SessionID LLUUID }
4421 }
4422 {
4423 ParcelData Single
4424 { SequenceID S32 }
4425 { LocalID S32 }
4426 }
4427 }
4428  
4429 // ParcelProperties
4430 // sequence id = -1 for parcels that you explicitly selected
4431 // For agents, sequence id increments every time the agent transits into
4432 // a new parcel. It is used to detect out-of-order agent parcel info updates.
4433 // Bitmap = packed bit field, one bit per parcel grid, on if that grid is
4434 // part of the selected parcel.
4435 // sim -> viewer
4436 // WARNING: This packet is potentially large. With max length name,
4437 // description, music URL and media URL, it is 1526 + sizeof ( LLUUID ) bytes.
4438 {
4439 ParcelProperties High 23 Trusted Zerocoded
4440 {
4441 ParcelData Single
4442 { RequestResult S32 }
4443 { SequenceID S32 }
4444 { SnapSelection BOOL }
4445 { SelfCount S32 }
4446 { OtherCount S32 }
4447 { PublicCount S32 }
4448 { LocalID S32 }
4449 { OwnerID LLUUID }
4450 { IsGroupOwned BOOL }
4451 { AuctionID U32 }
4452 { ClaimDate S32 } // time_t
4453 { ClaimPrice S32 }
4454 { RentPrice S32 }
4455 { AABBMin LLVector3 }
4456 { AABBMax LLVector3 }
4457 { Bitmap Variable 2 } // packed bit-field
4458 { Area S32 }
4459 { Status U8 } // owned vs. pending
4460 { SimWideMaxPrims S32 }
4461 { SimWideTotalPrims S32 }
4462 { MaxPrims S32 }
4463 { TotalPrims S32 }
4464 { OwnerPrims S32 }
4465 { GroupPrims S32 }
4466 { OtherPrims S32 }
4467 { SelectedPrims S32 }
4468 { ParcelPrimBonus F32 }
4469  
4470 { OtherCleanTime S32 }
4471  
4472 { ParcelFlags U32 }
4473 { SalePrice S32 }
4474 { Name Variable 1 } // string
4475 { Desc Variable 1 } // string
4476 { MusicURL Variable 1 } // string
4477 { MediaURL Variable 1 } // string
4478 { MediaID LLUUID }
4479 { MediaAutoScale U8 }
4480 { GroupID LLUUID }
4481 { PassPrice S32 }
4482 { PassHours F32 }
4483 { Category U8 }
4484 { AuthBuyerID LLUUID }
4485 { SnapshotID LLUUID }
4486 { UserLocation LLVector3 }
4487 { UserLookAt LLVector3 }
4488 { LandingType U8 }
4489 { RegionPushOverride BOOL }
4490 { RegionDenyAnonymous BOOL }
4491 { RegionDenyIdentified BOOL }
4492 { RegionDenyTransacted BOOL }
4493 }
4494 {
4495 AgeVerificationBlock Single
4496 { RegionDenyAgeUnverified BOOL }
4497 }
4498 }
4499  
4500 // ParcelPropertiesUpdate
4501 // viewer -> sim
4502 // reliable
4503 {
4504 ParcelPropertiesUpdate Low 198 NotTrusted Zerocoded
4505 {
4506 AgentData Single
4507 { AgentID LLUUID }
4508 { SessionID LLUUID }
4509 }
4510 {
4511 ParcelData Single
4512 { LocalID S32 }
4513 { Flags U32 }
4514  
4515 { ParcelFlags U32 }
4516 { SalePrice S32 }
4517 { Name Variable 1 } // string
4518 { Desc Variable 1 } // string
4519 { MusicURL Variable 1 } // string
4520 { MediaURL Variable 1 } // string
4521 { MediaID LLUUID }
4522 { MediaAutoScale U8 }
4523 { GroupID LLUUID }
4524 { PassPrice S32 }
4525 { PassHours F32 }
4526 { Category U8 }
4527 { AuthBuyerID LLUUID }
4528 { SnapshotID LLUUID }
4529 { UserLocation LLVector3 }
4530 { UserLookAt LLVector3 }
4531 { LandingType U8 }
4532 }
4533 }
4534  
4535 // ParcelReturnObjects
4536 // viewer -> sim
4537 // reliable
4538 {
4539 ParcelReturnObjects Low 199 NotTrusted Zerocoded
4540 {
4541 AgentData Single
4542 { AgentID LLUUID }
4543 { SessionID LLUUID }
4544 }
4545 {
4546 ParcelData Single
4547 { LocalID S32 }
4548 { ReturnType U32 }
4549 }
4550 {
4551 TaskIDs Variable
4552 { TaskID LLUUID }
4553 }
4554 {
4555 OwnerIDs Variable
4556 { OwnerID LLUUID }
4557 }
4558 }
4559  
4560 // ParcelSetOtherCleanTime
4561 // viewer -> sim
4562 // reliable
4563 {
4564 ParcelSetOtherCleanTime Low 200 NotTrusted Zerocoded
4565 {
4566 AgentData Single
4567 { AgentID LLUUID }
4568 { SessionID LLUUID }
4569 }
4570 {
4571 ParcelData Single
4572 { LocalID S32 }
4573 { OtherCleanTime S32 }
4574 }
4575 }
4576  
4577  
4578 // Disable makes objects nonphysical and turns off their scripts.
4579 // ParcelDisableObjects
4580 // viewer -> sim
4581 // reliable
4582 {
4583 ParcelDisableObjects Low 201 NotTrusted Zerocoded
4584 {
4585 AgentData Single
4586 { AgentID LLUUID }
4587 { SessionID LLUUID }
4588 }
4589 {
4590 ParcelData Single
4591 { LocalID S32 }
4592 { ReturnType U32 }
4593 }
4594 {
4595 TaskIDs Variable
4596 { TaskID LLUUID }
4597 }
4598 {
4599 OwnerIDs Variable
4600 { OwnerID LLUUID }
4601 }
4602 }
4603  
4604  
4605 // ParcelSelectObjects
4606 // viewer -> sim
4607 // reliable
4608 {
4609 ParcelSelectObjects Low 202 NotTrusted Zerocoded
4610 {
4611 AgentData Single
4612 { AgentID LLUUID }
4613 { SessionID LLUUID }
4614 }
4615 {
4616 ParcelData Single
4617 { LocalID S32 }
4618 { ReturnType U32 }
4619 }
4620 {
4621 ReturnIDs Variable
4622 { ReturnID LLUUID }
4623 }
4624 }
4625  
4626  
4627 // EstateCovenantRequest
4628 // viewer -> sim
4629 // reliable
4630 {
4631 EstateCovenantRequest Low 203 NotTrusted Unencoded
4632 {
4633 AgentData Single
4634 { AgentID LLUUID }
4635 { SessionID LLUUID }
4636 }
4637 }
4638  
4639 // EstateCovenantReply
4640 // sim -> viewer
4641 // reliable
4642 {
4643 EstateCovenantReply Low 204 Trusted Unencoded
4644 {
4645 Data Single
4646 { CovenantID LLUUID }
4647 { CovenantTimestamp U32 }
4648 { EstateName Variable 1 } // string
4649 { EstateOwnerID LLUUID }
4650 }
4651 }
4652  
4653  
4654 // ForceObjectSelect
4655 // sim -> viewer
4656 // reliable
4657 {
4658 ForceObjectSelect Low 205 Trusted Unencoded
4659 {
4660 Header Single
4661 { ResetList BOOL }
4662 }
4663 {
4664 Data Variable
4665 { LocalID U32 }
4666 }
4667 }
4668  
4669  
4670 // ParcelBuyPass - purchase a temporary access pass
4671 // viewer -> sim
4672 // reliable
4673 {
4674 ParcelBuyPass Low 206 NotTrusted Unencoded
4675 {
4676 AgentData Single
4677 { AgentID LLUUID }
4678 { SessionID LLUUID }
4679 }
4680 {
4681 ParcelData Single
4682 { LocalID S32 }
4683 }
4684 }
4685  
4686 // ParcelDeedToGroup - deed a patch of land to a group
4687 // viewer -> sim
4688 // reliable
4689 {
4690 ParcelDeedToGroup Low 207 NotTrusted Unencoded
4691 {
4692 AgentData Single
4693 { AgentID LLUUID }
4694 { SessionID LLUUID }
4695 }
4696 {
4697 Data Single
4698 { GroupID LLUUID }
4699 { LocalID S32 } // parcel id
4700 }
4701 }
4702  
4703 // reserved for when island owners force re-claim parcel
4704 {
4705 ParcelReclaim Low 208 NotTrusted Unencoded
4706 {
4707 AgentData Single
4708 { AgentID LLUUID }
4709 { SessionID LLUUID }
4710 }
4711 {
4712 Data Single
4713 { LocalID S32 } // parcel id
4714 }
4715 }
4716  
4717 // ParcelClaim - change the owner of a patch of land
4718 // viewer -> sim
4719 // reliable
4720 {
4721 ParcelClaim Low 209 NotTrusted Zerocoded
4722 {
4723 AgentData Single
4724 { AgentID LLUUID }
4725 { SessionID LLUUID }
4726 }
4727 {
4728 Data Single
4729 { GroupID LLUUID }
4730 { IsGroupOwned BOOL }
4731 { Final BOOL } // true if buyer is in tier
4732 }
4733 {
4734 ParcelData Variable
4735 { West F32 }
4736 { South F32 }
4737 { East F32 }
4738 { North F32 }
4739 }
4740 }
4741  
4742 // ParcelJoin - Take all parcels which are owned by agent and inside
4743 // rectangle, and make them 1 parcel if they all are leased.
4744 // viewer -> sim
4745 // reliable
4746 {
4747 ParcelJoin Low 210 NotTrusted Unencoded
4748 {
4749 AgentData Single
4750 { AgentID LLUUID }
4751 { SessionID LLUUID }
4752 }
4753 {
4754 ParcelData Single
4755 { West F32 }
4756 { South F32 }
4757 { East F32 }
4758 { North F32 }
4759 }
4760 }
4761  
4762 // ParcelDivide
4763 // If the selection is a subsection of exactly one parcel,
4764 // chop out that section and make a new parcel of it.
4765 // viewer -> sim
4766 // reliable
4767 {
4768 ParcelDivide Low 211 NotTrusted Unencoded
4769 {
4770 AgentData Single
4771 { AgentID LLUUID }
4772 { SessionID LLUUID }
4773 }
4774 {
4775 ParcelData Single
4776 { West F32 }
4777 { South F32 }
4778 { East F32 }
4779 { North F32 }
4780 }
4781 }
4782  
4783 // ParcelRelease
4784 // Release a parcel to public
4785 // viewer -> sim
4786 // reliable
4787 {
4788 ParcelRelease Low 212 NotTrusted Unencoded
4789 {
4790 AgentData Single
4791 { AgentID LLUUID }
4792 { SessionID LLUUID }
4793 }
4794 {
4795 Data Single
4796 { LocalID S32 } // parcel ID
4797 }
4798 }
4799  
4800 // ParcelBuy - change the owner of a patch of land.
4801 // viewer -> sim
4802 // reliable
4803 {
4804 ParcelBuy Low 213 NotTrusted Zerocoded
4805 {
4806 AgentData Single
4807 { AgentID LLUUID }
4808 { SessionID LLUUID }
4809 }
4810 {
4811 Data Single
4812 { GroupID LLUUID }
4813 { IsGroupOwned BOOL }
4814 { RemoveContribution BOOL }
4815 { LocalID S32 }
4816 { Final BOOL } // true if buyer is in tier
4817 }
4818 {
4819 ParcelData Single
4820 { Price S32 }
4821 { Area S32 }
4822 }
4823 }
4824  
4825  
4826 // ParcelGodForceOwner Unencoded
4827 {
4828 ParcelGodForceOwner Low 214 NotTrusted Zerocoded
4829 {
4830 AgentData Single
4831 { AgentID LLUUID }
4832 { SessionID LLUUID }
4833 }
4834 {
4835 Data Single
4836 { OwnerID LLUUID }
4837 { LocalID S32 } // parcel ID
4838 }
4839 }
4840  
4841  
4842 // viewer -> sim
4843 // ParcelAccessListRequest
4844 {
4845 ParcelAccessListRequest Low 215 NotTrusted Zerocoded
4846 {
4847 AgentData Single
4848 { AgentID LLUUID }
4849 { SessionID LLUUID }
4850 }
4851 {
4852 Data Single
4853 { SequenceID S32 }
4854 { Flags U32 }
4855 { LocalID S32 }
4856 }
4857 }
4858  
4859  
4860 // sim -> viewer
4861 // ParcelAccessListReply
4862 {
4863 ParcelAccessListReply Low 216 Trusted Zerocoded
4864 {
4865 Data Single
4866 { AgentID LLUUID }
4867 { SequenceID S32 }
4868 { Flags U32 }
4869 { LocalID S32 }
4870 }
4871 {
4872 List Variable
4873 { ID LLUUID }
4874 { Time S32 } // time_t
4875 { Flags U32 }
4876 }
4877 }
4878  
4879 // viewer -> sim
4880 // ParcelAccessListUpdate
4881 {
4882 ParcelAccessListUpdate Low 217 NotTrusted Zerocoded
4883 {
4884 AgentData Single
4885 { AgentID LLUUID }
4886 { SessionID LLUUID }
4887 }
4888 {
4889 Data Single
4890 { Flags U32 }
4891 { LocalID S32 }
4892 { TransactionID LLUUID }
4893 { SequenceID S32 }
4894 { Sections S32 }
4895 }
4896 {
4897 List Variable
4898 { ID LLUUID }
4899 { Time S32 } // time_t
4900 { Flags U32 }
4901 }
4902 }
4903  
4904  
4905 // viewer -> sim -> dataserver
4906 // reliable
4907 {
4908 ParcelDwellRequest Low 218 NotTrusted Unencoded
4909 {
4910 AgentData Single
4911 { AgentID LLUUID }
4912 { SessionID LLUUID }
4913 }
4914 {
4915 Data Single
4916 { LocalID S32 }
4917 { ParcelID LLUUID } // filled in on sim
4918 }
4919 }
4920  
4921  
4922 // dataserver -> sim -> viewer
4923 // reliable
4924 {
4925 ParcelDwellReply Low 219 Trusted Unencoded
4926 {
4927 AgentData Single
4928 { AgentID LLUUID }
4929 }
4930 {
4931 Data Single
4932 { LocalID S32 }
4933 { ParcelID LLUUID }
4934 { Dwell F32 }
4935 }
4936 }
4937  
4938 // sim -> dataserver
4939 // This message is used to check if a user can buy a parcel. If
4940 // successful, the transaction is approved through a money balance reply
4941 // with the same transaction id.
4942 {
4943 RequestParcelTransfer Low 220 Trusted Zerocoded
4944 {
4945 Data Single
4946 { TransactionID LLUUID }
4947 { TransactionTime U32 } // utc seconds since epoch
4948 { SourceID LLUUID }
4949 { DestID LLUUID }
4950 { OwnerID LLUUID }
4951 { Flags U8 } // see lltransactiontypes.h
4952 { TransactionType S32 } // see lltransactiontypes.h
4953 { Amount S32 }
4954 { BillableArea S32 }
4955 { ActualArea S32 }
4956 { Final BOOL } // true if buyer should be in tier
4957 }
4958 {
4959 RegionData Single // included so region name shows up in transaction logs
4960 { RegionID LLUUID }
4961 { GridX U32 }
4962 { GridY U32 }
4963 }
4964 }
4965  
4966 // sim ->dataserver
4967 // This message is used to send up complete parcel properties for
4968 // persistance in the database.
4969 // If you add something here, you should probably also change the
4970 // simulator's database update query on startup.
4971 {
4972 UpdateParcel Low 221 Trusted Zerocoded
4973 {
4974 ParcelData Single
4975 { ParcelID LLUUID }
4976 { RegionHandle U64 }
4977 { OwnerID LLUUID }
4978 { GroupOwned BOOL }
4979 { Status U8 }
4980 { Name Variable 1 }
4981 { Description Variable 1 }
4982 { MusicURL Variable 1 }
4983 { RegionX F32 }
4984 { RegionY F32 }
4985 { ActualArea S32 }
4986 { BillableArea S32 }
4987 { ShowDir BOOL }
4988 { IsForSale BOOL }
4989 { Category U8 }
4990 { SnapshotID LLUUID }
4991 { UserLocation LLVector3 }
4992 { SalePrice S32 }
4993 { AuthorizedBuyerID LLUUID }
4994 { AllowPublish BOOL }
4995 { MaturePublish BOOL }
4996 }
4997 }
4998  
4999 // sim -> dataserver or space ->sim
5000 // This message is used to tell the dataserver that a parcel has been
5001 // removed.
5002 {
5003 RemoveParcel Low 222 Trusted Unencoded
5004 {
5005 ParcelData Variable
5006 { ParcelID LLUUID }
5007 }
5008 }
5009  
5010 // sim -> dataserver
5011 // Merges some of the database information for parcels (dwell).
5012 {
5013 MergeParcel Low 223 Trusted Unencoded
5014 {
5015 MasterParcelData Single
5016 { MasterID LLUUID }
5017 }
5018 {
5019 SlaveParcelData Variable
5020 { SlaveID LLUUID }
5021 }
5022 }
5023  
5024 // sim -> dataserver
5025 {
5026 LogParcelChanges Low 224 Trusted Zerocoded
5027 {
5028 AgentData Single
5029 { AgentID LLUUID }
5030 }
5031 {
5032 RegionData Single
5033 { RegionHandle U64 }
5034 }
5035 {
5036 ParcelData Variable
5037 { ParcelID LLUUID }
5038 { OwnerID LLUUID }
5039 { IsOwnerGroup BOOL }
5040 { ActualArea S32 }
5041 { Action S8 }
5042 { TransactionID LLUUID }
5043 }
5044 }
5045  
5046 // sim -> dataserver
5047 {
5048 CheckParcelSales Low 225 Trusted Unencoded
5049 {
5050 RegionData Variable
5051 { RegionHandle U64 }
5052 }
5053 }
5054  
5055 // dataserver -> simulator
5056 // tell a particular simulator to finish parcel sale.
5057 {
5058 ParcelSales Low 226 Trusted Unencoded
5059 {
5060 ParcelData Variable
5061 { ParcelID LLUUID }
5062 { BuyerID LLUUID }
5063 }
5064 }
5065  
5066 // viewer -> sim
5067 // mark parcel and double secret agent content on parcel as owned by
5068 // governor/maint and adjusts permissions approriately. Godlike request.
5069 {
5070 ParcelGodMarkAsContent Low 227 NotTrusted Unencoded
5071 {
5072 AgentData Single
5073 { AgentID LLUUID }
5074 { SessionID LLUUID }
5075 }
5076 {
5077 ParcelData Single
5078 { LocalID S32 }
5079 }
5080 }
5081  
5082  
5083 // viewer -> sim
5084 // start an auction. viewer fills in the appropriate date, simulator
5085 // validates and fills in the rest of the information to start an auction
5086 // on a parcel. Processing currently requires that AgentID is a god.
5087 {
5088 ViewerStartAuction Low 228 NotTrusted Unencoded
5089 {
5090 AgentData Single
5091 { AgentID LLUUID }
5092 { SessionID LLUUID }
5093 }
5094 {
5095 ParcelData Single
5096 { LocalID S32 }
5097 { SnapshotID LLUUID }
5098 }
5099 }
5100  
5101 // sim -> dataserver
5102 // Once all of the data has been gathered,
5103 {
5104 StartAuction Low 229 Trusted Unencoded
5105 {
5106 AgentData Single
5107 { AgentID LLUUID }
5108 }
5109 {
5110 ParcelData Single
5111 { ParcelID LLUUID }
5112 { SnapshotID LLUUID }
5113 { Name Variable 1 } // string
5114 }
5115 }
5116  
5117 // dataserver -> sim
5118 {
5119 ConfirmAuctionStart Low 230 Trusted Unencoded
5120 {
5121 AuctionData Single
5122 { ParcelID LLUUID }
5123 { AuctionID U32 }
5124 }
5125 }
5126  
5127 // sim -> dataserver
5128 // Tell the dataserver that an auction has completed.
5129 {
5130 CompleteAuction Low 231 Trusted Unencoded
5131 {
5132 ParcelData Variable
5133 { ParcelID LLUUID }
5134 }
5135 }
5136  
5137 // Tell the dataserver that an auction has been canceled.
5138 {
5139 CancelAuction Low 232 Trusted Unencoded
5140 {
5141 ParcelData Variable
5142 { ParcelID LLUUID }
5143 }
5144 }
5145  
5146 // sim -> dataserver
5147 {
5148 CheckParcelAuctions Low 233 Trusted Unencoded
5149 {
5150 RegionData Variable
5151 { RegionHandle U64 }
5152 }
5153 }
5154  
5155 // dataserver -> sim
5156 // tell a particular simulator to finish parcel sale.
5157 {
5158 ParcelAuctions Low 234 Trusted Unencoded
5159 {
5160 ParcelData Variable
5161 { ParcelID LLUUID }
5162 { WinnerID LLUUID }
5163 }
5164 }
5165  
5166 // ***************************************************************************
5167 // UUID to name lookup
5168 // ***************************************************************************
5169  
5170 // UUIDNameRequest
5171 // Translate a UUID into first and last names
5172 {
5173 UUIDNameRequest Low 235 NotTrusted Unencoded
5174 {
5175 UUIDNameBlock Variable
5176 { ID LLUUID }
5177 }
5178 }
5179  
5180 // UUIDNameReply
5181 // Translate a UUID into first and last names
5182 {
5183 UUIDNameReply Low 236 Trusted Unencoded
5184 {
5185 UUIDNameBlock Variable
5186 { ID LLUUID }
5187 { FirstName Variable 1 }
5188 { LastName Variable 1 }
5189 }
5190 }
5191  
5192 // UUIDGroupNameRequest
5193 // Translate a UUID into a group name
5194 {
5195 UUIDGroupNameRequest Low 237 NotTrusted Unencoded
5196 {
5197 UUIDNameBlock Variable
5198 { ID LLUUID }
5199 }
5200 }
5201  
5202 // UUIDGroupNameReply
5203 // Translate a UUID into a group name
5204 {
5205 UUIDGroupNameReply Low 238 Trusted Unencoded
5206 {
5207 UUIDNameBlock Variable
5208 { ID LLUUID }
5209 { GroupName Variable 1 }
5210 }
5211 }
5212  
5213 // end uuid to name lookup
5214  
5215 // ***************************************************************************
5216 // Simulator to Simulator Messages
5217 // ***************************************************************************
5218  
5219 // ChatPass
5220 // Chat message transmission to neighbors
5221 // Chat is region local to receiving simulator.
5222 // Type is one of CHAT_TYPE_NORMAL, _WHISPER, _SHOUT
5223 {
5224 ChatPass Low 239 Trusted Zerocoded
5225 {
5226 ChatData Single
5227 { Channel S32 }
5228 { Position LLVector3 }
5229 { ID LLUUID }
5230 { OwnerID LLUUID }
5231 { Name Variable 1 }
5232 { SourceType U8 }
5233 { Type U8 }
5234 { Radius F32 }
5235 { SimAccess U8 }
5236 { Message Variable 2 }
5237 }
5238 }
5239  
5240 // Edge data - compressed edge data
5241  
5242 {
5243 EdgeDataPacket High 24 Trusted Zerocoded
5244 {
5245 EdgeData Single
5246 { LayerType U8 }
5247 { Direction U8 }
5248 { LayerData Variable 2 }
5249 }
5250 }
5251  
5252 // Sim status, condition of this sim
5253 // sent reliably, when dirty
5254 {
5255 SimStatus Medium 12 Trusted Unencoded
5256 {
5257 SimStatus Single
5258 { CanAcceptAgents BOOL }
5259 { CanAcceptTasks BOOL }
5260 }
5261 }
5262  
5263 // Child Agent Update - agents send child agents to neighboring simulators.
5264 // This will create a child camera if there isn't one at the target already
5265 // Can't send viewer IP and port between simulators -- the port may get remapped
5266 // if the viewer is behind a Network Address Translation (NAT) box.
5267 //
5268 // Note: some of the fields of this message really only need to be sent when an
5269 // agent crosses a region boundary and changes from a child to a main agent
5270 // (such as Head/BodyRotation, ControlFlags, Animations etc)
5271 // simulator -> simulator
5272 // reliable
5273 {
5274 ChildAgentUpdate High 25 Trusted Zerocoded
5275 {
5276 AgentData Single
5277  
5278 { RegionHandle U64 }
5279 { ViewerCircuitCode U32 }
5280 { AgentID LLUUID }
5281 { SessionID LLUUID }
5282  
5283 { AgentPos LLVector3 }
5284 { AgentVel LLVector3 }
5285 { Center LLVector3 }
5286 { Size LLVector3 }
5287 { AtAxis LLVector3 }
5288 { LeftAxis LLVector3 }
5289 { UpAxis LLVector3 }
5290 { ChangedGrid BOOL } // BOOL
5291  
5292 { Far F32 }
5293 { Aspect F32 }
5294 { Throttles Variable 1 }
5295 { LocomotionState U32 }
5296 { HeadRotation LLQuaternion }
5297 { BodyRotation LLQuaternion }
5298 { ControlFlags U32 }
5299 { EnergyLevel F32 }
5300 { GodLevel U8 } // Changed from BOOL to U8, and renamed GodLevel (from Godlike)
5301 { AlwaysRun BOOL }
5302 { PreyAgent LLUUID }
5303 { AgentAccess U8 }
5304 { AgentTextures Variable 2 }
5305 { ActiveGroupID LLUUID }
5306 }
5307 {
5308 GroupData Variable
5309 { GroupID LLUUID }
5310 { GroupPowers U64 }
5311 { AcceptNotices BOOL }
5312 }
5313 {
5314 AnimationData Variable
5315 { Animation LLUUID }
5316 { ObjectID LLUUID }
5317 }
5318 {
5319 GranterBlock Variable
5320 { GranterID LLUUID }
5321 }
5322 {
5323 NVPairData Variable
5324 { NVPairs Variable 2 }
5325 }
5326 {
5327 VisualParam Variable
5328 { ParamValue U8 }
5329 }
5330 {
5331 AgentAccess Variable
5332 { AgentLegacyAccess U8 }
5333 { AgentMaxAccess U8 }
5334 }
5335 {
5336 AgentInfo Variable
5337 { Flags U32 }
5338 }
5339 }
5340  
5341 // ChildAgentAlive
5342 // sent to child agents just to keep them alive
5343 {
5344 ChildAgentAlive High 26 Trusted Unencoded
5345 {
5346 AgentData Single
5347 { RegionHandle U64 }
5348 { ViewerCircuitCode U32 }
5349 { AgentID LLUUID }
5350 { SessionID LLUUID }
5351 }
5352 }
5353  
5354 // ChildAgentPositionUpdate
5355 // sent to child agents just to keep them alive
5356 {
5357 ChildAgentPositionUpdate High 27 Trusted Unencoded
5358 {
5359 AgentData Single
5360  
5361 { RegionHandle U64 }
5362 { ViewerCircuitCode U32 }
5363 { AgentID LLUUID }
5364 { SessionID LLUUID }
5365  
5366 { AgentPos LLVector3 }
5367 { AgentVel LLVector3 }
5368 { Center LLVector3 }
5369 { Size LLVector3 }
5370 { AtAxis LLVector3 }
5371 { LeftAxis LLVector3 }
5372 { UpAxis LLVector3 }
5373 { ChangedGrid BOOL }
5374 }
5375 }
5376  
5377  
5378 // Obituary for child agents - make sure the parent know the child is dead
5379 // This way, children can be reliably restarted
5380 {
5381 ChildAgentDying Low 240 Trusted Zerocoded
5382 {
5383 AgentData Single
5384 { AgentID LLUUID }
5385 { SessionID LLUUID }
5386 }
5387 }
5388  
5389  
5390 // This is sent if a full child agent hasn't been accepted yet
5391 {
5392 ChildAgentUnknown Low 241 Trusted Unencoded
5393 {
5394 AgentData Single
5395 { AgentID LLUUID }
5396 { SessionID LLUUID }
5397 }
5398 }
5399  
5400  
5401 // This message is sent how objects get passed between regions.
5402 {
5403 AtomicPassObject High 28 Trusted Unencoded
5404 {
5405 TaskData Single
5406 { TaskID LLUUID }
5407 { AttachmentNeedsSave BOOL } // true iff is attachment and needs asset saved
5408 }
5409 }
5410  
5411  
5412 // KillChildAgents - A new agent has connected to the simulator . . . make sure that any old child cameras are blitzed
5413 {
5414 KillChildAgents Low 242 Trusted Unencoded
5415 {
5416 IDBlock Single
5417 { AgentID LLUUID }
5418 }
5419 }
5420  
5421  
5422 // GetScriptRunning - asks if a script is running or not. the simulator
5423 // responds with ScriptRunningReply
5424 {
5425 GetScriptRunning Low 243 NotTrusted Unencoded
5426 {
5427 Script Single
5428 { ObjectID LLUUID }
5429 { ItemID LLUUID }
5430 }
5431 }
5432  
5433 // ScriptRunningReply - response from simulator to message above
5434 {
5435 ScriptRunningReply Low 244 NotTrusted Unencoded UDPDeprecated
5436 {
5437 Script Single
5438 { ObjectID LLUUID }
5439 { ItemID LLUUID }
5440 { Running BOOL }
5441 // { Mono BOOL } Added to LLSD message
5442 }
5443 }
5444  
5445  
5446 // SetScriptRunning - makes a script active or inactive (Enable may be
5447 // true or false)
5448 {
5449 SetScriptRunning Low 245 NotTrusted Unencoded
5450 {
5451 AgentData Single
5452 { AgentID LLUUID }
5453 { SessionID LLUUID }
5454 }
5455 {
5456 Script Single
5457 { ObjectID LLUUID }
5458 { ItemID LLUUID }
5459 { Running BOOL }
5460 }
5461 }
5462  
5463 // ScriptReset - causes a script to reset
5464 {
5465 ScriptReset Low 246 NotTrusted Unencoded
5466 {
5467 AgentData Single
5468 { AgentID LLUUID }
5469 { SessionID LLUUID }
5470 }
5471 {
5472 Script Single
5473 { ObjectID LLUUID }
5474 { ItemID LLUUID }
5475 }
5476 }
5477  
5478 // ScriptSensorRequest - causes the receiving sim to run a script sensor and return the results
5479 {
5480 ScriptSensorRequest Low 247 Trusted Zerocoded
5481 {
5482 Requester Single
5483 { SourceID LLUUID }
5484 { RequestID LLUUID }
5485 { SearchID LLUUID }
5486 { SearchPos LLVector3 }
5487 { SearchDir LLQuaternion }
5488 { SearchName Variable 1 }
5489 { Type S32 }
5490 { Range F32 }
5491 { Arc F32 }
5492 { RegionHandle U64 }
5493 { SearchRegions U8 }
5494 }
5495 }
5496  
5497 // ScriptSensorReply - returns the request script search information back to the requester
5498 {
5499 ScriptSensorReply Low 248 Trusted Zerocoded
5500 {
5501 Requester Single
5502 { SourceID LLUUID }
5503 }
5504 {
5505 SensedData Variable
5506 { ObjectID LLUUID }
5507 { OwnerID LLUUID }
5508 { GroupID LLUUID }
5509 { Position LLVector3 }
5510 { Velocity LLVector3 }
5511 { Rotation LLQuaternion }
5512 { Name Variable 1 }
5513 { Type S32 }
5514 { Range F32 }
5515 }
5516 }
5517  
5518 //-----------------------------------------------------------------------------
5519 // Login and Agent Motion
5520 //-----------------------------------------------------------------------------
5521  
5522 // viewer -> sim
5523 // agent is coming into the region. The region should be expecting the
5524 // agent.
5525 {
5526 CompleteAgentMovement Low 249 NotTrusted Unencoded
5527 {
5528 AgentData Single
5529 { AgentID LLUUID }
5530 { SessionID LLUUID }
5531 { CircuitCode U32 }
5532 }
5533 }
5534  
5535 // sim -> viewer
5536 {
5537 AgentMovementComplete Low 250 NotTrusted Unencoded
5538 {
5539 AgentData Single
5540 { AgentID LLUUID }
5541 { SessionID LLUUID }
5542 }
5543 {
5544 Data Single
5545 { Position LLVector3 }
5546 { LookAt LLVector3 }
5547 { RegionHandle U64 }
5548 { Timestamp U32 }
5549 }
5550 {
5551 SimData Single
5552 { ChannelVersion Variable 2 }
5553 }
5554 }
5555  
5556  
5557 //-----------------------------------------------------------------------------
5558 // Logout
5559 //-----------------------------------------------------------------------------
5560  
5561 // userserver -> dataserver
5562 {
5563 DataServerLogout Low 251 Trusted Unencoded
5564 {
5565 UserData Single
5566 { AgentID LLUUID }
5567 { ViewerIP IPADDR }
5568 { Disconnect BOOL }
5569 { SessionID LLUUID }
5570 }
5571 }
5572  
5573 // LogoutRequest
5574 // viewer -> sim
5575 // reliable
5576 {
5577 LogoutRequest Low 252 NotTrusted Unencoded
5578 {
5579 AgentData Single
5580 { AgentID LLUUID }
5581 { SessionID LLUUID }
5582 }
5583 }
5584  
5585  
5586 // LogoutReply
5587 // it's ok for the viewer to quit.
5588 // sim -> viewer
5589 // reliable
5590 // Includes inventory items to update with new asset ids
5591 {
5592 LogoutReply Low 253 Trusted Zerocoded
5593 {
5594 AgentData Single
5595 { AgentID LLUUID }
5596 { SessionID LLUUID }
5597 }
5598 {
5599 InventoryData Variable
5600 { ItemID LLUUID } // null if list is actually empty (but has one entry 'cause it can't have none)
5601 }
5602 }
5603  
5604  
5605 //-----------------------------------------------------------------------------
5606 // Instant Message
5607 //-----------------------------------------------------------------------------
5608  
5609 // ImprovedInstantMessage
5610 // This message can potentially route all over the place
5611 // ParentEstateID: parent estate id of the source estate
5612 // RegionID: region id of the source of the IM.
5613 // Position: position of the sender in region local coordinates
5614 // Dialog see llinstantmessage.h for values
5615 // ID May be used by dialog. Interpretation depends on context.
5616 // BinaryBucket May be used by some dialog types
5617 // reliable
5618 {
5619 ImprovedInstantMessage Low 254 NotTrusted Zerocoded
5620 {
5621 AgentData Single
5622 { AgentID LLUUID }
5623 { SessionID LLUUID }
5624 }
5625 {
5626 MessageBlock Single
5627 { FromGroup BOOL }
5628 { ToAgentID LLUUID }
5629 { ParentEstateID U32 }
5630 { RegionID LLUUID }
5631 { Position LLVector3 }
5632 { Offline U8 }
5633 { Dialog U8 } // U8 - IM type
5634 { ID LLUUID }
5635 { Timestamp U32 }
5636 { FromAgentName Variable 1 }
5637 { Message Variable 2 }
5638 { BinaryBucket Variable 2 }
5639 }
5640 }
5641  
5642 // RetrieveInstantMessages - used to get instant messages that
5643 // were persisted out to the database while the user was offline
5644 {
5645 RetrieveInstantMessages Low 255 NotTrusted Unencoded
5646 {
5647 AgentData Single
5648 { AgentID LLUUID }
5649 { SessionID LLUUID }
5650 }
5651 }
5652  
5653 // FindAgent - used to find an agent's global position. I used a
5654 // variable sized LocationBlock so that the message can be recycled with
5655 // minimum new messages and handlers.
5656 {
5657 FindAgent Low 256 NotTrusted Unencoded
5658 {
5659 AgentBlock Single
5660 { Hunter LLUUID }
5661 { Prey LLUUID }
5662 { SpaceIP IPADDR }
5663 }
5664 {
5665 LocationBlock Variable
5666 { GlobalX F64 }
5667 { GlobalY F64 }
5668 }
5669 }
5670  
5671 // Set godlike to 1 if you want to become godlike.
5672 // Set godlike to 0 if you want to relinquish god powers.
5673 // viewer -> simulator -> dataserver
5674 // reliable
5675 {
5676 RequestGodlikePowers Low 257 NotTrusted Unencoded
5677 {
5678 AgentData Single
5679 { AgentID LLUUID }
5680 { SessionID LLUUID }
5681 }
5682 {
5683 RequestBlock Single
5684 { Godlike BOOL }
5685 { Token LLUUID } // viewer packs a null, sim packs token
5686 }
5687 }
5688  
5689 // At the simulator, turn the godlike bit on.
5690 // At the viewer, show the god menu.
5691 // dataserver -> simulator -> viewer
5692 // reliable
5693 {
5694 GrantGodlikePowers Low 258 Trusted Unencoded
5695 {
5696 AgentData Single
5697 { AgentID LLUUID }
5698 { SessionID LLUUID }
5699 }
5700 {
5701 GrantData Single
5702 { GodLevel U8 }
5703 { Token LLUUID } // checked on sim, ignored on viewer
5704 }
5705 }
5706  
5707 // GodlikeMessage - generalized construct for Gods to send messages
5708 // around the system. Each Request has it's own internal protocol.
5709 {
5710 GodlikeMessage Low 259 NotTrusted Zerocoded
5711 {
5712 AgentData Single
5713 { AgentID LLUUID }
5714 { SessionID LLUUID }
5715 { TransactionID LLUUID }
5716 }
5717 {
5718 MethodData Single
5719 { Method Variable 1 }
5720 { Invoice LLUUID }
5721 }
5722 {
5723 ParamList Variable
5724 { Parameter Variable 1 }
5725 }
5726 }
5727  
5728 // EstateOwnerMessage
5729 // format must be identical to above
5730 {
5731 EstateOwnerMessage Low 260 NotTrusted Zerocoded
5732 {
5733 AgentData Single
5734 { AgentID LLUUID }
5735 { SessionID LLUUID }
5736 { TransactionID LLUUID }
5737 }
5738 {
5739 MethodData Single
5740 { Method Variable 1 }
5741 { Invoice LLUUID }
5742 }
5743 {
5744 ParamList Variable
5745 { Parameter Variable 1 }
5746 }
5747 }
5748  
5749 // GenericMessage
5750 // format must be identical to above
5751 // As above, but don't have to be god or estate owner to send.
5752 {
5753 GenericMessage Low 261 NotTrusted Zerocoded
5754 {
5755 AgentData Single
5756 { AgentID LLUUID }
5757 { SessionID LLUUID }
5758 { TransactionID LLUUID }
5759 }
5760 {
5761 MethodData Single
5762 { Method Variable 1 }
5763 { Invoice LLUUID }
5764 }
5765 {
5766 ParamList Variable
5767 { Parameter Variable 1 }
5768 }
5769 }
5770  
5771 // ***************************************************************************
5772 // Requests for possessions, acquisition, money, etc
5773 // ***************************************************************************
5774  
5775 // request for mute list
5776 {
5777 MuteListRequest Low 262 NotTrusted Unencoded
5778 {
5779 AgentData Single
5780 { AgentID LLUUID }
5781 { SessionID LLUUID }
5782 }
5783 {
5784 MuteData Single
5785 { MuteCRC U32 }
5786 }
5787 }
5788  
5789 // update/add someone in the mute list
5790 {
5791 UpdateMuteListEntry Low 263 NotTrusted Unencoded
5792 {
5793 AgentData Single
5794 { AgentID LLUUID }
5795 { SessionID LLUUID }
5796 }
5797 {
5798 MuteData Single
5799 { MuteID LLUUID }
5800 { MuteName Variable 1 }
5801 { MuteType S32 }
5802 { MuteFlags U32 }
5803 }
5804 }
5805  
5806 // Remove a mute list entry.
5807 {
5808 RemoveMuteListEntry Low 264 NotTrusted Unencoded
5809 {
5810 AgentData Single
5811 { AgentID LLUUID }
5812 { SessionID LLUUID }
5813 }
5814 {
5815 MuteData Single
5816 { MuteID LLUUID }
5817 { MuteName Variable 1 }
5818 }
5819 }
5820  
5821  
5822 //
5823 // Inventory update messages
5824 // UDP DEPRECATED - Now a viewer capability.
5825  
5826 {
5827 CopyInventoryFromNotecard Low 265 NotTrusted Zerocoded UDPDeprecated
5828 {
5829 AgentData Single
5830 { AgentID LLUUID }
5831 { SessionID LLUUID }
5832 }
5833 {
5834 NotecardData Single
5835 { NotecardItemID LLUUID }
5836 { ObjectID LLUUID }
5837 }
5838 {
5839 InventoryData Variable
5840 { ItemID LLUUID }
5841 { FolderID LLUUID }
5842 }
5843 }
5844  
5845 //
5846 // This is used bi-directionally between sim, dataserver, and viewer.
5847 // THIS MESSAGE CAN NOT CREATE NEW INVENTORY ITEMS.
5848 //
5849 {
5850 UpdateInventoryItem Low 266 NotTrusted Zerocoded
5851 {
5852 AgentData Single
5853 { AgentID LLUUID }
5854 { SessionID LLUUID }
5855 { TransactionID LLUUID }
5856 }
5857 {
5858 InventoryData Variable
5859 { ItemID LLUUID }
5860 { FolderID LLUUID }
5861 { CallbackID U32 } // Async Response
5862  
5863 { CreatorID LLUUID } // permissions
5864 { OwnerID LLUUID } // permissions
5865 { GroupID LLUUID } // permissions
5866 { BaseMask U32 } // permissions
5867 { OwnerMask U32 } // permissions
5868 { GroupMask U32 } // permissions
5869 { EveryoneMask U32 } // permissions
5870 { NextOwnerMask U32 } // permissions
5871 { GroupOwned BOOL } // permissions
5872  
5873 { TransactionID LLUUID } // TransactionID: new assets only
5874 { Type S8 }
5875 { InvType S8 }
5876 { Flags U32 }
5877 { SaleType U8 }
5878 { SalePrice S32 }
5879 { Name Variable 1 }
5880 { Description Variable 1 }
5881 { CreationDate S32 }
5882 { CRC U32 }
5883 }
5884 }
5885  
5886 //
5887 // For sim to request update/create.
5888 // DO NOT ALLOW THIS FROM THE VIEWER.
5889 //
5890 {
5891 UpdateCreateInventoryItem Low 267 Trusted Zerocoded
5892 {
5893 AgentData Single
5894 { AgentID LLUUID }
5895 { SimApproved BOOL }
5896 { TransactionID LLUUID }
5897 }
5898 {
5899 InventoryData Variable
5900 { ItemID LLUUID }
5901 { FolderID LLUUID }
5902 { CallbackID U32 } // Async Response
5903  
5904 { CreatorID LLUUID } // permissions
5905 { OwnerID LLUUID } // permissions
5906 { GroupID LLUUID } // permissions
5907 { BaseMask U32 } // permissions
5908 { OwnerMask U32 } // permissions
5909 { GroupMask U32 } // permissions
5910 { EveryoneMask U32 } // permissions
5911 { NextOwnerMask U32 } // permissions
5912 { GroupOwned BOOL } // permissions
5913  
5914 { AssetID LLUUID }
5915 { Type S8 }
5916 { InvType S8 }
5917 { Flags U32 }
5918 { SaleType U8 }
5919 { SalePrice S32 }
5920 { Name Variable 1 }
5921 { Description Variable 1 }
5922 { CreationDate S32 }
5923 { CRC U32 }
5924 }
5925 }
5926  
5927 {
5928 MoveInventoryItem Low 268 NotTrusted Zerocoded
5929 {
5930 AgentData Single
5931 { AgentID LLUUID }
5932 { SessionID LLUUID }
5933 { Stamp BOOL } // should the server re-timestamp?
5934 }
5935 {
5936 InventoryData Variable
5937 { ItemID LLUUID }
5938 { FolderID LLUUID }
5939 { NewName Variable 1 }
5940 }
5941 }
5942  
5943 // copy inventory item by item id to specified destination folder,
5944 // send out bulk inventory update when done.
5945 //
5946 // Inventory items are only unique for {agent, inv_id} pairs;
5947 // the OldItemID needs to be paired with the OldAgentID to
5948 // produce a unique inventory item.
5949 {
5950 CopyInventoryItem Low 269 NotTrusted Zerocoded
5951 {
5952 AgentData Single
5953 { AgentID LLUUID }
5954 { SessionID LLUUID }
5955 }
5956 {
5957 InventoryData Variable
5958 { CallbackID U32 } // Async response
5959 { OldAgentID LLUUID }
5960 { OldItemID LLUUID }
5961 { NewFolderID LLUUID }
5962 { NewName Variable 1 }
5963 }
5964 }
5965  
5966 {
5967 RemoveInventoryItem Low 270 NotTrusted Unencoded
5968 {
5969 AgentData Single
5970 { AgentID LLUUID }
5971 { SessionID LLUUID }
5972 }
5973 {
5974 InventoryData Variable
5975 { ItemID LLUUID }
5976 }
5977 }
5978  
5979 {
5980 ChangeInventoryItemFlags Low 271 NotTrusted Unencoded
5981 {
5982 AgentData Single
5983 { AgentID LLUUID }
5984 { SessionID LLUUID }
5985 }
5986 {
5987 InventoryData Variable
5988 { ItemID LLUUID }
5989 { Flags U32 }
5990 }
5991 }
5992  
5993 //
5994 // Sim outgoing only (to dataserver, to viewer)
5995 // NOT viewer to sim, sim should not have handler, ever
5996 // This message is currently only uses objects, so the viewer ignores
5997 // the asset id.
5998 {
5999 SaveAssetIntoInventory Low 272 Trusted Unencoded
6000 {
6001 AgentData Single
6002 { AgentID LLUUID }
6003 }
6004 {
6005 InventoryData Single
6006 { ItemID LLUUID }
6007 { NewAssetID LLUUID }
6008 }
6009 }
6010  
6011 {
6012 CreateInventoryFolder Low 273 NotTrusted Unencoded
6013 {
6014 AgentData Single
6015 { AgentID LLUUID }
6016 { SessionID LLUUID }
6017 }
6018 {
6019 FolderData Single
6020 { FolderID LLUUID }
6021 { ParentID LLUUID }
6022 { Type S8 }
6023 { Name Variable 1 }
6024 }
6025 }
6026  
6027 {
6028 UpdateInventoryFolder Low 274 NotTrusted Unencoded
6029 {
6030 AgentData Single
6031 { AgentID LLUUID }
6032 { SessionID LLUUID }
6033 }
6034 {
6035 FolderData Variable
6036 { FolderID LLUUID }
6037 { ParentID LLUUID }
6038 { Type S8 }
6039 { Name Variable 1 }
6040 }
6041 }
6042  
6043 {
6044 MoveInventoryFolder Low 275 NotTrusted Zerocoded
6045 {
6046 AgentData Single
6047 { AgentID LLUUID }
6048 { SessionID LLUUID }
6049 { Stamp BOOL } // should the server re-timestamp children
6050 }
6051 {
6052 InventoryData Variable
6053 { FolderID LLUUID }
6054 { ParentID LLUUID }
6055 }
6056 }
6057  
6058 {
6059 RemoveInventoryFolder Low 276 NotTrusted Unencoded
6060 {
6061 AgentData Single
6062 { AgentID LLUUID }
6063 { SessionID LLUUID }
6064 }
6065 {
6066 FolderData Variable
6067 { FolderID LLUUID }
6068 }
6069 }
6070  
6071 // Get inventory segment.
6072 {
6073 FetchInventoryDescendents Low 277 NotTrusted Zerocoded
6074 {
6075 AgentData Single
6076 { AgentID LLUUID }
6077 { SessionID LLUUID }
6078 }
6079 {
6080 InventoryData Single
6081 { FolderID LLUUID }
6082 { OwnerID LLUUID }
6083 { SortOrder S32 } // 0 = name, 1 = time
6084 { FetchFolders BOOL } // false will omit folders in query
6085 { FetchItems BOOL } // false will omit items in query
6086 }
6087 }
6088  
6089 // return inventory segment.
6090 // *NOTE: This could be compressed more since we already know the
6091 // parent_id for folders and the folder_id for items, but this is
6092 // reasonable until we heve server side inventory.
6093 {
6094 InventoryDescendents Low 278 Trusted Zerocoded
6095 {
6096 AgentData Single
6097 { AgentID LLUUID }
6098 { FolderID LLUUID }
6099 { OwnerID LLUUID } // owner of the folders creatd.
6100 { Version S32 } // version of the folder for caching
6101 { Descendents S32 } // count to help with caching
6102 }
6103 {
6104 FolderData Variable
6105 { FolderID LLUUID }
6106 { ParentID LLUUID }
6107 { Type S8 }
6108 { Name Variable 1 }
6109 }
6110 {
6111 ItemData Variable
6112 { ItemID LLUUID }
6113 { FolderID LLUUID }
6114 { CreatorID LLUUID } // permissions
6115 { OwnerID LLUUID } // permissions
6116 { GroupID LLUUID } // permissions
6117 { BaseMask U32 } // permissions
6118 { OwnerMask U32 } // permissions
6119 { GroupMask U32 } // permissions
6120 { EveryoneMask U32 } // permissions
6121 { NextOwnerMask U32 } // permissions
6122 { GroupOwned BOOL } // permissions
6123 { AssetID LLUUID }
6124 { Type S8 }
6125 { InvType S8 }
6126 { Flags U32 }
6127 { SaleType U8 }
6128 { SalePrice S32 }
6129 { Name Variable 1 }
6130 { Description Variable 1 }
6131 { CreationDate S32 }
6132 { CRC U32 }
6133 }
6134 }
6135  
6136 // Get inventory item(s) - response comes through FetchInventoryReply
6137 {
6138 FetchInventory Low 279 NotTrusted Zerocoded
6139 {
6140 AgentData Single
6141 { AgentID LLUUID }
6142 { SessionID LLUUID }
6143 }
6144 {
6145 InventoryData Variable
6146 { OwnerID LLUUID }
6147 { ItemID LLUUID }
6148 }
6149 }
6150  
6151 // response to fetch inventory
6152 {
6153 FetchInventoryReply Low 280 Trusted Zerocoded
6154 {
6155 AgentData Single
6156 { AgentID LLUUID }
6157 }
6158 {
6159 InventoryData Variable
6160 { ItemID LLUUID }
6161 { FolderID LLUUID }
6162  
6163 { CreatorID LLUUID } // permissions
6164 { OwnerID LLUUID } // permissions
6165 { GroupID LLUUID } // permissions
6166 { BaseMask U32 } // permissions
6167 { OwnerMask U32 } // permissions
6168 { GroupMask U32 } // permissions
6169 { EveryoneMask U32 } // permissions
6170 { NextOwnerMask U32 } // permissions
6171 { GroupOwned BOOL } // permissions
6172  
6173 { AssetID LLUUID }
6174 { Type S8 }
6175 { InvType S8 }
6176 { Flags U32 }
6177 { SaleType U8 }
6178 { SalePrice S32 }
6179 { Name Variable 1 }
6180 { Description Variable 1 }
6181 { CreationDate S32 }
6182 { CRC U32 }
6183 }
6184 }
6185  
6186 // Can only fit around 7 items per packet - that's the way it goes. At
6187 // least many bulk updates can be packed.
6188 // Only from dataserver->sim->viewer
6189 {
6190 BulkUpdateInventory Low 281 Trusted Zerocoded
6191 {
6192 AgentData Single
6193 { AgentID LLUUID }
6194 { TransactionID LLUUID }
6195 }
6196 {
6197 FolderData Variable
6198 { FolderID LLUUID }
6199 { ParentID LLUUID }
6200 { Type S8 }
6201 { Name Variable 1 }
6202 }
6203 {
6204 ItemData Variable
6205 { ItemID LLUUID }
6206 { CallbackID U32 } // Async Response
6207 { FolderID LLUUID }
6208 { CreatorID LLUUID } // permissions
6209 { OwnerID LLUUID } // permissions
6210 { GroupID LLUUID } // permissions
6211 { BaseMask U32 } // permissions
6212 { OwnerMask U32 } // permissions
6213 { GroupMask U32 } // permissions
6214 { EveryoneMask U32 } // permissions
6215 { NextOwnerMask U32 } // permissions
6216 { GroupOwned BOOL } // permissions
6217 { AssetID LLUUID }
6218 { Type S8 }
6219 { InvType S8 }
6220 { Flags U32 }
6221 { SaleType U8 }
6222 { SalePrice S32 }
6223 { Name Variable 1 }
6224 { Description Variable 1 }
6225 { CreationDate S32 }
6226 { CRC U32 }
6227 }
6228 }
6229  
6230  
6231  
6232 // request permissions for agent id to get the asset for owner_id's
6233 // item_id.
6234 {
6235 RequestInventoryAsset Low 282 Trusted Unencoded
6236 {
6237 QueryData Single
6238 { QueryID LLUUID }
6239 { AgentID LLUUID }
6240 { OwnerID LLUUID }
6241 { ItemID LLUUID }
6242 }
6243 }
6244  
6245 // response to RequestInventoryAsset
6246 // lluuid will be null if agentid in the request above cannot read asset
6247 {
6248 InventoryAssetResponse Low 283 Trusted Unencoded
6249 {
6250 QueryData Single
6251 { QueryID LLUUID }
6252 { AssetID LLUUID }
6253 { IsReadable BOOL }
6254 }
6255 }
6256  
6257 // This is the new improved way to remove inventory items. It is
6258 // currently only supported in viewer->userserver->dataserver
6259 // messages typically initiated by an empty trash method.
6260 {
6261 RemoveInventoryObjects Low 284 NotTrusted Unencoded
6262 {
6263 AgentData Single
6264 { AgentID LLUUID }
6265 { SessionID LLUUID }
6266 }
6267 {
6268 FolderData Variable
6269 { FolderID LLUUID }
6270 }
6271 {
6272 ItemData Variable
6273 { ItemID LLUUID }
6274 }
6275 }
6276  
6277 // This is how you remove inventory when you're not even sure what it
6278 // is - only it's parenting.
6279 {
6280 PurgeInventoryDescendents Low 285 NotTrusted Zerocoded
6281 {
6282 AgentData Single
6283 { AgentID LLUUID }
6284 { SessionID LLUUID }
6285 }
6286 {
6287 InventoryData Single
6288 { FolderID LLUUID }
6289 }
6290 }
6291  
6292 // These messages are viewer->simulator requests to update a task's
6293 // inventory.
6294 // if Key == 0, itemid is the key. if Key == 1, assetid is the key.
6295 {
6296 UpdateTaskInventory Low 286 NotTrusted Zerocoded
6297 {
6298 AgentData Single
6299 { AgentID LLUUID }
6300 { SessionID LLUUID }
6301 }
6302 {
6303 UpdateData Single
6304 { LocalID U32 }
6305 { Key U8 }
6306 }
6307 {
6308 InventoryData Single
6309 { ItemID LLUUID }
6310 { FolderID LLUUID }
6311 { CreatorID LLUUID } // permissions
6312 { OwnerID LLUUID } // permissions
6313 { GroupID LLUUID } // permissions
6314 { BaseMask U32 } // permissions
6315 { OwnerMask U32 } // permissions
6316 { GroupMask U32 } // permissions
6317 { EveryoneMask U32 } // permissions
6318 { NextOwnerMask U32 } // permissions
6319 { GroupOwned BOOL } // permissions
6320 { TransactionID LLUUID }
6321 { Type S8 }
6322 { InvType S8 }
6323 { Flags U32 }
6324 { SaleType U8 }
6325 { SalePrice S32 }
6326 { Name Variable 1 }
6327 { Description Variable 1 }
6328 { CreationDate S32 }
6329 { CRC U32 }
6330 }
6331 }
6332  
6333 {
6334 RemoveTaskInventory Low 287 NotTrusted Zerocoded
6335 {
6336 AgentData Single
6337 { AgentID LLUUID }
6338 { SessionID LLUUID }
6339 }
6340 {
6341 InventoryData Single
6342 { LocalID U32 }
6343 { ItemID LLUUID }
6344 }
6345 }
6346  
6347 {
6348 MoveTaskInventory Low 288 NotTrusted Unencoded
6349 {
6350 AgentData Single
6351 { AgentID LLUUID }
6352 { SessionID LLUUID }
6353 { FolderID LLUUID }
6354 }
6355 {
6356 InventoryData Single
6357 { LocalID U32 }
6358 { ItemID LLUUID }
6359 }
6360 }
6361  
6362 {
6363 RequestTaskInventory Low 289 NotTrusted Unencoded
6364 {
6365 AgentData Single
6366 { AgentID LLUUID }
6367 { SessionID LLUUID }
6368 }
6369 {
6370 InventoryData Single
6371 { LocalID U32 }
6372 }
6373 }
6374  
6375 {
6376 ReplyTaskInventory Low 290 Trusted Zerocoded
6377 {
6378 InventoryData Single
6379 { TaskID LLUUID }
6380 { Serial S16 } // S16
6381 { Filename Variable 1 }
6382 }
6383 }
6384  
6385 // These messages are viewer->simulator requests regarding objects
6386 // which are currently being simulated. The viewer will get an
6387 // UpdateInventoryItem response if a DeRez succeeds, and the object
6388 // will appear if a RezObject succeeds.
6389 // The Destination field tells where the derez should wind up, and the
6390 // meaning of DestinationID depends on it. For example, if the
6391 // destination is a category, then the destination is the category id. If
6392 // the destination is a task inventory, then the destination id is the
6393 // task id.
6394 // The transaction id is generated by the viewer on derez, and then
6395 // the packets are counted and numbered. The rest of the information is
6396 // just duplicated (it's not that much, and derezzes that span multiple
6397 // packets will be rare.)
6398 {
6399 DeRezObject Low 291 NotTrusted Zerocoded
6400 {
6401 AgentData Single
6402 { AgentID LLUUID }
6403 { SessionID LLUUID }
6404 }
6405 {
6406 AgentBlock Single
6407 { GroupID LLUUID }
6408 { Destination U8 }
6409 { DestinationID LLUUID } // see above
6410 { TransactionID LLUUID }
6411 { PacketCount U8 }
6412 { PacketNumber U8 }
6413 }
6414 {
6415 ObjectData Variable
6416 { ObjectLocalID U32 } // object id in world
6417 }
6418 }
6419  
6420 // This message is sent when a derez succeeds, but there's no way to
6421 // know, since no inventory is created on the viewer. For example, when
6422 // saving into task inventory.
6423 {
6424 DeRezAck Low 292 Trusted Unencoded
6425 {
6426 TransactionData Single
6427 { TransactionID LLUUID }
6428 { Success BOOL }
6429 }
6430 }
6431  
6432 // This message is sent from viewer -> simulator when the viewer wants
6433 // to rez an object out of inventory.
6434 {
6435 RezObject Low 293 NotTrusted Zerocoded
6436 {
6437 AgentData Single
6438 { AgentID LLUUID }
6439 { SessionID LLUUID }
6440 { GroupID LLUUID }
6441 }
6442 {
6443 RezData Single
6444 { FromTaskID LLUUID }
6445 { BypassRaycast U8 }
6446 { RayStart LLVector3 }
6447 { RayEnd LLVector3 }
6448 { RayTargetID LLUUID }
6449 { RayEndIsIntersection BOOL }
6450 { RezSelected BOOL }
6451 { RemoveItem BOOL }
6452 { ItemFlags U32 }
6453 { GroupMask U32 }
6454 { EveryoneMask U32 }
6455 { NextOwnerMask U32 }
6456 }
6457 {
6458 InventoryData Single
6459 { ItemID LLUUID }
6460 { FolderID LLUUID }
6461 { CreatorID LLUUID } // permissions
6462 { OwnerID LLUUID } // permissions
6463 { GroupID LLUUID } // permissions
6464 { BaseMask U32 } // permissions
6465 { OwnerMask U32 } // permissions
6466 { GroupMask U32 } // permissions
6467 { EveryoneMask U32 } // permissions
6468 { NextOwnerMask U32 } // permissions
6469 { GroupOwned BOOL } // permissions
6470 { TransactionID LLUUID }
6471 { Type S8 }
6472 { InvType S8 }
6473 { Flags U32 }
6474 { SaleType U8 }
6475 { SalePrice S32 }
6476 { Name Variable 1 }
6477 { Description Variable 1 }
6478 { CreationDate S32 }
6479 { CRC U32 }
6480 }
6481 }
6482  
6483 // This message is sent from viewer -> simulator when the viewer wants
6484 // to rez an object from a notecard.
6485 {
6486 RezObjectFromNotecard Low 294 NotTrusted Zerocoded
6487 {
6488 AgentData Single
6489 { AgentID LLUUID }
6490 { SessionID LLUUID }
6491 { GroupID LLUUID }
6492 }
6493 {
6494 RezData Single
6495 { FromTaskID LLUUID }
6496 { BypassRaycast U8 }
6497 { RayStart LLVector3 }
6498 { RayEnd LLVector3 }
6499 { RayTargetID LLUUID }
6500 { RayEndIsIntersection BOOL }
6501 { RezSelected BOOL }
6502 { RemoveItem BOOL }
6503 { ItemFlags U32 }
6504 { GroupMask U32 }
6505 { EveryoneMask U32 }
6506 { NextOwnerMask U32 }
6507 }
6508 {
6509 NotecardData Single
6510 { NotecardItemID LLUUID }
6511 { ObjectID LLUUID }
6512 }
6513 {
6514 InventoryData Variable
6515 { ItemID LLUUID }
6516 }
6517 }
6518  
6519  
6520 // sim -> dataserver
6521 // sent during agent to agent inventory transfers
6522 {
6523 TransferInventory Low 295 Trusted Zerocoded
6524 {
6525 InfoBlock Single
6526 { SourceID LLUUID }
6527 { DestID LLUUID }
6528 { TransactionID LLUUID }
6529 }
6530 {
6531 InventoryBlock Variable
6532 { InventoryID LLUUID }
6533 { Type S8 }
6534 }
6535 }
6536  
6537 // dataserver -> sim
6538 // InventoryID is the id of the inventory object that the end user
6539 // should discard if they deny the transfer.
6540 {
6541 TransferInventoryAck Low 296 Trusted Zerocoded
6542 {
6543 InfoBlock Single
6544 { TransactionID LLUUID }
6545 { InventoryID LLUUID }
6546 }
6547 }
6548  
6549  
6550 {
6551 AcceptFriendship Low 297 NotTrusted Unencoded
6552 {
6553 AgentData Single
6554 { AgentID LLUUID }
6555 { SessionID LLUUID }
6556 }
6557 {
6558 TransactionBlock Single
6559 { TransactionID LLUUID }
6560 }
6561 {
6562 FolderData Variable
6563 { FolderID LLUUID } // place to put calling card.
6564 }
6565 }
6566  
6567 {
6568 DeclineFriendship Low 298 NotTrusted Unencoded
6569 {
6570 AgentData Single
6571 { AgentID LLUUID }
6572 { SessionID LLUUID }
6573 }
6574 {
6575 TransactionBlock Single
6576 { TransactionID LLUUID }
6577 }
6578 }
6579  
6580 {
6581 FormFriendship Low 299 Trusted Unencoded
6582 {
6583 AgentBlock Single
6584 { SourceID LLUUID }
6585 { DestID LLUUID }
6586 }
6587 }
6588  
6589 // Cancels user relationship
6590 // Updates inventory for both users.
6591 // Stops agent tracking in userserver.
6592 // viewer -> userserver -> dataserver
6593 // reliable
6594 {
6595 TerminateFriendship Low 300 NotTrusted Unencoded
6596 {
6597 AgentData Single
6598 { AgentID LLUUID }
6599 { SessionID LLUUID }
6600 }
6601 {
6602 ExBlock Single
6603 { OtherID LLUUID }
6604 }
6605 }
6606  
6607 // used to give someone a calling card.
6608 {
6609 OfferCallingCard Low 301 NotTrusted Unencoded
6610 {
6611 AgentData Single
6612 { AgentID LLUUID }
6613 { SessionID LLUUID }
6614 }
6615 {
6616 AgentBlock Single
6617 { DestID LLUUID }
6618 { TransactionID LLUUID }
6619 }
6620 }
6621  
6622 {
6623 AcceptCallingCard Low 302 NotTrusted Unencoded
6624 {
6625 AgentData Single
6626 { AgentID LLUUID }
6627 { SessionID LLUUID }
6628 }
6629 {
6630 TransactionBlock Single
6631 { TransactionID LLUUID }
6632 }
6633 {
6634 FolderData Variable
6635 { FolderID LLUUID } // place to put calling card.
6636 }
6637 }
6638  
6639 {
6640 DeclineCallingCard Low 303 NotTrusted Unencoded
6641 {
6642 AgentData Single
6643 { AgentID LLUUID }
6644 { SessionID LLUUID }
6645 }
6646 {
6647 TransactionBlock Single
6648 { TransactionID LLUUID }
6649 }
6650 }
6651  
6652  
6653 // Rez a script onto an object
6654 {
6655 RezScript Low 304 NotTrusted Zerocoded
6656 {
6657 AgentData Single
6658 { AgentID LLUUID }
6659 { SessionID LLUUID }
6660 { GroupID LLUUID }
6661 }
6662 {
6663 UpdateBlock Single
6664 { ObjectLocalID U32 } // object id in world
6665 { Enabled BOOL } // is script rezzed in enabled?
6666 }
6667 {
6668 InventoryBlock Single
6669 { ItemID LLUUID }
6670 { FolderID LLUUID }
6671 { CreatorID LLUUID } // permissions
6672 { OwnerID LLUUID } // permissions
6673 { GroupID LLUUID } // permissions
6674 { BaseMask U32 } // permissions
6675 { OwnerMask U32 } // permissions
6676 { GroupMask U32 } // permissions
6677 { EveryoneMask U32 } // permissions
6678 { NextOwnerMask U32 } // permissions
6679 { GroupOwned BOOL } // permissions
6680 { TransactionID LLUUID }
6681 { Type S8 }
6682 { InvType S8 }
6683 { Flags U32 }
6684 { SaleType U8 }
6685 { SalePrice S32 }
6686 { Name Variable 1 }
6687 { Description Variable 1 }
6688 { CreationDate S32 }
6689 { CRC U32 }
6690 }
6691 }
6692  
6693 // Create inventory
6694 {
6695 CreateInventoryItem Low 305 NotTrusted Zerocoded
6696 {
6697 AgentData Single
6698 { AgentID LLUUID }
6699 { SessionID LLUUID }
6700 }
6701 {
6702 InventoryBlock Single
6703 { CallbackID U32 } // Async Response
6704 { FolderID LLUUID }
6705 { TransactionID LLUUID } // Going to become TransactionID
6706 { NextOwnerMask U32 }
6707 { Type S8 }
6708 { InvType S8 }
6709 { WearableType U8 }
6710 { Name Variable 1 }
6711 { Description Variable 1 }
6712 }
6713 }
6714  
6715 // give agent a landmark for an event.
6716 {
6717 CreateLandmarkForEvent Low 306 NotTrusted Zerocoded
6718 {
6719 AgentData Single
6720 { AgentID LLUUID }
6721 { SessionID LLUUID }
6722 }
6723 {
6724 EventData Single
6725 { EventID U32 }
6726 }
6727 {
6728 InventoryBlock Single
6729 { FolderID LLUUID }
6730 { Name Variable 1 }
6731 }
6732 }
6733  
6734 {
6735 EventLocationRequest Low 307 Trusted Zerocoded
6736 {
6737 QueryData Single
6738 { QueryID LLUUID }
6739 }
6740 {
6741 EventData Single
6742 { EventID U32 }
6743 }
6744 }
6745  
6746 {
6747 EventLocationReply Low 308 Trusted Zerocoded
6748 {
6749 QueryData Single
6750 { QueryID LLUUID }
6751 }
6752 {
6753 EventData Single
6754 { Success BOOL }
6755 { RegionID LLUUID }
6756 { RegionPos LLVector3 }
6757 }
6758 }
6759  
6760 // get information about landmarks. Used by viewers for determining
6761 // the location of a landmark, and by simulators for teleport
6762 {
6763 RegionHandleRequest Low 309 NotTrusted Unencoded
6764 {
6765 RequestBlock Single
6766 { RegionID LLUUID }
6767 }
6768 }
6769  
6770 {
6771 RegionIDAndHandleReply Low 310 Trusted Unencoded
6772 {
6773 ReplyBlock Single
6774 { RegionID LLUUID }
6775 { RegionHandle U64 }
6776 }
6777 }
6778  
6779 // Move money from one agent to another. Validation will happen at the
6780 // simulator, the dataserver will actually do the work. Dataserver
6781 // generates a MoneyBalance message in reply. The simulator
6782 // will generate a MoneyTransferBackend in response to this.
6783 // viewer -> simulator -> dataserver
6784 {
6785 MoneyTransferRequest Low 311 NotTrusted Zerocoded
6786 {
6787 AgentData Single
6788 { AgentID LLUUID }
6789 { SessionID LLUUID }
6790 }
6791 {
6792 MoneyData Single
6793 { SourceID LLUUID }
6794 { DestID LLUUID } // destination of the transfer
6795 { Flags U8 }
6796 { Amount S32 }
6797 { AggregatePermNextOwner U8 }
6798 { AggregatePermInventory U8 }
6799 { TransactionType S32 } // see lltransactiontypes.h
6800 { Description Variable 1 } // string, name of item for purchases
6801 }
6802 }
6803  
6804 // And, the money transfer
6805 // *NOTE: Unused as of 2010-04-06, because all back-end money transactions
6806 // are done with web services via L$ API. JC
6807 {
6808 MoneyTransferBackend Low 312 Trusted Zerocoded
6809 {
6810 MoneyData Single
6811 { TransactionID LLUUID }
6812 { TransactionTime U32 } // utc seconds since epoch
6813 { SourceID LLUUID }
6814 { DestID LLUUID } // destination of the transfer
6815 { Flags U8 }
6816 { Amount S32 }
6817 { AggregatePermNextOwner U8 }
6818 { AggregatePermInventory U8 }
6819 { TransactionType S32 } // see lltransactiontypes.h
6820 { RegionID LLUUID } // region sending the request, for logging
6821 { GridX U32 } // *HACK: database doesn't have region_id in schema
6822 { GridY U32 } // *HACK: database doesn't have region_id in schema
6823 { Description Variable 1 } // string, name of item for purchases
6824 }
6825 }
6826  
6827  
6828 // viewer -> userserver -> dataserver
6829 // Reliable
6830 {
6831 MoneyBalanceRequest Low 313 NotTrusted Zerocoded
6832 {
6833 AgentData Single
6834 { AgentID LLUUID }
6835 { SessionID LLUUID }
6836 }
6837 {
6838 MoneyData Single
6839 { TransactionID LLUUID }
6840 }
6841 }
6842  
6843  
6844 // dataserver -> simulator -> viewer
6845 {
6846 MoneyBalanceReply Low 314 Trusted Zerocoded
6847 {
6848 MoneyData Single
6849 { AgentID LLUUID }
6850 { TransactionID LLUUID }
6851 { TransactionSuccess BOOL } // BOOL
6852 { MoneyBalance S32 }
6853 { SquareMetersCredit S32 }
6854 { SquareMetersCommitted S32 }
6855 { Description Variable 1 } // string
6856 }
6857 // For replies that are part of a transaction (buying something) provide
6858 // metadata for localization. If TransactionType is 0, the message is
6859 // purely a balance update. Added for server 1.40 and viewer 2.1. JC
6860 {
6861 TransactionInfo Single
6862 { TransactionType S32 } // lltransactiontype.h
6863 { SourceID LLUUID }
6864 { IsSourceGroup BOOL }
6865 { DestID LLUUID }
6866 { IsDestGroup BOOL }
6867 { Amount S32 }
6868 { ItemDescription Variable 1 } // string
6869 }
6870 }
6871  
6872  
6873 // RoutedMoneyBalanceReply
6874 // This message is used when a dataserver needs to send updated
6875 // money balance information to a simulator other than the one it
6876 // is connected to. It uses the standard TransferBlock format.
6877 // dataserver -> simulator -> spaceserver -> simulator -> viewer
6878 // reliable
6879 {
6880 RoutedMoneyBalanceReply Low 315 Trusted Zerocoded
6881 {
6882 TargetBlock Single
6883 { TargetIP IPADDR } // U32 encoded IP
6884 { TargetPort IPPORT }
6885 }
6886 {
6887 MoneyData Single
6888 { AgentID LLUUID }
6889 { TransactionID LLUUID }
6890 { TransactionSuccess BOOL } // BOOL
6891 { MoneyBalance S32 }
6892 { SquareMetersCredit S32 }
6893 { SquareMetersCommitted S32 }
6894 { Description Variable 1 } // string
6895 }
6896 // See MoneyBalanceReply above.
6897 {
6898 TransactionInfo Single
6899 { TransactionType S32 } // lltransactiontype.h
6900 { SourceID LLUUID }
6901 { IsSourceGroup BOOL }
6902 { DestID LLUUID }
6903 { IsDestGroup BOOL }
6904 { Amount S32 }
6905 { ItemDescription Variable 1 } // string
6906 }
6907 }
6908  
6909  
6910  
6911 //---------------------------------------------------------------------------
6912 // Gesture saves/loads
6913 //---------------------------------------------------------------------------
6914  
6915  
6916 // Tell the database that some gestures are now active
6917 // viewer -> sim -> data
6918 {
6919 ActivateGestures Low 316 NotTrusted Unencoded
6920 {
6921 AgentData Single
6922 { AgentID LLUUID }
6923 { SessionID LLUUID }
6924 { Flags U32 }
6925 }
6926 {
6927 Data Variable
6928 { ItemID LLUUID }
6929 { AssetID LLUUID }
6930 { GestureFlags U32 }
6931 }
6932 }
6933  
6934 // Tell the database some gestures are no longer active
6935 // viewer -> sim -> data
6936 {
6937 DeactivateGestures Low 317 NotTrusted Unencoded
6938 {
6939 AgentData Single
6940 { AgentID LLUUID }
6941 { SessionID LLUUID }
6942 { Flags U32 }
6943 }
6944 {
6945 Data Variable
6946 { ItemID LLUUID }
6947 { GestureFlags U32 }
6948 }
6949 }
6950  
6951 //---------------------------------------------------------------------------
6952 //
6953 //---------------------------------------------------------------------------
6954  
6955 // userserver -> viewer, up-to-date inventory is here
6956 // could be sent as a result of spam
6957 // as well as in response to InventoryRequest
6958 //{
6959 // InventoryUpdate Low Trusted Unencoded
6960 // {
6961 // AgentData Single
6962 // { AgentID LLUUID }
6963 // }
6964 // {
6965 // InventoryData Single
6966 // { IsComplete U8 }
6967 // { Filename Variable 1 }
6968 // }
6969 //}
6970  
6971 // dataserver-> userserver -> viewer to move around the mute list
6972 {
6973 MuteListUpdate Low 318 Trusted Unencoded
6974 {
6975 MuteData Single
6976 { AgentID LLUUID }
6977 { Filename Variable 1 }
6978 }
6979 }
6980  
6981 // tell viewer to use the local mute cache
6982 {
6983 UseCachedMuteList Low 319 NotTrusted Unencoded
6984 {
6985 AgentData Single
6986 { AgentID LLUUID }
6987 }
6988 }
6989  
6990 // Sent from viewer to simulator to set user rights. This message will be
6991 // relayed up to the dataserver through a PUT. If that
6992 // succeeds, an UpdateUserRights will be relayed to the originating
6993 // viewer, and a presence lookup will be performed to find
6994 // agent-related and the same PUT will be issued to the sim host if
6995 // they are online.
6996 {
6997 GrantUserRights Low 320 NotTrusted Unencoded
6998 {
6999 AgentData Single
7000 { AgentID LLUUID }
7001 { SessionID LLUUID }
7002 }
7003 {
7004 Rights Variable
7005 { AgentRelated LLUUID }
7006 { RelatedRights S32 }
7007 }
7008 }
7009  
7010 // This message is sent from the simulator to the viewer to indicate a
7011 // targets granted rights. This is only sent to the originator of the
7012 // request and the target agent if it is a modify or map
7013 // right. Adding/removing online status rights will show up as an
7014 // online/offline notification.
7015 {
7016 ChangeUserRights Low 321 Trusted Unencoded
7017 {
7018 AgentData Single
7019 { AgentID LLUUID }
7020 }
7021 {
7022 Rights Variable
7023 { AgentRelated LLUUID }
7024 { RelatedRights S32 }
7025 }
7026 }
7027  
7028 // notification for login and logout.
7029 // source_sim -> dest_viewer
7030 {
7031 OnlineNotification Low 322 Trusted Unencoded
7032 {
7033 AgentBlock Variable
7034 { AgentID LLUUID }
7035 }
7036 }
7037 {
7038 OfflineNotification Low 323 Trusted Unencoded
7039 {
7040 AgentBlock Variable
7041 { AgentID LLUUID }
7042 }
7043 }
7044  
7045  
7046 // SetStartLocationRequest
7047 // viewer -> sim
7048 // failure checked at sim and triggers ImprovedInstantMessage
7049 // success triggers SetStartLocation
7050 {
7051 SetStartLocationRequest Low 324 NotTrusted Zerocoded
7052 {
7053 AgentData Single
7054 { AgentID LLUUID }
7055 { SessionID LLUUID }
7056 }
7057 {
7058 StartLocationData Single
7059 { SimName Variable 1 } // string
7060 { LocationID U32 }
7061 { LocationPos LLVector3 } // region coords
7062 { LocationLookAt LLVector3 }
7063 }
7064 }
7065  
7066 // SetStartLocation
7067 // sim -> dataserver
7068 {
7069 SetStartLocation Low 325 Trusted Zerocoded
7070 {
7071 StartLocationData Single
7072 { AgentID LLUUID }
7073 { RegionID LLUUID }
7074 { LocationID U32 }
7075 { RegionHandle U64 }
7076 { LocationPos LLVector3 } // region coords
7077 { LocationLookAt LLVector3 }
7078 }
7079 }
7080  
7081  
7082 // ***************************************************************************
7083 // Launcher messages
7084 // ***************************************************************************
7085  
7086  
7087 // NetTest - This goes back and forth to the space server because of
7088 // problems determining the port
7089 {
7090 NetTest Low 326 NotTrusted Unencoded
7091 {
7092 NetBlock Single
7093 { Port IPPORT }
7094 }
7095 }
7096  
7097 // SetChildCount - Sent to launcher to adjust nominal child count
7098 // Simulator sends this increase the sim/cpu ratio on startup
7099 {
7100 SetCPURatio Low 327 NotTrusted Unencoded
7101 {
7102 Data Single
7103 { Ratio U8 }
7104 }
7105 }
7106  
7107  
7108  
7109 // SimCrashed - Sent to dataserver when the sim goes down.
7110 // Maybe we should notify the spaceserver as well?
7111 {
7112 SimCrashed Low 328 NotTrusted Unencoded
7113 {
7114 Data Single
7115 { RegionX U32 }
7116 { RegionY U32 }
7117 }
7118 {
7119 Users Variable
7120 { AgentID LLUUID }
7121 }
7122 }
7123  
7124 // ***************************************************************************
7125 // Name Value Pair messages
7126 // ***************************************************************************
7127  
7128 // NameValuePair - if the specific task exists on simulator, add or replace this name value pair
7129 {
7130 NameValuePair Low 329 Trusted Unencoded
7131 {
7132 TaskData Single
7133 { ID LLUUID }
7134 }
7135 {
7136 NameValueData Variable
7137 { NVPair Variable 2 }
7138 }
7139 }
7140  
7141 // NameValuePair - if the specific task exists on simulator or dataserver, remove the name value pair (value is ignored)
7142 {
7143 RemoveNameValuePair Low 330 Trusted Unencoded
7144 {
7145 TaskData Single
7146 { ID LLUUID }
7147 }
7148 {
7149 NameValueData Variable
7150 { NVPair Variable 2 }
7151 }
7152 }
7153  
7154  
7155 // ***************************************************************************
7156 // Add/Remove Attachment messages
7157 // ***************************************************************************
7158  
7159 //
7160 // Simulator informs Dataserver of new attachment or attachment asset update
7161 // DO NOT ALLOW THIS FROM THE VIEWER
7162 //
7163 {
7164 UpdateAttachment Low 331 Trusted Zerocoded
7165 {
7166 AgentData Single
7167 { AgentID LLUUID }
7168 { SessionID LLUUID }
7169 }
7170 {
7171 AttachmentBlock Single
7172 { AttachmentPoint U8 }
7173 }
7174 {
7175 OperationData Single
7176 { AddItem BOOL }
7177 { UseExistingAsset BOOL }
7178 }
7179 {
7180 InventoryData Single // Standard inventory item block
7181 { ItemID LLUUID }
7182 { FolderID LLUUID }
7183  
7184 { CreatorID LLUUID } // permissions
7185 { OwnerID LLUUID } // permissions
7186 { GroupID LLUUID } // permissions
7187 { BaseMask U32 } // permissions
7188 { OwnerMask U32 } // permissions
7189 { GroupMask U32 } // permissions
7190 { EveryoneMask U32 } // permissions
7191 { NextOwnerMask U32 } // permissions
7192 { GroupOwned BOOL } // permissions
7193  
7194 { AssetID LLUUID }
7195 { Type S8 }
7196 { InvType S8 }
7197 { Flags U32 }
7198 { SaleType U8 }
7199 { SalePrice S32 }
7200 { Name Variable 1 }
7201 { Description Variable 1 }
7202 { CreationDate S32 }
7203 { CRC U32 }
7204 }
7205 }
7206  
7207 // Simulator informs Dataserver that attachment has been taken off
7208 {
7209 RemoveAttachment Low 332 NotTrusted Unencoded
7210 {
7211 AgentData Single
7212 { AgentID LLUUID }
7213 { SessionID LLUUID }
7214 }
7215 {
7216 AttachmentBlock Single
7217 { AttachmentPoint U8 }
7218 { ItemID LLUUID }
7219 }
7220 }
7221  
7222  
7223 // ***************************************************************************
7224 // GUIDed Sound messages
7225 // ***************************************************************************
7226  
7227 // SoundTrigger - Sent by simulator to viewer to trigger sound outside current region
7228 {
7229 SoundTrigger High 29 NotTrusted Unencoded
7230 {
7231 SoundData Single
7232 { SoundID LLUUID }
7233 { OwnerID LLUUID }
7234 { ObjectID LLUUID }
7235 { ParentID LLUUID } // null if this object is the parent
7236 { Handle U64 } // region handle
7237 { Position LLVector3 } // region local
7238 { Gain F32 }
7239 }
7240 }
7241  
7242 // AttachedSound - Sent by simulator to viewer to play sound attached with an object
7243 {
7244 AttachedSound Medium 13 Trusted Unencoded
7245 {
7246 DataBlock Single
7247 { SoundID LLUUID }
7248 { ObjectID LLUUID }
7249 { OwnerID LLUUID }
7250 { Gain F32 }
7251 { Flags U8 }
7252 }
7253 }
7254  
7255 // AttachedSoundGainChange - Sent by simulator to viewer to change an attached sounds' volume
7256  
7257 {
7258 AttachedSoundGainChange Medium 14 Trusted Unencoded
7259 {
7260 DataBlock Single
7261 { ObjectID LLUUID }
7262 { Gain F32 }
7263 }
7264 }
7265  
7266  
7267 // PreloadSound - Sent by simulator to viewer to preload sound for an object
7268  
7269 {
7270 PreloadSound Medium 15 Trusted Unencoded
7271 {
7272 DataBlock Variable
7273 { ObjectID LLUUID }
7274 { OwnerID LLUUID }
7275 { SoundID LLUUID }
7276 }
7277 }
7278  
7279  
7280 // *************************************************************************
7281 // Asset storage messages
7282 // *************************************************************************
7283  
7284 // current assumes an existing UUID, need to enhance for new assets
7285 {
7286 AssetUploadRequest Low 333 NotTrusted Unencoded
7287 {
7288 AssetBlock Single
7289 { TransactionID LLUUID }
7290 { Type S8 }
7291 { Tempfile BOOL }
7292 { StoreLocal BOOL }
7293 { AssetData Variable 2 } // Optional: the actual asset data if the whole thing will fit it this packet
7294 }
7295 }
7296  
7297 {
7298 AssetUploadComplete Low 334 NotTrusted Unencoded
7299 {
7300 AssetBlock Single
7301 { UUID LLUUID }
7302 { Type S8 }
7303 { Success BOOL }
7304 }
7305 }
7306  
7307  
7308 // Script on simulator asks dataserver if there are any email messages
7309 // waiting.
7310 {
7311 EmailMessageRequest Low 335 Trusted Unencoded
7312 {
7313 DataBlock Single
7314 { ObjectID LLUUID }
7315 { FromAddress Variable 1 }
7316 { Subject Variable 1 }
7317 }
7318 }
7319  
7320 // Dataserver gives simulator the oldest email message in the queue, along with
7321 // how many messages are left in the queue. And passes back the filter used to request emails.
7322 {
7323 EmailMessageReply Low 336 Trusted Unencoded
7324 {
7325 DataBlock Single
7326 { ObjectID LLUUID }
7327 { More U32 } //U32
7328 { Time U32 } //U32
7329 { FromAddress Variable 1 }
7330 { Subject Variable 1 }
7331 { Data Variable 2 }
7332 { MailFilter Variable 1 }
7333 }
7334 }
7335  
7336 // Script on simulator sends mail to another script
7337 {
7338 InternalScriptMail Medium 16 Trusted Unencoded
7339 {
7340 DataBlock Single
7341 { From Variable 1 }
7342 { To LLUUID }
7343 { Subject Variable 1 }
7344 { Body Variable 2 }
7345 }
7346 }
7347  
7348 // Script on simulator asks dataserver for information
7349 {
7350 ScriptDataRequest Low 337 Trusted Unencoded
7351 {
7352 DataBlock Variable
7353 { Hash U64 }
7354 { RequestType S8 }
7355 { Request Variable 2 }
7356 }
7357 }
7358  
7359 // Data server responds with data
7360 {
7361 ScriptDataReply Low 338 Trusted Unencoded
7362 {
7363 DataBlock Variable
7364 { Hash U64 }
7365 { Reply Variable 2 }
7366 }
7367 }
7368  
7369  
7370 //-----------------------------------------------------------------------------
7371 // Group messages
7372 //-----------------------------------------------------------------------------
7373  
7374 // CreateGroupRequest
7375 // viewer -> simulator
7376 // simulator -> dataserver
7377 // reliable
7378 {
7379 CreateGroupRequest Low 339 NotTrusted Zerocoded
7380 {
7381 AgentData Single
7382 { AgentID LLUUID }
7383 { SessionID LLUUID }
7384 }
7385 {
7386 GroupData Single
7387 { Name Variable 1 } // string
7388 { Charter Variable 2 } // string
7389 { ShowInList BOOL }
7390 { InsigniaID LLUUID }
7391 { MembershipFee S32 } // S32
7392 { OpenEnrollment BOOL } // BOOL (U8)
7393 { AllowPublish BOOL } // whether profile is externally visible or not
7394 { MaturePublish BOOL } // profile is "mature"
7395 }
7396 }
7397  
7398 // CreateGroupReply
7399 // dataserver -> simulator
7400 // simulator -> viewer
7401 // reliable
7402 {
7403 CreateGroupReply Low 340 Trusted Unencoded
7404 {
7405 AgentData Single
7406 { AgentID LLUUID }
7407 }
7408 {
7409 ReplyData Single
7410 { GroupID LLUUID }
7411 { Success BOOL }
7412 { Message Variable 1 } // string
7413 }
7414 }
7415  
7416 // UpdateGroupInfo
7417 // viewer -> simulator
7418 // simulator -> dataserver
7419 // reliable
7420 {
7421 UpdateGroupInfo Low 341 NotTrusted Zerocoded
7422 {
7423 AgentData Single
7424 { AgentID LLUUID }
7425 { SessionID LLUUID }
7426 }
7427 {
7428 GroupData Single
7429 { GroupID LLUUID }
7430 { Charter Variable 2 } // string
7431 { ShowInList BOOL }
7432 { InsigniaID LLUUID }
7433 { MembershipFee S32 }
7434 { OpenEnrollment BOOL }
7435 { AllowPublish BOOL }
7436 { MaturePublish BOOL }
7437 }
7438 }
7439  
7440 // GroupRoleChanges
7441 // viewer -> simulator -> dataserver
7442 // reliable
7443 {
7444 GroupRoleChanges Low 342 NotTrusted Unencoded
7445 {
7446 AgentData Single
7447 { AgentID LLUUID }
7448 { SessionID LLUUID }
7449 { GroupID LLUUID }
7450 }
7451 {
7452 RoleChange Variable
7453 { RoleID LLUUID }
7454 { MemberID LLUUID }
7455 { Change U32 }
7456 }
7457 }
7458  
7459 // JoinGroupRequest
7460 // viewer -> simulator -> dataserver
7461 // reliable
7462 {
7463 JoinGroupRequest Low 343 NotTrusted Zerocoded
7464 {
7465 AgentData Single
7466 { AgentID LLUUID }
7467 { SessionID LLUUID }
7468 }
7469 {
7470 GroupData Single
7471 { GroupID LLUUID }
7472 }
7473 }
7474  
7475 // JoinGroupReply
7476 // dataserver -> simulator -> viewer
7477 {
7478 JoinGroupReply Low 344 Trusted Unencoded
7479 {
7480 AgentData Single
7481 { AgentID LLUUID }
7482 }
7483 {
7484 GroupData Single
7485 { GroupID LLUUID }
7486 { Success BOOL }
7487 }
7488 }
7489  
7490  
7491 // EjectGroupMemberRequest
7492 // viewer -> simulator -> dataserver
7493 // reliable
7494 {
7495 EjectGroupMemberRequest Low 345 NotTrusted Unencoded
7496 {
7497 AgentData Single
7498 { AgentID LLUUID }
7499 { SessionID LLUUID }
7500 }
7501 {
7502 GroupData Single
7503 { GroupID LLUUID }
7504 }
7505 {
7506 EjectData Variable
7507 { EjecteeID LLUUID }
7508 }
7509 }
7510  
7511 // EjectGroupMemberReply
7512 // dataserver -> simulator -> viewer
7513 // reliable
7514 {
7515 EjectGroupMemberReply Low 346 Trusted Unencoded
7516 {
7517 AgentData Single
7518 { AgentID LLUUID }
7519 }
7520 {
7521 GroupData Single
7522 { GroupID LLUUID }
7523 }
7524 {
7525 EjectData Single
7526 { Success BOOL }
7527 }
7528 }
7529  
7530 // LeaveGroupRequest
7531 // viewer -> simulator -> dataserver
7532 // reliable
7533 {
7534 LeaveGroupRequest Low 347 NotTrusted Unencoded
7535 {
7536 AgentData Single
7537 { AgentID LLUUID }
7538 { SessionID LLUUID }
7539 }
7540 {
7541 GroupData Single
7542 { GroupID LLUUID }
7543 }
7544 }
7545  
7546 // LeaveGroupReply
7547 // dataserver -> simulator -> viewer
7548 {
7549 LeaveGroupReply Low 348 Trusted Unencoded
7550 {
7551 AgentData Single
7552 { AgentID LLUUID }
7553 }
7554 {
7555 GroupData Single
7556 { GroupID LLUUID }
7557 { Success BOOL }
7558 }
7559 }
7560  
7561 // InviteGroupRequest
7562 // viewer -> simulator -> dataserver
7563 // reliable
7564 {
7565 InviteGroupRequest Low 349 NotTrusted Unencoded
7566 {
7567 AgentData Single
7568 { AgentID LLUUID } // UUID of inviting agent
7569 { SessionID LLUUID }
7570 }
7571 {
7572 GroupData Single
7573 { GroupID LLUUID }
7574 }
7575 {
7576 InviteData Variable
7577 { InviteeID LLUUID }
7578 { RoleID LLUUID }
7579 }
7580 }
7581  
7582 // InviteGroupResponse
7583 // simulator -> dataserver
7584 // reliable
7585 {
7586 InviteGroupResponse Low 350 Trusted Unencoded
7587 {
7588 InviteData Single
7589 { AgentID LLUUID }
7590 { InviteeID LLUUID }
7591 { GroupID LLUUID }
7592 { RoleID LLUUID }
7593 { MembershipFee S32 }
7594 }
7595 }
7596  
7597 // GroupProfileRequest
7598 // viewer-> simulator -> dataserver
7599 // reliable
7600 {
7601 GroupProfileRequest Low 351 NotTrusted Unencoded
7602 {
7603 AgentData Single
7604 { AgentID LLUUID }
7605 { SessionID LLUUID }
7606 }
7607 {
7608 GroupData Single
7609 { GroupID LLUUID }
7610 }
7611 }
7612  
7613 // GroupProfileReply
7614 // dataserver -> simulator -> viewer
7615 // reliable
7616 {
7617 GroupProfileReply Low 352 Trusted Zerocoded
7618 {
7619 AgentData Single
7620 { AgentID LLUUID }
7621 }
7622 {
7623 GroupData Single
7624 { GroupID LLUUID }
7625 { Name Variable 1 } // string
7626 { Charter Variable 2 } // string
7627 { ShowInList BOOL }
7628 { MemberTitle Variable 1 } // string
7629 { PowersMask U64 } // U32 mask
7630 { InsigniaID LLUUID }
7631 { FounderID LLUUID }
7632 { MembershipFee S32 }
7633 { OpenEnrollment BOOL } // BOOL (U8)
7634 { Money S32 }
7635 { GroupMembershipCount S32 }
7636 { GroupRolesCount S32 }
7637 { AllowPublish BOOL }
7638 { MaturePublish BOOL }
7639 { OwnerRole LLUUID }
7640 }
7641 }
7642  
7643 // CurrentInterval = 0 => this period (week, day, etc.)
7644 // CurrentInterval = 1 => last period
7645 // viewer -> simulator -> dataserver
7646 // reliable
7647 {
7648 GroupAccountSummaryRequest Low 353 NotTrusted Zerocoded
7649 {
7650 AgentData Single
7651 { AgentID LLUUID }
7652 { SessionID LLUUID }
7653 { GroupID LLUUID }
7654 }
7655 {
7656 MoneyData Single
7657 { RequestID LLUUID }
7658 { IntervalDays S32 }
7659 { CurrentInterval S32 }
7660 }
7661 }
7662  
7663  
7664 // dataserver -> simulator -> viewer
7665 // Reliable
7666 {
7667 GroupAccountSummaryReply Low 354 Trusted Zerocoded
7668 {
7669 AgentData Single
7670 { AgentID LLUUID }
7671 { GroupID LLUUID }
7672 }
7673 {
7674 MoneyData Single
7675 { RequestID LLUUID }
7676 { IntervalDays S32 }
7677 { CurrentInterval S32 }
7678 { StartDate Variable 1 } // string
7679 { Balance S32 }
7680 { TotalCredits S32 }
7681 { TotalDebits S32 }
7682 { ObjectTaxCurrent S32 }
7683 { LightTaxCurrent S32 }
7684 { LandTaxCurrent S32 }
7685 { GroupTaxCurrent S32 }
7686 { ParcelDirFeeCurrent S32 }
7687 { ObjectTaxEstimate S32 }
7688 { LightTaxEstimate S32 }
7689 { LandTaxEstimate S32 }
7690 { GroupTaxEstimate S32 }
7691 { ParcelDirFeeEstimate S32 }
7692 { NonExemptMembers S32 }
7693 { LastTaxDate Variable 1 } // string
7694 { TaxDate Variable 1 } // string
7695 }
7696 }
7697  
7698  
7699 // Reliable
7700 {
7701 GroupAccountDetailsRequest Low 355 NotTrusted Zerocoded
7702 {
7703 AgentData Single
7704 { AgentID LLUUID }
7705 { SessionID LLUUID }
7706 { GroupID LLUUID }
7707 }
7708 {
7709 MoneyData Single
7710 { RequestID LLUUID }
7711 { IntervalDays S32 }
7712 { CurrentInterval S32 }
7713 }
7714 }
7715  
7716 // Reliable
7717 {
7718 GroupAccountDetailsReply Low 356 Trusted Zerocoded
7719 {
7720 AgentData Single
7721 { AgentID LLUUID }
7722 { GroupID LLUUID }
7723 }
7724 {
7725 MoneyData Single
7726 { RequestID LLUUID }
7727 { IntervalDays S32 }
7728 { CurrentInterval S32 }
7729 { StartDate Variable 1 } // string
7730 }
7731 {
7732 HistoryData Variable
7733 { Description Variable 1 } // string
7734 { Amount S32 }
7735 }
7736 }
7737  
7738  
7739 // Reliable
7740 {
7741 GroupAccountTransactionsRequest Low 357 NotTrusted Zerocoded
7742 {
7743 AgentData Single
7744 { AgentID LLUUID }
7745 { SessionID LLUUID }
7746 { GroupID LLUUID }
7747 }
7748 {
7749 MoneyData Single
7750 { RequestID LLUUID }
7751 { IntervalDays S32 }
7752 { CurrentInterval S32 }
7753 }
7754 }
7755  
7756 // Reliable
7757 {
7758 GroupAccountTransactionsReply Low 358 Trusted Zerocoded
7759 {
7760 AgentData Single
7761 { AgentID LLUUID }
7762 { GroupID LLUUID }
7763 }
7764 {
7765 MoneyData Single
7766 { RequestID LLUUID }
7767 { IntervalDays S32 }
7768 { CurrentInterval S32 }
7769 { StartDate Variable 1 } // string
7770 }
7771 {
7772 HistoryData Variable
7773 { Time Variable 1 } // string
7774 { User Variable 1 } // string
7775 { Type S32 }
7776 { Item Variable 1 } // string
7777 { Amount S32 }
7778 }
7779 }
7780  
7781 // GroupActiveProposalsRequest
7782 // viewer -> simulator -> dataserver
7783 //reliable
7784 {
7785 GroupActiveProposalsRequest Low 359 NotTrusted Unencoded
7786 {
7787 AgentData Single
7788 { AgentID LLUUID }
7789 { SessionID LLUUID }
7790 }
7791 {
7792 GroupData Single
7793 { GroupID LLUUID }
7794 }
7795 {
7796 TransactionData Single
7797 { TransactionID LLUUID }
7798 }
7799 }
7800  
7801 // GroupActiveProposalItemReply
7802 // dataserver -> simulator -> viewer
7803 // reliable
7804 {
7805 GroupActiveProposalItemReply Low 360 Trusted Zerocoded
7806 {
7807 AgentData Single
7808 { AgentID LLUUID }
7809 { GroupID LLUUID }
7810 }
7811 {
7812 TransactionData Single
7813 { TransactionID LLUUID }
7814 { TotalNumItems U32 }
7815 }
7816 {
7817 ProposalData Variable
7818 { VoteID LLUUID }
7819 { VoteInitiator LLUUID }
7820 { TerseDateID Variable 1 } // string
7821 { StartDateTime Variable 1 } // string
7822 { EndDateTime Variable 1 } // string
7823 { AlreadyVoted BOOL }
7824 { VoteCast Variable 1 } // string
7825 { Majority F32 }
7826 { Quorum S32 }
7827 { ProposalText Variable 1 } // string
7828 }
7829 }
7830  
7831 // GroupVoteHistoryRequest
7832 // viewer -> simulator -> dataserver
7833 //reliable
7834 {
7835 GroupVoteHistoryRequest Low 361 NotTrusted Unencoded
7836 {
7837 AgentData Single
7838 { AgentID LLUUID }
7839 { SessionID LLUUID }
7840 }
7841 {
7842 GroupData Single
7843 { GroupID LLUUID }
7844 }
7845 {
7846 TransactionData Single
7847 { TransactionID LLUUID }
7848 }
7849 }
7850  
7851 // GroupVoteHistoryItemReply
7852 // dataserver -> simulator -> viewer
7853 // reliable
7854 {
7855 GroupVoteHistoryItemReply Low 362 Trusted Zerocoded
7856 {
7857 AgentData Single
7858 { AgentID LLUUID }
7859 { GroupID LLUUID }
7860 }
7861 {
7862 TransactionData Single
7863 { TransactionID LLUUID }
7864 { TotalNumItems U32 }
7865 }
7866 {
7867 HistoryItemData Single
7868 { VoteID LLUUID }
7869 { TerseDateID Variable 1 } // string
7870 { StartDateTime Variable 1 } // string
7871 { EndDateTime Variable 1 } // string
7872 { VoteInitiator LLUUID }
7873 { VoteType Variable 1 } // string
7874 { VoteResult Variable 1 } // string
7875 { Majority F32 }
7876 { Quorum S32 }
7877 { ProposalText Variable 2 } // string
7878 }
7879 {
7880 VoteItem Variable
7881 { CandidateID LLUUID }
7882 { VoteCast Variable 1 } // string
7883 { NumVotes S32 }
7884 }
7885 }
7886  
7887 // StartGroupProposal
7888 // viewer -> simulator -> dataserver
7889 // reliable
7890 {
7891 StartGroupProposal Low 363 NotTrusted Zerocoded UDPDeprecated
7892 {
7893 AgentData Single
7894 { AgentID LLUUID }
7895 { SessionID LLUUID }
7896 }
7897 {
7898 ProposalData Single
7899 { GroupID LLUUID }
7900 { Quorum S32 }
7901 { Majority F32 } // F32
7902 { Duration S32 } // S32, seconds
7903 { ProposalText Variable 1 } // string
7904 }
7905 }
7906  
7907 // GroupProposalBallot
7908 // viewer -> simulator -> dataserver
7909 // reliable
7910 {
7911 GroupProposalBallot Low 364 NotTrusted Unencoded UDPDeprecated
7912 {
7913 AgentData Single
7914 { AgentID LLUUID }
7915 { SessionID LLUUID }
7916 }
7917 {
7918 ProposalData Single
7919 { ProposalID LLUUID }
7920 { GroupID LLUUID }
7921 { VoteCast Variable 1 } // string
7922 }
7923 }
7924  
7925 // TallyVotes userserver -> dataserver
7926 // reliable
7927 {
7928 TallyVotes Low 365 Trusted Unencoded
7929 }
7930  
7931  
7932  
7933 // GroupMembersRequest
7934 // get the group members
7935 // simulator -> dataserver
7936 // reliable
7937 {
7938 GroupMembersRequest Low 366 NotTrusted Unencoded
7939 {
7940 AgentData Single
7941 { AgentID LLUUID }
7942 { SessionID LLUUID }
7943 }
7944 {
7945 GroupData Single
7946 { GroupID LLUUID }
7947 { RequestID LLUUID }
7948 }
7949 }
7950  
7951 // GroupMembersReply
7952 // list of uuids for the group members
7953 // dataserver -> simulator
7954 // reliable
7955 {
7956 GroupMembersReply Low 367 Trusted Zerocoded
7957 {
7958 AgentData Single
7959 { AgentID LLUUID }
7960 }
7961 {
7962 GroupData Single
7963 { GroupID LLUUID }
7964 { RequestID LLUUID }
7965 { MemberCount S32 }
7966 }
7967 {
7968 MemberData Variable
7969 { AgentID LLUUID }
7970 { Contribution S32 }
7971 { OnlineStatus Variable 1 } // string
7972 { AgentPowers U64 }
7973 { Title Variable 1 } // string
7974 { IsOwner BOOL }
7975 }
7976 }
7977  
7978 // used to switch an agent's currently active group.
7979 // viewer -> simulator -> dataserver -> AgentDataUpdate...
7980 {
7981 ActivateGroup Low 368 NotTrusted Zerocoded
7982 {
7983 AgentData Single
7984 { AgentID LLUUID }
7985 { SessionID LLUUID }
7986 { GroupID LLUUID }
7987 }
7988 }
7989  
7990 // viewer -> simulator -> dataserver
7991 {
7992 SetGroupContribution Low 369 NotTrusted Unencoded
7993 {
7994 AgentData Single
7995 { AgentID LLUUID }
7996 { SessionID LLUUID }
7997 }
7998 {
7999 Data Single
8000 { GroupID LLUUID }
8001 { Contribution S32 }
8002 }
8003 }
8004  
8005 // viewer -> simulator -> dataserver
8006 {
8007 SetGroupAcceptNotices Low 370 NotTrusted Unencoded
8008 {
8009 AgentData Single
8010 { AgentID LLUUID }
8011 { SessionID LLUUID }
8012 }
8013 {
8014 Data Single
8015 { GroupID LLUUID }
8016 { AcceptNotices BOOL }
8017 }
8018 {
8019 NewData Single
8020 { ListInProfile BOOL }
8021 }
8022 }
8023  
8024 // GroupRoleDataRequest
8025 // viewer -> simulator -> dataserver
8026 {
8027 GroupRoleDataRequest Low 371 NotTrusted Unencoded
8028 {
8029 AgentData Single
8030 { AgentID LLUUID }
8031 { SessionID LLUUID }
8032 }
8033 {
8034 GroupData Single
8035 { GroupID LLUUID }
8036 { RequestID LLUUID }
8037 }
8038 }
8039  
8040  
8041 // GroupRoleDataReply
8042 // All role data for this group
8043 // dataserver -> simulator -> agent
8044 {
8045 GroupRoleDataReply Low 372 Trusted Unencoded
8046 {
8047 AgentData Single
8048 { AgentID LLUUID }
8049 }
8050 {
8051 GroupData Single
8052 { GroupID LLUUID }
8053 { RequestID LLUUID }
8054 { RoleCount S32 }
8055 }
8056 {
8057 RoleData Variable
8058 { RoleID LLUUID }
8059 { Name Variable 1 }
8060 { Title Variable 1 }
8061 { Description Variable 1 }
8062 { Powers U64 }
8063 { Members U32 }
8064 }
8065 }
8066  
8067 // GroupRoleMembersRequest
8068 // viewer -> simulator -> dataserver
8069 {
8070 GroupRoleMembersRequest Low 373 NotTrusted Unencoded
8071 {
8072 AgentData Single
8073 { AgentID LLUUID }
8074 { SessionID LLUUID }
8075 }
8076 {
8077 GroupData Single
8078 { GroupID LLUUID }
8079 { RequestID LLUUID }
8080 }
8081 }
8082  
8083 // GroupRoleMembersReply
8084 // All role::member pairs for this group.
8085 // dataserver -> simulator -> agent
8086 {
8087 GroupRoleMembersReply Low 374 Trusted Unencoded
8088 {
8089 AgentData Single
8090 { AgentID LLUUID }
8091 { GroupID LLUUID }
8092 { RequestID LLUUID }
8093 { TotalPairs U32 }
8094 }
8095 {
8096 MemberData Variable
8097 { RoleID LLUUID }
8098 { MemberID LLUUID }
8099 }
8100 }
8101  
8102 // GroupTitlesRequest
8103 // viewer -> simulator -> dataserver
8104 {
8105 GroupTitlesRequest Low 375 NotTrusted Unencoded
8106 {
8107 AgentData Single
8108 { AgentID LLUUID }
8109 { SessionID LLUUID }
8110 { GroupID LLUUID }
8111 { RequestID LLUUID }
8112 }
8113 }
8114  
8115  
8116 // GroupTitlesReply
8117 // dataserver -> simulator -> viewer
8118 {
8119 GroupTitlesReply Low 376 Trusted Zerocoded
8120 {
8121 AgentData Single
8122 { AgentID LLUUID }
8123 { GroupID LLUUID }
8124 { RequestID LLUUID }
8125 }
8126 {
8127 GroupData Variable
8128 { Title Variable 1 } // string
8129 { RoleID LLUUID }
8130 { Selected BOOL }
8131 }
8132 }
8133  
8134 // GroupTitleUpdate
8135 // viewer -> simulator -> dataserver
8136 {
8137 GroupTitleUpdate Low 377 NotTrusted Unencoded
8138 {
8139 AgentData Single
8140 { AgentID LLUUID }
8141 { SessionID LLUUID }
8142 { GroupID LLUUID }
8143 { TitleRoleID LLUUID }
8144 }
8145 }
8146  
8147 // GroupRoleUpdate
8148 // viewer -> simulator -> dataserver
8149 {
8150 GroupRoleUpdate Low 378 NotTrusted Unencoded
8151 {
8152 AgentData Single
8153 { AgentID LLUUID }
8154 { SessionID LLUUID }
8155 { GroupID LLUUID }
8156 }
8157 {
8158 RoleData Variable
8159 { RoleID LLUUID }
8160 { Name Variable 1 }
8161 { Description Variable 1 }
8162 { Title Variable 1 }
8163 { Powers U64 }
8164 { UpdateType U8 }
8165 }
8166 }
8167  
8168  
8169  
8170 // Request the members of the live help group needed for requesting agent.
8171 // userserver -> dataserver
8172 {
8173 LiveHelpGroupRequest Low 379 Trusted Unencoded
8174 {
8175 RequestData Single
8176 { RequestID LLUUID }
8177 { AgentID LLUUID }
8178 }
8179 }
8180  
8181 // Send down the group
8182 // dataserver -> userserver
8183 {
8184 LiveHelpGroupReply Low 380 Trusted Unencoded
8185 {
8186 ReplyData Single
8187 { RequestID LLUUID }
8188 { GroupID LLUUID }
8189 { Selection Variable 1 } // selection criteria all or active
8190 }
8191 }
8192  
8193 //-----------------------------------------------------------------------------
8194 // Wearable messages
8195 //-----------------------------------------------------------------------------
8196  
8197 // AgentWearablesRequest
8198 // (a.k.a. "Tell me what the avatar is wearing.")
8199 // viewer -> simulator -> dataserver
8200 // reliable
8201 {
8202 AgentWearablesRequest Low 381 NotTrusted Unencoded
8203 {
8204 AgentData Single
8205 { AgentID LLUUID }
8206 { SessionID LLUUID }
8207 }
8208 }
8209  
8210 // AgentWearablesUpdate
8211 // (a.k.a. "Here's what your avatar should be wearing now.")
8212 // dataserver -> userserver -> viewer
8213 // reliable
8214 // NEVER from viewer to sim
8215 {
8216 AgentWearablesUpdate Low 382 Trusted Zerocoded
8217 {
8218 AgentData Single
8219 { AgentID LLUUID }
8220 { SessionID LLUUID }
8221 { SerialNum U32 } // U32, Increases every time the wearables change for a given agent. Used to avoid processing out of order packets.
8222 }
8223 {
8224 WearableData Variable
8225 { ItemID LLUUID }
8226 { AssetID LLUUID }
8227 { WearableType U8 } // U8, LLWearable::EWearType
8228 }
8229 }
8230  
8231 //
8232 // AgentIsNowWearing
8233 // (a.k.a. "Here's what I'm wearing now.")
8234 // viewer->sim->dataserver
8235 // reliable
8236 {
8237 AgentIsNowWearing Low 383 NotTrusted Zerocoded
8238 {
8239 AgentData Single
8240 { AgentID LLUUID }
8241 { SessionID LLUUID }
8242 }
8243 {
8244 WearableData Variable
8245 { ItemID LLUUID }
8246 { WearableType U8 }
8247 }
8248 }
8249  
8250  
8251 // AgentCachedTexture
8252 // viewer queries for cached textures on dataserver (via simulator)
8253 // viewer -> simulator -> dataserver
8254 // reliable
8255 {
8256 AgentCachedTexture Low 384 NotTrusted Unencoded
8257 {
8258 AgentData Single
8259 { AgentID LLUUID }
8260 { SessionID LLUUID }
8261 { SerialNum S32 }
8262 }
8263 {
8264 WearableData Variable
8265 { ID LLUUID }
8266 { TextureIndex U8 }
8267 }
8268 }
8269  
8270 // AgentCachedTextureResponse
8271 // response to viewer queries for cached textures on dataserver (via simulator)
8272 // dataserver -> simulator -> viewer
8273 // reliable
8274 {
8275 AgentCachedTextureResponse Low 385 Trusted Unencoded
8276 {
8277 AgentData Single
8278 { AgentID LLUUID }
8279 { SessionID LLUUID }
8280 { SerialNum S32 }
8281 }
8282 {
8283 WearableData Variable
8284 { TextureID LLUUID }
8285 { TextureIndex U8 }
8286 { HostName Variable 1 }
8287 }
8288 }
8289  
8290 // Request an AgentDataUpdate without changing any agent data.
8291 {
8292 AgentDataUpdateRequest Low 386 NotTrusted Unencoded
8293 {
8294 AgentData Single
8295 { AgentID LLUUID }
8296 { SessionID LLUUID }
8297 }
8298 }
8299  
8300 // AgentDataUpdate
8301 // Updates a viewer or simulator's impression of agent-specific information.
8302 // Used, for example, when an agent's group changes.
8303 // dataserver -> simulator -> viewer
8304 // reliable
8305 {
8306 AgentDataUpdate Low 387 Trusted Zerocoded
8307 {
8308 AgentData Single
8309 { AgentID LLUUID }
8310 { FirstName Variable 1 } // string
8311 { LastName Variable 1 } // string
8312 { GroupTitle Variable 1 } // string
8313 { ActiveGroupID LLUUID } // active group
8314 { GroupPowers U64 }
8315 { GroupName Variable 1 } // string
8316 }
8317 }
8318  
8319  
8320 // GroupDataUpdate
8321 // This is a bunch of group data that needs to be appropriatly routed based on presence info.
8322 // dataserver -> simulator
8323 {
8324 GroupDataUpdate Low 388 Trusted Zerocoded
8325 {
8326 AgentGroupData Variable
8327 { AgentID LLUUID }
8328 { GroupID LLUUID }
8329 { AgentPowers U64 }
8330 { GroupTitle Variable 1 }
8331 }
8332 }
8333  
8334 // AgentGroupDataUpdate
8335 // Updates a viewer or simulator's impression of the groups an agent is in.
8336 // dataserver -> simulator -> viewer
8337 // reliable
8338 {
8339 AgentGroupDataUpdate Low 389 Trusted Zerocoded UDPDeprecated
8340 {
8341 AgentData Single
8342 { AgentID LLUUID }
8343 }
8344 {
8345 GroupData Variable
8346 { GroupID LLUUID }
8347 { GroupPowers U64 }
8348 { AcceptNotices BOOL }
8349 { GroupInsigniaID LLUUID }
8350 { Contribution S32 }
8351 { GroupName Variable 1 } // string
8352 }
8353 }
8354  
8355 // AgentDropGroup
8356 // Updates the viewer / simulator that an agent is no longer part of a group
8357 // dataserver -> simulator -> viewer
8358 // dataserver -> userserver
8359 // reliable
8360 {
8361 AgentDropGroup Low 390 Trusted Zerocoded UDPDeprecated
8362 {
8363 AgentData Single
8364 { AgentID LLUUID }
8365 { GroupID LLUUID }
8366 }
8367 }
8368  
8369 // LogTextMessage
8370 // Asks the dataserver to log the contents of this message in the
8371 // chat and IM log table.
8372 // Sent from userserver (IM logging) and simulator (chat logging).
8373 {
8374 LogTextMessage Low 391 Trusted Zerocoded
8375 {
8376 DataBlock Variable
8377 { FromAgentId LLUUID }
8378 { ToAgentId LLUUID }
8379 { GlobalX F64 }
8380 { GlobalY F64 }
8381 { Time U32 } // utc seconds since epoch
8382 { Message Variable 2 } // string
8383 }
8384 }
8385  
8386 // ViewerEffect
8387 // Viewer side effect that's sent from one viewer, and broadcast to other agents nearby
8388 // viewer-->sim (single effect created by viewer)
8389 // sim-->viewer (multiple effects that can be seen by viewer)
8390 // the AgentData block used for authentication for viewer-->sim messages
8391 {
8392 ViewerEffect Medium 17 NotTrusted Zerocoded
8393 {
8394 AgentData Single
8395 { AgentID LLUUID }
8396 { SessionID LLUUID }
8397 }
8398 {
8399 Effect Variable
8400 { ID LLUUID } // unique UUID of the effect
8401 { AgentID LLUUID } // yes, pack AgentID again (note this block is variable)
8402 { Type U8 } // Type of the effect
8403 { Duration F32 } // F32 time (seconds)
8404 { Color Fixed 4 } // Color4U
8405 { TypeData Variable 1 } // Type specific data
8406 }
8407 }
8408  
8409  
8410 // CreateTrustedCircuit
8411 // Sent to establish a trust relationship between two components.
8412 // Only sent in response to a DenyTrustedCircuit message.
8413 {
8414 CreateTrustedCircuit Low 392 NotTrusted Unencoded
8415 {
8416 DataBlock Single
8417 { EndPointID LLUUID }
8418 { Digest Fixed 32 } // 32 hex digits == 1 MD5 Digest
8419 }
8420 }
8421  
8422 // DenyTrustedCircuit
8423 // Sent :
8424 // - in response to failed CreateTrustedCircuit
8425 // - to force the remote end-point to try to establish a trusted circuit
8426 // - the reception of a trusted message on a non-trusted circuit
8427 // This allows us to re-auth a circuit if it gets closed due to timeouts or network failures.
8428 {
8429 DenyTrustedCircuit Low 393 NotTrusted Unencoded
8430 {
8431 DataBlock Single
8432 { EndPointID LLUUID }
8433 }
8434 }
8435  
8436 // RequestTrustedCircuit
8437 // If the destination does not trust the sender, a Deny is sent back.
8438 {
8439 RequestTrustedCircuit Low 394 Trusted Unencoded
8440 }
8441  
8442  
8443 {
8444 RezSingleAttachmentFromInv Low 395 NotTrusted Zerocoded
8445 {
8446 AgentData Single
8447 { AgentID LLUUID }
8448 { SessionID LLUUID }
8449 }
8450 {
8451 ObjectData Single
8452 { ItemID LLUUID }
8453 { OwnerID LLUUID }
8454 { AttachmentPt U8 } // 0 for default
8455 { ItemFlags U32 }
8456 { GroupMask U32 }
8457 { EveryoneMask U32 }
8458 { NextOwnerMask U32 }
8459 { Name Variable 1 }
8460 { Description Variable 1 }
8461 }
8462 }
8463  
8464 {
8465 RezMultipleAttachmentsFromInv Low 396 NotTrusted Zerocoded
8466 {
8467 AgentData Single
8468 { AgentID LLUUID }
8469 { SessionID LLUUID }
8470 }
8471 {
8472 HeaderData Single
8473 { CompoundMsgID LLUUID } // All messages a single "compound msg" must have the same id
8474 { TotalObjects U8 }
8475 { FirstDetachAll BOOL }
8476 }
8477 {
8478 ObjectData Variable // 1 to 4 of these per packet
8479 { ItemID LLUUID }
8480 { OwnerID LLUUID }
8481 { AttachmentPt U8 } // 0 for default
8482 { ItemFlags U32 }
8483 { GroupMask U32 }
8484 { EveryoneMask U32 }
8485 { NextOwnerMask U32 }
8486 { Name Variable 1 }
8487 { Description Variable 1 }
8488 }
8489 }
8490  
8491  
8492 {
8493 DetachAttachmentIntoInv Low 397 NotTrusted Unencoded
8494 {
8495 ObjectData Single
8496 { AgentID LLUUID }
8497 { ItemID LLUUID }
8498 }
8499 }
8500  
8501  
8502 // Viewer -> Sim
8503 // Used in "Make New Outfit"
8504 {
8505 CreateNewOutfitAttachments Low 398 NotTrusted Unencoded
8506 {
8507 AgentData Single
8508 { AgentID LLUUID }
8509 { SessionID LLUUID }
8510 }
8511 {
8512 HeaderData Single
8513 { NewFolderID LLUUID }
8514 }
8515 {
8516 ObjectData Variable
8517 { OldItemID LLUUID }
8518 { OldFolderID LLUUID }
8519 }
8520 }
8521  
8522 //-----------------------------------------------------------------------------
8523 // Personal information messages
8524 //-----------------------------------------------------------------------------
8525  
8526 {
8527 UserInfoRequest Low 399 NotTrusted Unencoded
8528 {
8529 AgentData Single
8530 { AgentID LLUUID }
8531 { SessionID LLUUID }
8532 }
8533 }
8534  
8535 {
8536 UserInfoReply Low 400 NotTrusted Unencoded
8537 {
8538 AgentData Single
8539 { AgentID LLUUID }
8540 }
8541 {
8542 UserData Single
8543 { IMViaEMail BOOL }
8544 { DirectoryVisibility Variable 1 }
8545 { EMail Variable 2 }
8546 }
8547 }
8548  
8549 {
8550 UpdateUserInfo Low 401 NotTrusted Unencoded
8551 {
8552 AgentData Single
8553 { AgentID LLUUID }
8554 { SessionID LLUUID }
8555 }
8556 {
8557 UserData Single
8558 { IMViaEMail BOOL }
8559 { DirectoryVisibility Variable 1 }
8560 }
8561 }
8562  
8563  
8564 //-----------------------------------------------------------------------------
8565 // System operations and maintenance
8566 //-----------------------------------------------------------------------------
8567  
8568  
8569 // spaceserver -> sim
8570 // tell a particular simulator to rename a parcel
8571 {
8572 ParcelRename Low 402 Trusted Unencoded
8573 {
8574 ParcelData Variable
8575 { ParcelID LLUUID }
8576 { NewName Variable 1 } // string
8577 }
8578 }
8579  
8580  
8581 // sim -> viewer
8582 // initiate upload. primarily used for uploading raw files.
8583 {
8584 InitiateDownload Low 403 NotTrusted Unencoded
8585 {
8586 AgentData Single
8587 { AgentID LLUUID }
8588 }
8589 {
8590 FileData Single
8591 { SimFilename Variable 1 } // string
8592 { ViewerFilename Variable 1 } // string
8593 }
8594 }
8595  
8596 // Generalized system message. Each Requst has its own protocol for
8597 // the StringData block format and contents.
8598 {
8599 SystemMessage Low 404 Trusted Zerocoded
8600 {
8601 MethodData Single
8602 { Method Variable 1 }
8603 { Invoice LLUUID }
8604 { Digest Fixed 32 } // 32 hex digits == 1 MD5 Digest
8605 }
8606 {
8607 ParamList Variable
8608 { Parameter Variable 1 }
8609 }
8610 }
8611  
8612  
8613 //-----------------------------------------------------------------------------
8614 // map messages
8615 //-----------------------------------------------------------------------------
8616  
8617 // viewer -> sim
8618 // reliable
8619 // This message is sent up from the viewer to (eventually) get a list
8620 // of all map layers and NULL-layer sims.
8621 // Returns: MapLayerReply and MapBlockReply
8622 {
8623 MapLayerRequest Low 405 NotTrusted Unencoded
8624 {
8625 AgentData Single
8626 { AgentID LLUUID }
8627 { SessionID LLUUID }
8628 { Flags U32 }
8629 { EstateID U32 } // filled in on sim
8630 { Godlike BOOL } // filled in on sim
8631 }
8632 }
8633  
8634 // sim -> viewer
8635 {
8636 MapLayerReply Low 406 Trusted Unencoded
8637 {
8638 AgentData Single
8639 { AgentID LLUUID }
8640 { Flags U32 }
8641 }
8642 {
8643 LayerData Variable
8644 { Left U32 }
8645 { Right U32 }
8646 { Top U32 }
8647 { Bottom U32 }
8648 { ImageID LLUUID }
8649 }
8650 }
8651  
8652 // viewer -> sim
8653 // This message is sent up from the viewer to get a list
8654 // of the sims in a specified region.
8655 // Returns: MapBlockReply
8656 {
8657 MapBlockRequest Low 407 NotTrusted Unencoded
8658 {
8659 AgentData Single
8660 { AgentID LLUUID }
8661 { SessionID LLUUID }
8662 { Flags U32 }
8663 { EstateID U32 } // filled in on sim
8664 { Godlike BOOL } // filled in on sim
8665 }
8666 {
8667 PositionData Single
8668 { MinX U16 } // in region-widths
8669 { MaxX U16 } // in region-widths
8670 { MinY U16 } // in region-widths
8671 { MaxY U16 } // in region-widths
8672 }
8673 }
8674  
8675 // viewer -> sim
8676 // This message is sent up from the viewer to get a list
8677 // of the sims with a given name.
8678 // Returns: MapBlockReply
8679 {
8680 MapNameRequest Low 408 NotTrusted Unencoded
8681 {
8682 AgentData Single
8683 { AgentID LLUUID }
8684 { SessionID LLUUID }
8685 { Flags U32 }
8686 { EstateID U32 } // filled in on sim
8687 { Godlike BOOL } // filled in on sim
8688 }
8689 {
8690 NameData Single
8691 { Name Variable 1 } // string
8692 }
8693 }
8694  
8695 // sim -> viewer
8696 {
8697 MapBlockReply Low 409 Trusted Unencoded
8698 {
8699 AgentData Single
8700 { AgentID LLUUID }
8701 { Flags U32 }
8702 }
8703 {
8704 Data Variable
8705 { X U16 } // in region-widths
8706 { Y U16 } // in region-widths
8707 { Name Variable 1 } // string
8708 { Access U8 } // PG, mature, etc.
8709 { RegionFlags U32 }
8710 { WaterHeight U8 } // meters
8711 { Agents U8 }
8712 { MapImageID LLUUID }
8713 }
8714 {
8715 Size Variable
8716 { SizeX U16 }
8717 { SizeY U16 }
8718 }
8719 }
8720  
8721 // viewer -> sim
8722 // This message is sent up from the viewer to get a list
8723 // of the items of a particular type on the map.
8724 // Used for Telehubs, Agents, Events, Popular Places, etc.
8725 // Returns: MapBlockReply
8726 {
8727 MapItemRequest Low 410 NotTrusted Unencoded
8728 {
8729 AgentData Single
8730 { AgentID LLUUID }
8731 { SessionID LLUUID }
8732 { Flags U32 }
8733 { EstateID U32 } // filled in on sim
8734 { Godlike BOOL } // filled in on sim
8735 }
8736 {
8737 RequestData Single
8738 { ItemType U32 }
8739 { RegionHandle U64 } // filled in on sim
8740 }
8741 }
8742  
8743 // sim -> viewer
8744 {
8745 MapItemReply Low 411 Trusted Unencoded
8746 {
8747 AgentData Single
8748 { AgentID LLUUID }
8749 { Flags U32 }
8750 }
8751 {
8752 RequestData Single
8753 { ItemType U32 }
8754 }
8755 {
8756 Data Variable
8757 { X U32 } // global position
8758 { Y U32 } // global position
8759 { ID LLUUID } // identifier id
8760 { Extra S32 } // extra information
8761 { Extra2 S32 } // extra information
8762 { Name Variable 1 } // identifier string
8763 }
8764 }
8765  
8766 //-----------------------------------------------------------------------------
8767 // Postcard messages
8768 //-----------------------------------------------------------------------------
8769 // reliable
8770 {
8771 SendPostcard Low 412 NotTrusted Unencoded
8772 {
8773 AgentData Single
8774 { AgentID LLUUID }
8775 { SessionID LLUUID }
8776 { AssetID LLUUID }
8777 { PosGlobal LLVector3d } // Where snapshot was taken
8778 { To Variable 1 } // dest email address(es)
8779 { From Variable 1 } // src email address(es)
8780 { Name Variable 1 } // src name
8781 { Subject Variable 1 } // mail subject
8782 { Msg Variable 2 } // message text
8783 { AllowPublish BOOL } // Allow publishing on the web.
8784 { MaturePublish BOOL } // profile is "mature"
8785 }
8786 }
8787  
8788 // RPC messages
8789 // Script on simulator requests rpc channel from rpcserver
8790 // simulator -> dataserver -> MySQL
8791 {
8792 RpcChannelRequest Low 413 Trusted Unencoded
8793 {
8794 DataBlock Single
8795 { GridX U32 }
8796 { GridY U32 }
8797 { TaskID LLUUID }
8798 { ItemID LLUUID }
8799 }
8800 }
8801  
8802 // RpcServer allocated a session for the script
8803 // ChannelID will be the NULL UUID if unable to register
8804 // dataserver -> simulator
8805 {
8806 RpcChannelReply Low 414 Trusted Unencoded
8807 {
8808 DataBlock Single
8809 { TaskID LLUUID }
8810 { ItemID LLUUID }
8811 { ChannelID LLUUID }
8812 }
8813 }
8814  
8815 // Inbound RPC requests follow this path:
8816 // RpcScriptRequestInbound: rpcserver -> spaceserver
8817 // RpcScriptRequestInboundForward: spaceserver -> simulator
8818 // reply: simulator -> rpcserver
8819 {
8820 RpcScriptRequestInbound Low 415 NotTrusted Unencoded
8821 {
8822 TargetBlock Single
8823 { GridX U32 }
8824 { GridY U32 }
8825 }
8826 {
8827 DataBlock Single
8828 { TaskID LLUUID }
8829 { ItemID LLUUID }
8830 { ChannelID LLUUID }
8831 { IntValue U32 }
8832 { StringValue Variable 2 } // string
8833 }
8834 }
8835  
8836 // spaceserver -> simulator
8837 {
8838 RpcScriptRequestInboundForward Low 416 Trusted Unencoded UDPDeprecated
8839 {
8840 DataBlock Single
8841 { RPCServerIP IPADDR }
8842 { RPCServerPort IPPORT }
8843 { TaskID LLUUID }
8844 { ItemID LLUUID }
8845 { ChannelID LLUUID }
8846 { IntValue U32 }
8847 { StringValue Variable 2 } // string
8848 }
8849 }
8850  
8851 // simulator -> rpcserver
8852 // Not trusted because trust establishment doesn't work here.
8853 {
8854 RpcScriptReplyInbound Low 417 NotTrusted Unencoded
8855 {
8856 DataBlock Single
8857 { TaskID LLUUID }
8858 { ItemID LLUUID }
8859 { ChannelID LLUUID }
8860 { IntValue U32 }
8861 { StringValue Variable 2 } // string
8862 }
8863 }
8864  
8865  
8866 // ScriptMailRegistration
8867 // Simulator -> dataserver
8868 {
8869 ScriptMailRegistration Low 418 Trusted Unencoded
8870 {
8871 DataBlock Single
8872 { TargetIP Variable 1 } // String IP
8873 { TargetPort IPPORT }
8874 { TaskID LLUUID }
8875 { Flags U32 }
8876 }
8877 }
8878  
8879 // ParcelMediaCommandMessage
8880 // Sends a parcel media command
8881 {
8882 ParcelMediaCommandMessage Low 419 Trusted Unencoded
8883 {
8884 CommandBlock Single
8885 { Flags U32 }
8886 { Command U32 }
8887 { Time F32 }
8888 }
8889 }
8890  
8891 // ParcelMediaUpdate
8892 // Sends a parcel media update to a single user
8893 // For global updates use the parcel manager.
8894 {
8895 ParcelMediaUpdate Low 420 Trusted Unencoded
8896 {
8897 DataBlock Single
8898 { MediaURL Variable 1 } // string
8899 { MediaID LLUUID }
8900 { MediaAutoScale U8 }
8901 }
8902 {
8903 DataBlockExtended Single
8904 { MediaType Variable 1 }
8905 { MediaDesc Variable 1 }
8906 { MediaWidth S32 }
8907 { MediaHeight S32 }
8908 { MediaLoop U8 }
8909 }
8910 }
8911  
8912 // LandStatRequest
8913 // Sent by the viewer to request collider/script information for a parcel
8914 {
8915 LandStatRequest Low 421 NotTrusted Unencoded
8916 {
8917 AgentData Single
8918 { AgentID LLUUID }
8919 { SessionID LLUUID }
8920 }
8921 {
8922 RequestData Single
8923 { ReportType U32 }
8924 { RequestFlags U32 }
8925 { Filter Variable 1 }
8926 { ParcelLocalID S32 }
8927 }
8928 }
8929  
8930 // LandStatReply
8931 // Sent by the simulator in response to LandStatRequest
8932 {
8933 LandStatReply Low 422 Trusted Unencoded UDPDeprecated
8934 {
8935 RequestData Single
8936 { ReportType U32 }
8937 { RequestFlags U32 }
8938 { TotalObjectCount U32 }
8939 }
8940 {
8941 ReportData Variable
8942 { TaskLocalID U32 }
8943 { TaskID LLUUID }
8944 { LocationX F32 }
8945 { LocationY F32 }
8946 { LocationZ F32 }
8947 { Score F32 }
8948 { TaskName Variable 1 }
8949 { OwnerName Variable 1 }
8950 }
8951 }
8952  
8953 // Generic Error -- this is used for sending an error message
8954 // to a UDP recipient. The lowest common denominator is to at least
8955 // log the message. More sophisticated receivers can do something
8956 // smarter, for example, a money transaction failure can put up a
8957 // more user visible UI widget.
8958 {
8959 Error Low 423 NotTrusted Zerocoded
8960 {
8961 AgentData Single
8962 { AgentID LLUUID } // will forward to agentid if coming from trusted circuit
8963 }
8964 {
8965 Data Single
8966 { Code S32 } // matches http status codes
8967 { Token Variable 1 } // some specific short string based message
8968 { ID LLUUID } // the transactionid/uniqueid/sessionid whatever.
8969 { System Variable 1 } // The hierarchical path to the system, eg, "message/handler"
8970 { Message Variable 2 } // Human readable message
8971 { Data Variable 2 } // Binary serialized LLSD for extra info.
8972 }
8973 }
8974  
8975 // ObjectIncludeInSearch
8976 // viewer -> simulator
8977 {
8978 ObjectIncludeInSearch Low 424 NotTrusted Unencoded
8979 {
8980 AgentData Single
8981 { AgentID LLUUID }
8982 { SessionID LLUUID }
8983 }
8984 {
8985 ObjectData Variable
8986 { ObjectLocalID U32 }
8987 { IncludeInSearch BOOL }
8988 }
8989 }
8990  
8991  
8992 // This message is sent from viewer -> simulator when the viewer wants
8993 // to rez an object out of inventory back to its position before it
8994 // last moved into the inventory
8995 {
8996 RezRestoreToWorld Low 425 NotTrusted Unencoded UDPDeprecated
8997 {
8998 AgentData Single
8999 { AgentID LLUUID }
9000 { SessionID LLUUID }
9001 }
9002 {
9003 InventoryData Single
9004 { ItemID LLUUID }
9005 { FolderID LLUUID }
9006 { CreatorID LLUUID } // permissions
9007 { OwnerID LLUUID } // permissions
9008 { GroupID LLUUID } // permissions
9009 { BaseMask U32 } // permissions
9010 { OwnerMask U32 } // permissions
9011 { GroupMask U32 } // permissions
9012 { EveryoneMask U32 } // permissions
9013 { NextOwnerMask U32 } // permissions
9014 { GroupOwned BOOL } // permissions
9015 { TransactionID LLUUID }
9016 { Type S8 }
9017 { InvType S8 }
9018 { Flags U32 }
9019 { SaleType U8 }
9020 { SalePrice S32 }
9021 { Name Variable 1 }
9022 { Description Variable 1 }
9023 { CreationDate S32 }
9024 { CRC U32 }
9025 }
9026 }
9027  
9028 // Link inventory
9029 {
9030 LinkInventoryItem Low 426 NotTrusted Zerocoded
9031 {
9032 AgentData Single
9033 { AgentID LLUUID }
9034 { SessionID LLUUID }
9035 }
9036 {
9037 InventoryBlock Single
9038 { CallbackID U32 } // Async Response
9039 { FolderID LLUUID }
9040 { TransactionID LLUUID } // Going to become TransactionID
9041 { OldItemID LLUUID }
9042 { Type S8 }
9043 { InvType S8 }
9044 { Name Variable 1 }
9045 { Description Variable 1 }
9046  
9047 }
9048 }
9049