/scripts/messages/message_template.msg
Unknown | 3258 lines | 2983 code | 275 blank | 0 comment | 0 complexity | ce0684581003014504efa65128fae21c MD5 | raw file
Possible License(s): LGPL-2.1
1// Linden Lab development message templates 2 3version 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 2944// viewer -> sim 2945// reliable 2946{ 2947 RequestRegionInfo Low 141 NotTrusted Unencoded 2948 { 2949 AgentData Single 2950 { AgentID LLUUID } 2951 { SessionID LLUUID } 2952 } 2953} 2954 2955// RegionInfo 2956// Used to populate UI for both region/estate floater 2957// and god tools floater 2958// sim -> viewer 2959// reliable 2960{ 2961 RegionInfo Low 142 NotTrusted Zerocoded 2962 { 2963 AgentData Single 2964 { AgentID LLUUID } 2965 { SessionID LLUUID } 2966 } 2967 { 2968 RegionInfo Single 2969 { SimName Variable 1 } // string 2970 { EstateID U32 } 2971 { ParentEstateID U32 } 2972 { RegionFlags U32 } 2973 { SimAccess U8 } 2974 { MaxAgents U8 } 2975 { BillableFactor F32 } 2976 { ObjectBonusFactor F32 } 2977 { WaterHeight F32 } 2978 { TerrainRaiseLimit F32 } 2979 { TerrainLowerLimit F32 } 2980 { PricePerMeter S32 } 2981 { RedirectGridX S32 } 2982 { RedirectGridY S32 } 2983 { UseEstateSun BOOL } 2984 { SunHour F32 } // last value set by estate or region controls JC 2985 } 2986 { 2987 RegionInfo2 Single 2988 { ProductSKU Variable 1 } // string 2989 { ProductName Variable 1 } // string 2990 { MaxAgents32 U32 } // Identical to RegionInfo.MaxAgents but allows greater range 2991 { HardMaxAgents U32 } 2992 { HardMaxObjects U32 } 2993 } 2994} 2995 2996// GodUpdateRegionInfo 2997// Sent from viewer to sim after a god has changed some 2998// of the parameters in the god tools floater 2999// viewer -> sim 3000// reliable 3001{ 3002 GodUpdateRegionInfo Low 143 NotTrusted Zerocoded 3003 { 3004 AgentData Single 3005 { AgentID LLUUID } 3006 { SessionID LLUUID } 3007 } 3008 { 3009 RegionInfo Single 3010 { SimName Variable 1 } // string 3011 { EstateID U32 } 3012 { ParentEstateID U32 } 3013 { RegionFlags U32 } 3014 { BillableFactor F32 } 3015 { PricePerMeter S32 } 3016 { RedirectGridX S32 } 3017 { RedirectGridY S32 } 3018 } 3019} 3020 3021//NearestLandingRegionRequest 3022//sim->dataserver 3023//Sent from the region to the data server 3024//to request the most up to date region for the requesting 3025//region to redirect teleports to 3026{ 3027 NearestLandingRegionRequest Low 144 Trusted Unencoded 3028 { 3029 RequestingRegionData Single 3030 { RegionHandle U64 } 3031 } 3032} 3033 3034//NearestLandingPointReply 3035//dataserver->sim 3036//Sent from the data server to a region in reply 3037//to the redirectregion request stating which region 3038//the requesting region should redirect teleports to if necessary 3039{ 3040 NearestLandingRegionReply Low 145 Trusted Unencoded 3041 { 3042 LandingRegionData Single 3043 { RegionHandle U64 } 3044 } 3045} 3046 3047//NearestLandingPointUpdated 3048//sim->dataserver 3049//Sent from a region to the data server 3050//to have the dataserver note/clear in the db 3051//that the region has updated it's nearest landing point 3052{ 3053 NearestLandingRegionUpdated Low 146 Trusted Unencoded 3054 { 3055 RegionData Single 3056 { RegionHandle U64 } 3057 } 3058} 3059 3060 3061//TeleportLandingStatusChanged 3062//sim->dataserver 3063//Sent from the region to the data server 3064//to note that the region's teleportation landing status has changed 3065{ 3066 TeleportLandingStatusChanged Low 147 Trusted Unencoded 3067 { 3068 RegionData Single 3069 { RegionHandle U64 } 3070 } 3071} 3072 3073// RegionHandshake 3074// Sent by region to viewer after it has received UseCircuitCode 3075// from that viewer. 3076// sim -> viewer 3077// reliable 3078{ 3079 RegionHandshake Low 148 Trusted Zerocoded 3080 { 3081 RegionInfo Single 3082 { RegionFlags U32 } 3083 { SimAccess U8 } 3084 { SimName Variable 1 } // string 3085 { SimOwner LLUUID } 3086 { IsEstateManager BOOL } // this agent, for this sim 3087 { WaterHeight F32 } 3088 { BillableFactor F32 } 3089 { CacheID LLUUID } 3090 { TerrainBase0 LLUUID } 3091 { TerrainBase1 LLUUID } 3092 { TerrainBase2 LLUUID } 3093 { TerrainBase3 LLUUID } 3094 { TerrainDetail0 LLUUID } 3095 { TerrainDetail1 LLUUID } 3096 { TerrainDetail2 LLUUID } 3097 { TerrainDetail3 LLUUID } 3098 { TerrainStartHeight00 F32 } 3099 { TerrainStartHeight01 F32 } 3100 { TerrainStartHeight10 F32 } 3101 { TerrainStartHeight11 F32 } 3102 { TerrainHeightRange00 F32 } 3103 { TerrainHeightRange01 F32 } 3104 { TerrainHeightRange10 F32 } 3105 { TerrainHeightRange11 F32 } 3106 } 3107 { 3108 RegionInfo2 Single 3109 { RegionID LLUUID } 3110 } 3111 { 3112 RegionInfo3 Single 3113 { CPUClassID S32 } 3114 { CPURatio S32 } 3115 { ColoName Variable 1 } // string 3116 { ProductSKU Variable 1 } // string 3117 { ProductName Variable 1 } // string 3118 } 3119} 3120 3121// RegionHandshakeReply 3122// viewer -> sim 3123// reliable 3124// Sent after viewer has initialized the (pre-existing) 3125// LLViewerRegion with the name, access level, etc. and 3126// has loaded the cache for the region. 3127// After the simulator receives this, it will start sending 3128// data about objects. 3129{ 3130 RegionHandshakeReply Low 149 NotTrusted Zerocoded 3131 { 3132 AgentData Single 3133 { AgentID LLUUID } 3134 { SessionID LLUUID } 3135 } 3136 { 3137 RegionInfo Single 3138 { Flags U32 } 3139 } 3140} 3141 3142// The CoarseLocationUpdate message is sent to notify the viewer of 3143// the location of mappable objects in the region. 1 meter resolution is 3144// sufficient for this. The index block is used to show where you are, 3145// and where someone you are tracking is located. They are -1 if not 3146// applicable. 3147{ 3148 CoarseLocationUpdate Medium 6 Trusted Unencoded 3149 { 3150 Location Variable 3151 { X U8 } 3152 { Y U8 } 3153 { Z U8 } // Z in meters / 4 3154 } 3155 { 3156 Index Single 3157 { You S16 } 3158 { Prey S16 } 3159 } 3160 { 3161 AgentData Variable 3162 { AgentID LLUUID } 3163 } 3164} 3165 3166// ImageData - sent to viewer to transmit information about an image 3167{ 3168 ImageData High 9 Trusted Unencoded 3169 { 3170 ImageID Single 3171 { ID LLUUID } 3172 { Codec U8 } 3173 { Size U32 } 3174 { Packets U16 } 3175 } 3176 { 3177 ImageData Single 3178 { Data Variable 2 } 3179 } 3180} 3181 3182// ImagePacket - follow on image data for images having > 1 packet of data 3183{ 3184 ImagePacket High 10 Trusted Unencoded 3185 { 3186 ImageID Single 3187 { ID LLUUID } 3188 { Packet U16 } 3189 } 3190 { 3191 ImageData Single 3192 { Data Variable 2 } 3193 } 3194} 3195 3196// LayerData - Sent to viewer - encodes layer data 3197 3198{ 3199 LayerData High 11 Trusted Unencoded 3200 { 3201 LayerID Single 3202 { Type U8 } 3203 3204 } 3205 { 3206 LayerData Single 3207 { Data Variable 2 } 3208 } 3209} 3210 3211// ObjectUpdate - Sent by objects from the simulator to the viewer 3212// 3213// If only one ImageID is sent for an object type that has more than 3214// one face, the same image is repeated on each subsequent face. 3215// 3216// NameValue is a list of name-value strings, separated by \n characters, 3217// terminated by \0 3218// 3219// Data is type-specific opaque data for this object 3220{ 3221 ObjectUpdate High 12 Trusted Zerocoded 3222 { 3223 RegionData Single 3224 { RegionHandle U64 } 3225 { TimeDilation U16 } 3226 } 3227 { 3228 ObjectData Variable 3229 { ID U32 } 3230 { State U8 } 3231 3232 { FullID LLUUID } 3233 { CRC U32 } // TEMPORARY HACK FOR JAMES 3234 { PCode U8 } 3235 { Material U8 } 3236 { ClickAction U8 } 3237 { Scale LLVector3 } 3238 { ObjectData Variable 1 } 3239 3240 { ParentID U32 } 3241 { UpdateFlags U32 } // U32, see object_flags.h 3242 3243 { PathCurve U8 } 3244 { ProfileCurve U8 } 3245 { PathBegin U16 } // 0 to 1, quanta = 0.01 3246 { PathEnd U16 } // 0 to 1, quanta = 0.01 3247 { PathScaleX U8 } // 0 to 1, quanta = 0.01 3248 { PathScaleY U8 } // 0 to 1, quanta = 0.01 3249 { PathShearX U8 } // -.5 to .5, quanta = 0.01 3250 { PathShearY U8 } // -.5 to .5, quanta = 0.01 3251 { PathTwist S8 } // -1 to 1, quanta = 0.01 3252 { PathTwistBegin S8 } // -1 to 1, quanta = 0.01 3253 { PathRadiusOffset S8 } // -1 to 1, quanta = 0.01 3254 { PathTaperX S8 } // -1 to 1, quanta = 0.01 3255 { PathTaperY S8 } // -1 to 1, quanta = 0.01 3256 { PathRevolutions U8 } // 0 to 3, quanta = 0.015 3257 { PathSkew S8 } // -1 to 1, quanta = 0.01 3258 { ProfileBegin U16 } /