diff --git a/LibreMetaverse.StructuredData/StructuredData.cs b/LibreMetaverse.StructuredData/StructuredData.cs index 9018992..264118b 100644 --- a/LibreMetaverse.StructuredData/StructuredData.cs +++ b/LibreMetaverse.StructuredData/StructuredData.cs @@ -1,6 +1,6 @@ /* * Copyright (c) 2006-2016, openmetaverse.co - * Copyright (c) 2021-2022, Sjofn LLC. + * Copyright (c) 2021-2025, Sjofn LLC. * All rights reserved. * * - Redistribution and use in source and binary forms, with or without @@ -418,8 +418,7 @@ namespace OpenMetaverse.StructuredData { if (!Attribute.IsDefined(field, typeof(NonSerializedAttribute))) { - OSD serializedField; - if (serialized.TryGetValue(field.Name, out serializedField)) + if (serialized.TryGetValue(field.Name, out var serializedField)) field.SetValue(obj, ToObject(field.FieldType, serializedField)); } } @@ -433,8 +432,8 @@ namespace OpenMetaverse.StructuredData { private readonly bool _mBool; - private static readonly byte[] trueBinary = { 0x31 }; - private static readonly byte[] falseBinary = { 0x30 }; + private static readonly byte[] TrueBinary = { 0x31 }; + private static readonly byte[] FalseBinary = { 0x30 }; public override OSDType Type => OSDType.Boolean; @@ -447,7 +446,7 @@ namespace OpenMetaverse.StructuredData public override int AsInteger() { return _mBool ? 1 : 0; } public override double AsReal() { return _mBool ? 1d : 0d; } public override string AsString() { return _mBool ? "1" : "0"; } - public override byte[] AsBinary() { return _mBool ? trueBinary : falseBinary; } + public override byte[] AsBinary() { return _mBool ? TrueBinary : FalseBinary; } public override OSD Copy() { return new OSDBoolean(_mBool); } public override string ToString() { return AsString(); } @@ -596,58 +595,50 @@ namespace OpenMetaverse.StructuredData public override int AsInteger() { - double dbl; - if (double.TryParse(_mString, out dbl)) + if (double.TryParse(_mString, out var dbl)) return (int)Math.Floor(dbl); return 0; } public override uint AsUInteger() { - double dbl; - if (double.TryParse(_mString, out dbl)) + if (double.TryParse(_mString, out var dbl)) return (uint)Math.Floor(dbl); return 0; } public override long AsLong() { - double dbl; - if (double.TryParse(_mString, out dbl)) + if (double.TryParse(_mString, out var dbl)) return (long)Math.Floor(dbl); return 0; } public override ulong AsULong() { - double dbl; - if (double.TryParse(_mString, out dbl)) + if (double.TryParse(_mString, out var dbl)) return (ulong)Math.Floor(dbl); return 0; } public override double AsReal() { - double dbl; - return double.TryParse(_mString, out dbl) ? dbl : 0d; + return double.TryParse(_mString, out var dbl) ? dbl : 0d; } public override string AsString() { return _mString; } public override byte[] AsBinary() { return Encoding.UTF8.GetBytes(_mString); } public override UUID AsUUID() { - UUID uuid; - return UUID.TryParse(_mString, out uuid) ? uuid : UUID.Zero; + return UUID.TryParse(_mString, out var uuid) ? uuid : UUID.Zero; } public override DateTime AsDate() { - DateTime dt; - return DateTime.TryParse(_mString, out dt) ? dt : Utils.Epoch; + return DateTime.TryParse(_mString, out var dt) ? dt : Utils.Epoch; } public override Uri AsUri() { - Uri uri; - return Uri.TryCreate(_mString, UriKind.RelativeOrAbsolute, out uri) ? uri : null; + return Uri.TryCreate(_mString, UriKind.RelativeOrAbsolute, out var uri) ? uri : null; } public override string ToString() { return AsString(); } @@ -900,12 +891,8 @@ namespace OpenMetaverse.StructuredData public OSD this[string key] { - get - { - OSD llsd; - return _mMap.TryGetValue(key, out llsd) ? llsd : new OSD(); - } - set { _mMap[key] = value; } + get => _mMap.TryGetValue(key, out var llsd) ? llsd : new OSD(); + set => _mMap[key] = value; } public bool ContainsKey(string key) @@ -940,9 +927,7 @@ namespace OpenMetaverse.StructuredData public bool Contains(KeyValuePair kvp) { - // This is a bizarre function... we don't really implement it - // properly, hopefully no one wants to use it - return _mMap.ContainsKey(kvp.Key); + return _mMap.Contains(kvp); } public void CopyTo(KeyValuePair[] array, int index) diff --git a/LibreMetaverse.Types/UtilsConversions.cs b/LibreMetaverse.Types/UtilsConversions.cs index 8e564f4..9d56622 100644 --- a/LibreMetaverse.Types/UtilsConversions.cs +++ b/LibreMetaverse.Types/UtilsConversions.cs @@ -1127,7 +1127,7 @@ namespace OpenMetaverse } /// - /// Packs to 32-bit unsigned integers in to a 64-bit unsigned integer + /// Packs two 32-bit unsigned integers in to a 64-bit unsigned integer /// /// The left-hand (or X) value /// The right-hand (or Y) value diff --git a/LibreMetaverse/AgentManager.cs b/LibreMetaverse/AgentManager.cs index 5bc5f39..eb33a60 100644 --- a/LibreMetaverse/AgentManager.cs +++ b/LibreMetaverse/AgentManager.cs @@ -1253,6 +1253,8 @@ namespace OpenMetaverse } #endregion Callbacks + private const string AGENT_PROFILE_CAP = "AgentProfile"; + /// Reference to the GridClient instance private readonly GridClient Client; /// Used for movement and camera tracking @@ -1269,7 +1271,7 @@ namespace OpenMetaverse #region Properties - /// Your (client) avatars + /// Your (client) avatar's /// "client", "agent", and "avatar" all represent the same thing public UUID AgentID { get; private set; } @@ -1491,6 +1493,7 @@ namespace OpenMetaverse private readonly ManualResetEvent teleportEvent = new ManualResetEvent(false); private uint heightWidthGenCounter; private readonly Dictionary gestureCache = new Dictionary(); + #endregion Private Members /// @@ -1566,55 +1569,158 @@ namespace OpenMetaverse } #region Chat and instant messages + /// + /// Maximum size in bytes of chat messages + /// + public const int MaxChatMessageSize = 1023; - protected int message_chunk_group_id = 0; // a int that starts at 1 goes upto 500 (then back to 1) + /// + /// Maximum size in bytes of script dialog labels + /// + public const int MaxScriptDialogLabelSize = 254; + + /// + /// Splits a multi-byte string into parts of at most bytes. Attempts to avoid + /// splitting multi-byte characters (like UTF-8) to preserve integrity. Useful for chunked string processing. + /// + /// The input string to split. May contain multi-byte characters (e.g., UTF-8 text). + /// Maximum byte size per part of the split string. Must be greater than 0. + /// Maximum number of parts to create. Defaults to if unspecified. + /// + /// A of strings, each part limited to bytes or less. + /// Total parts do not exceed . Excessive parts over are discarded. + /// + /// + /// Thrown if is less than 1, as splitting below 1 byte is not possible. + /// + private static List SplitMultibyteString(string message, int splitSizeInBytes, int maxParts = int.MaxValue) + { + if (splitSizeInBytes < 1) + { + throw new Exception("Split size must be at least 1 byte"); + } + if (message.Length == 0) + { + return new List() + { + string.Empty + }; + } + + var messageParts = new List(); + var messageBytes = System.Text.Encoding.UTF8.GetBytes(message); + var messageBytesOffset = 0; + + while (messageParts.Count < maxParts && messageBytesOffset < messageBytes.Length) + { + var partEndOffset = Math.Min(messageBytesOffset + splitSizeInBytes, messageBytes.Length); + if (partEndOffset < messageBytes.Length) + { + // Starting at the desired split point (previous split point offset + splitSizeInBytes), + // iterate backwards, checking each byte until we find a byte that is not a continuation + // byte (0x80-0xBF). + // See: https://en.wikipedia.org/wiki/UTF-8#Byte_map + while (partEndOffset > messageBytesOffset) + { + var currentByte = messageBytes[partEndOffset]; + if(currentByte < 0x80 || currentByte > 0xBF) + { + // The current byte of the message is not a continuation byte and we can split the message here. + break; + } + + partEndOffset--; + } + } + + if (partEndOffset == messageBytesOffset) + { + // Edge case where we're forced to split the multi-byte character, such as when splitSizeInBytes is 1 + partEndOffset++; + } + + var newMessagePart = System.Text.Encoding.UTF8.GetString( + messageBytes, + messageBytesOffset, partEndOffset - messageBytesOffset + ); + messageParts.Add(newMessagePart); + + messageBytesOffset = partEndOffset; + } + + return messageParts; + } + + /// + /// Send a text message from the Agent to the Simulator on a negative channel via ScriptDialogReplyPacket + /// + /// A containing the message. Messages longer + /// than bytes will be truncated to + /// bytes. + /// The channel to send the message on + private void ChatOnNegativeChannel(string message, int channel) + { + var messageChunks = SplitMultibyteString(message, MaxScriptDialogLabelSize, 1); + + foreach (var messageChunk in messageChunks) + { + var chatPacket = new ScriptDialogReplyPacket + { + AgentData = + { + AgentID = AgentID, + SessionID = Client.Self.SessionID + }, + Data = + { + ObjectID = AgentID, + ChatChannel = channel, + ButtonIndex = 0, + ButtonLabel = Utils.StringToBytes(messageChunk) + } + }; + Client.Network.SendPacket(chatPacket); + } + } /// /// Send a text message from the Agent to the Simulator /// /// A containing the message - /// The channel to send the message on, 0 is the public channel. Channels above 0 - /// can be used however only scripts listening on the specified channel will see the message + /// The channel to send the message on, 0 is the public channel. Messages + /// sent on non-negative channels longer than bytes will be split + /// and sent in chunks of at most bytes. Messages on negative + /// channels will be truncated to at most bytes and chat + /// type will be ignored. /// Denotes the type of message being sent, shout, whisper, etc. - /// Enables large messages to be split into chunks of 900 with [CHUNKGROUPID|CHUNKID|TOTALCHUNKS] at the start - /// Hides [CHUNKGROUPID|CHUNKID|TOTALCHUNKS] at the start of chunked messages - public void Chat(string message, int channel, ChatType type,bool allow_split_message=true,bool hide_chunk_grouping=true) + /// Allows splitting of long messages into multiple chat messages if true, + /// otherwise long messages will be truncated to their maximum size. + public void Chat(string message, int channel, ChatType type, bool splitLargeMessages = true) { - if ((message.Length > 900) && (allow_split_message == true)) + if (channel < 0) { - int group_id = message_chunk_group_id; - message_chunk_group_id++; - if (message_chunk_group_id > 500) { message_chunk_group_id = 1; } - string[] chunks = message.SplitBy(900).ToArray(); - int chunkid = 1; - foreach(string chunk in chunks) - { - string chunk_grouping = ""; - if(hide_chunk_grouping == false) - { - chunk_grouping = $"[{group_id}|{chunkid}|{chunks.Length}]"; - } - Chat($"{chunk_grouping}{chunk}", channel, type, false); - chunkid++; - } + ChatOnNegativeChannel(message, channel); + return; } - else + + var messageChunks = SplitMultibyteString(message, MaxChatMessageSize, splitLargeMessages ? int.MaxValue : 1); + foreach (var messageChunk in messageChunks) { - ChatFromViewerPacket chat = new ChatFromViewerPacket + var chatPacket = new ChatFromViewerPacket { AgentData = - { - AgentID = AgentID, - SessionID = Client.Self.SessionID - }, + { + AgentID = AgentID, + SessionID = Client.Self.SessionID + }, ChatData = - { - Channel = channel, - Message = Utils.StringToBytes(message), - Type = (byte) type - } + { + Channel = channel, + Message = Utils.StringToBytes(messageChunk), + Type = (byte) type + } }; - Client.Network.SendPacket(chat); + Client.Network.SendPacket(chatPacket); } } @@ -1722,12 +1828,21 @@ namespace OpenMetaverse InstantMessageDialog dialog, InstantMessageOnline offline, Vector3 position, UUID regionID, byte[] binaryBucket) { - if (target != UUID.Zero) + if (target == UUID.Zero) + { + Logger.Log($"Suppressing instant message \"{message}\" to UUID.Zero", Helpers.LogLevel.Error, Client); + return; + } + + var messageParts = SplitMultibyteString(message, MaxChatMessageSize); + foreach (var messagePart in messageParts) { ImprovedInstantMessagePacket im = new ImprovedInstantMessagePacket(); if (imSessionID.Equals(UUID.Zero) || imSessionID.Equals(AgentID)) + { imSessionID = AgentID.Equals(target) ? AgentID : target ^ AgentID; + } im.AgentData.AgentID = Client.Self.AgentID; im.AgentData.SessionID = Client.Self.SessionID; @@ -1736,7 +1851,7 @@ namespace OpenMetaverse im.MessageBlock.FromAgentName = Utils.StringToBytes(fromName); im.MessageBlock.FromGroup = false; im.MessageBlock.ID = imSessionID; - im.MessageBlock.Message = Utils.StringToBytes(message); + im.MessageBlock.Message = Utils.StringToBytes(messagePart); im.MessageBlock.Offline = (byte)offline; im.MessageBlock.ToAgentID = target; @@ -1750,11 +1865,6 @@ namespace OpenMetaverse // Send the message Client.Network.SendPacket(im); } - else - { - Logger.Log($"Suppressing instant message \"{message}\" to UUID.Zero", - Helpers.LogLevel.Error, Client); - } } /// @@ -1777,7 +1887,15 @@ namespace OpenMetaverse { lock (GroupChatSessions.Dictionary) { - if (GroupChatSessions.ContainsKey(groupID)) + if (!GroupChatSessions.ContainsKey(groupID)) + { + Logger.Log("No Active group chat session appears to exist, use RequestJoinGroupChat() to join one", + Helpers.LogLevel.Error, Client); + return; + } + + var messageChunks = SplitMultibyteString(message, MaxChatMessageSize); + foreach (var messageChunk in messageChunks) { ImprovedInstantMessagePacket im = new ImprovedInstantMessagePacket { @@ -1791,7 +1909,7 @@ namespace OpenMetaverse Dialog = (byte) InstantMessageDialog.SessionSend, FromAgentName = Utils.StringToBytes(fromName), FromGroup = false, - Message = Utils.StringToBytes(message), + Message = Utils.StringToBytes(messageChunk), Offline = 0, ID = groupID, ToAgentID = groupID, @@ -1801,14 +1919,8 @@ namespace OpenMetaverse } }; - Client.Network.SendPacket(im); } - else - { - Logger.Log("No Active group chat session appears to exist, use RequestJoinGroupChat() to join one", - Helpers.LogLevel.Error, Client); - } } } @@ -3321,14 +3433,36 @@ namespace OpenMetaverse #endregion Teleporting - #region Misc + #region Profile /// /// Update agent profile /// - /// struct containing updated + /// struct containing updated /// profile information + /// + /// The behavior between LLUDP and Http Capability differs. See each method's remarks + /// + /// + /// public void UpdateProfile(Avatar.AvatarProperties profile) + { + if (Client.Network.CurrentSim.Caps.CapabilityURI(AGENT_PROFILE_CAP) != null) + { + UpdateProfileHttp(profile); + } + else + { + UpdateProfileUdp(profile); + } + } + + /// + /// Update agent profile via simulator LLUDP + /// + /// struct containing updated + /// profile information + public void UpdateProfileUdp(Avatar.AvatarProperties profile) { AvatarPropertiesUpdatePacket apup = new AvatarPropertiesUpdatePacket { @@ -3352,10 +3486,50 @@ namespace OpenMetaverse Client.Network.SendPacket(apup); } + /// + /// Update agent profile + /// + /// struct containing updated + /// profile information + /// + /// + /// Only updates about text fields, profile url, and allow_publish. + /// Does not update image UUID, etc. like the legacy LLUDP request. + /// + public async void UpdateProfileHttp(Avatar.AvatarProperties profile, CancellationToken cancellationToken = default) + { + var payload = new OSDMap + { + ["sl_about_text"] = profile.AboutText, + ["fl_about_text"] = profile.FirstLifeText, + ["profile_url"] = profile.ProfileURL, + ["allow_publish"] = profile.AllowPublish, + ["sl_image_id"] = profile.ProfileImage, + ["fl_image_id"] = profile.FirstLifeImage + }; + + var capability = Client.Network.CurrentSim.Caps.CapabilityURI(AGENT_PROFILE_CAP); + var uri = new Uri($"{capability}/{AgentID}"); + await Client.HttpCapsClient.PutRequestAsync(uri, OSDFormat.Xml, payload, cancellationToken, + (response, data, error) => + { + if (error != null) + { + Logger.Log($"AgentProfile update failed: {error.Message}", Helpers.LogLevel.Warning); + return; + } + + if (response.IsSuccessStatusCode) + { + Logger.Log("AgentProfile update succeeded.", Helpers.LogLevel.Debug); + } + }); + } + /// /// Update agent's profile interests /// - /// selection of interests from struct + /// selection of interests from struct public void UpdateInterests(Avatar.Interests interests) { AvatarInterestsUpdatePacket aiup = new AvatarInterestsUpdatePacket @@ -3383,7 +3557,21 @@ namespace OpenMetaverse /// /// target avatar for notes /// notes to store + /// + /// public void UpdateProfileNotes(UUID target, string notes) + { + if (Client.Network.CurrentSim.Caps.CapabilityURI(AGENT_PROFILE_CAP) != null) + { + UpdateProfileNotesHttp(target, notes); + } + else + { + UpdateProfileNotesUdp(target, notes); + } + } + + private void UpdateProfileNotesUdp(UUID target, string notes) { AvatarNotesUpdatePacket anup = new AvatarNotesUpdatePacket { @@ -3402,32 +3590,36 @@ namespace OpenMetaverse } /// - /// Set the height and the width of the client window. This is used - /// by the server to build a virtual camera frustum for our avatar + /// Update agent's private notes for target avatar using HTTP capability system /// - /// New height of the viewer window - /// New width of the viewer window - public void SetHeightWidth(ushort height, ushort width) + /// target avatar for notes + /// notes to store + /// + public async void UpdateProfileNotesHttp(UUID target, string notes, CancellationToken cancellationToken = default) { - AgentHeightWidthPacket heightwidth = new AgentHeightWidthPacket - { - AgentData = - { - AgentID = Client.Self.AgentID, - SessionID = Client.Self.SessionID, - CircuitCode = Client.Network.CircuitCode - }, - HeightWidthBlock = - { - Height = height, - Width = width, - GenCounter = heightWidthGenCounter++ - } - }; + var payload = new OSDMap { ["notes"] = notes }; - Client.Network.SendPacket(heightwidth); + var capability = Client.Network.CurrentSim.Caps.CapabilityURI(AGENT_PROFILE_CAP); + var uri = new Uri($"{capability}/{target}"); + await Client.HttpCapsClient.PutRequestAsync(uri, OSDFormat.Xml, payload, cancellationToken, + (response, data, error) => + { + if (error != null) + { + Logger.Log($"AgentProfile notes update failed: {error.Message}", Helpers.LogLevel.Warning); + } + + if (response.IsSuccessStatusCode) + { + Logger.Log("AgentProfile notes update succeeded.", Helpers.LogLevel.Debug); + } + }); } + #endregion Profile + + #region Mute List + /// /// Request the list of muted objects and avatars for this agent /// @@ -3535,10 +3727,41 @@ namespace OpenMetaverse } } + #endregion Mute List + + #region Misc + + /// + /// Set the height and the width of the client window. This is used + /// by the server to build a virtual camera frustum for our avatar + /// + /// New height of the viewer window + /// New width of the viewer window + public void SetHeightWidth(ushort height, ushort width) + { + AgentHeightWidthPacket heightwidth = new AgentHeightWidthPacket + { + AgentData = + { + AgentID = Client.Self.AgentID, + SessionID = Client.Self.SessionID, + CircuitCode = Client.Network.CircuitCode + }, + HeightWidthBlock = + { + Height = height, + Width = width, + GenCounter = heightWidthGenCounter++ + } + }; + + Client.Network.SendPacket(heightwidth); + } + /// /// Sets home location to agents current position /// - /// will fire an AlertMessage () with + /// will fire an AlertMessage () with /// success or failure message public void SetHome() { @@ -3564,7 +3787,7 @@ namespace OpenMetaverse /// Move an agent in to a simulator. This packet is the last packet /// needed to complete the transition in to a new simulator /// - /// Object + /// Object public void CompleteAgentMovement(Simulator simulator) { CompleteAgentMovementPacket move = new CompleteAgentMovementPacket @@ -3584,10 +3807,10 @@ namespace OpenMetaverse /// /// Reply to script permissions request /// - /// Object + /// Object /// of the itemID requesting permissions /// of the taskID requesting permissions - /// list of permissions to allow + /// list of permissions to allow public void ScriptQuestionReply(Simulator simulator, UUID itemID, UUID taskID, ScriptPermission permissions) { ScriptAnswerYesPacket yes = new ScriptAnswerYesPacket diff --git a/LibreMetaverse/AppearanceManager.cs b/LibreMetaverse/AppearanceManager.cs index f5a3032..e092e38 100644 --- a/LibreMetaverse/AppearanceManager.cs +++ b/LibreMetaverse/AppearanceManager.cs @@ -426,6 +426,7 @@ namespace OpenMetaverse Client.Network.RegisterCallback(PacketType.AgentCachedTextureResponse, AgentCachedTextureResponseHandler); Client.Network.RegisterCallback(PacketType.RebakeAvatarTextures, RebakeAvatarTexturesHandler); + Client.Objects.ObjectUpdate += Objects_AttachmentUpdate; Client.Network.Disconnected += Network_OnDisconnected; Client.Network.SimChanged += Network_OnSimChanged; } @@ -2716,6 +2717,37 @@ namespace OpenMetaverse Client.Network.CurrentSim.Caps.CapabilitiesReceived += Simulator_OnCapabilitiesReceived; } + private void Objects_AttachmentUpdate(object sender, PrimEventArgs e) + { + Primitive prim = e.Prim; + + if (Client.Self.LocalID == 0 + || prim.ParentID != Client.Self.LocalID + || prim.NameValues == null + || !prim.IsAttachment + || !e.IsNew) + { + return; + } + + // Updates Attachment points as soon as the data arrives + for (int i = 0; i < prim.NameValues.Length; ++i) + { + if (prim.NameValues[i].Name != "AttachItemID") + { + continue; + } + + UUID inventoryID = new UUID(prim.NameValues[i].Value.ToString()); + + if (Attachments.TryGetValue(inventoryID, out AttachmentPoint attachmentPoint)) + { + Attachments.AddOrUpdate(inventoryID, attachmentPoint, (id, value) => prim.PrimData.AttachmentPoint); + } + break; + } + } + private void Simulator_OnCapabilitiesReceived(object sender, CapabilitiesReceivedEventArgs e) { e.Simulator.Caps.CapabilitiesReceived -= Simulator_OnCapabilitiesReceived; diff --git a/LibreMetaverse/AssetCache.cs b/LibreMetaverse/AssetCache.cs index 73fe942..49c5465 100644 --- a/LibreMetaverse/AssetCache.cs +++ b/LibreMetaverse/AssetCache.cs @@ -214,7 +214,7 @@ namespace OpenMetaverse /// String with the file name of the static cached asset private string StaticFileName(UUID assetID) { - return Settings.RESOURCE_DIR + Path.DirectorySeparatorChar + "static_assets" + Path.DirectorySeparatorChar + assetID; + return Path.Combine(Settings.RESOURCE_DIR, "static_assets", assetID.ToString()); } /// diff --git a/LibreMetaverse/AssetManager.cs b/LibreMetaverse/AssetManager.cs index 8953a46..a72c270 100644 --- a/LibreMetaverse/AssetManager.cs +++ b/LibreMetaverse/AssetManager.cs @@ -931,7 +931,7 @@ namespace OpenMetaverse { // Add this transfer to the dictionary lock (Transfers) Transfers[transfer.ID] = transfer; - + // Build the request packet and send it var request = new TransferRequestPacket { @@ -943,7 +943,7 @@ namespace OpenMetaverse TransferID = transfer.ID } }; - + var paramField = new byte[36]; Buffer.BlockCopy(Client.Self.AgentID.GetBytes(), 0, paramField, 0, 16); Buffer.BlockCopy(Client.Self.SessionID.GetBytes(), 0, paramField, 16, 16); @@ -953,7 +953,7 @@ namespace OpenMetaverse Client.Network.SendPacket(request, transfer.Simulator); } - #region Uploads +#region Uploads /// /// Used to force asset data into the PendingUpload property, ie: for raw terrain uploads /// diff --git a/LibreMetaverse/AvatarManager.cs b/LibreMetaverse/AvatarManager.cs index 99efca9..778dc12 100644 --- a/LibreMetaverse/AvatarManager.cs +++ b/LibreMetaverse/AvatarManager.cs @@ -28,10 +28,8 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Text; using System.Threading; using System.Threading.Tasks; -using OpenMetaverse.Http; using OpenMetaverse.Packets; using OpenMetaverse.Interfaces; using OpenMetaverse.Messages.Linden; @@ -169,7 +167,7 @@ namespace OpenMetaverse public struct ClassifiedAd { public UUID ClassifiedID; - public uint Catagory; + public uint Category; public UUID ParcelID; public uint ParentEstate; public UUID SnapShotID; @@ -681,7 +679,7 @@ namespace OpenMetaverse Client.Network.SendPacket(request); } - // Get any remaining names after left after the full requests + // Get any remaining names left after the full requests if (ids.Count > n * m) { request = new UUIDNameRequestPacket @@ -1533,7 +1531,7 @@ namespace OpenMetaverse Price = p.Data.PriceForListing, ParentEstate = p.Data.ParentEstate, ClassifiedFlags = p.Data.ClassifiedFlags, - Catagory = p.Data.Category + Category = p.Data.Category }; OnClassifiedInfoReply(new ClassifiedInfoReplyEventArgs(ret.ClassifiedID, ret)); diff --git a/LibreMetaverse/Capabilities/HttpCapsClient.cs b/LibreMetaverse/Capabilities/HttpCapsClient.cs index 1271946..bba5176 100644 --- a/LibreMetaverse/Capabilities/HttpCapsClient.cs +++ b/LibreMetaverse/Capabilities/HttpCapsClient.cs @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2024, Sjofn, LLC. + * Copyright (c) 2022-2025, Sjofn, LLC. * All rights reserved. * * - Redistribution and use in source and binary forms, with or without @@ -59,8 +59,8 @@ namespace LibreMetaverse #region GET requests - public async Task GetRequestAsync(Uri uri, CancellationToken cancellationToken, - DownloadCompleteHandler completeHandler, DownloadProgressHandler progressHandler, ConnectedHandler connectedHandler) + public async Task GetRequestAsync(Uri uri, CancellationToken cancellationToken, + DownloadCompleteHandler completeHandler, DownloadProgressHandler progressHandler = default, ConnectedHandler connectedHandler = default) { using (var request = new HttpRequestMessage(HttpMethod.Get, uri)) { @@ -68,17 +68,12 @@ namespace LibreMetaverse } } - public async Task GetRequestAsync(Uri uri, CancellationToken cancellationToken, DownloadCompleteHandler completeHandler) - { - await GetRequestAsync(uri, cancellationToken, completeHandler, null, null); - } - #endregion GET requests #region POST requests public async Task PostRequestAsync(Uri uri, string contentType, byte[] payload, CancellationToken cancellationToken, - DownloadCompleteHandler completeHandler, DownloadProgressHandler progressHandler, ConnectedHandler connectedHandler) + DownloadCompleteHandler completeHandler, DownloadProgressHandler progressHandler = default, ConnectedHandler connectedHandler = default) { using (var request = new HttpRequestMessage(HttpMethod.Post, uri)) { @@ -88,14 +83,8 @@ namespace LibreMetaverse } } - public async Task PostRequestAsync(Uri uri, string contentType, byte[] payload, CancellationToken cancellationToken, - DownloadCompleteHandler completeHandler) - { - await PostRequestAsync(uri, contentType, payload, cancellationToken, completeHandler, null, null); - } - public async Task PostRequestAsync(Uri uri, OSDFormat format, OSD payload, CancellationToken cancellationToken, - DownloadCompleteHandler completeHandler, DownloadProgressHandler progressHandler, ConnectedHandler connectedHandler) + DownloadCompleteHandler completeHandler, DownloadProgressHandler progressHandler = default, ConnectedHandler connectedHandler = default) { SerializeData(format, payload, out var serialized, out var contentType); using (var request = new HttpRequestMessage(HttpMethod.Post, uri)) @@ -113,18 +102,12 @@ namespace LibreMetaverse } } - public async Task PostRequestAsync(Uri uri, OSDFormat format, OSD payload, CancellationToken cancellationToken, - DownloadCompleteHandler completeHandler) - { - await PostRequestAsync(uri, format, payload, cancellationToken, completeHandler, null, null); - } - #endregion POST requests #region PUT requests public async Task PutRequestAsync(Uri uri, string contentType, byte[] payload, CancellationToken cancellationToken, - DownloadCompleteHandler completeHandler, DownloadProgressHandler progressHandler, ConnectedHandler connectedHandler) + DownloadCompleteHandler completeHandler, DownloadProgressHandler progressHandler = default, ConnectedHandler connectedHandler = default) { using (var request = new HttpRequestMessage(HttpMethod.Put, uri)) { @@ -134,14 +117,8 @@ namespace LibreMetaverse } } - public async Task PutRequestAsync(Uri uri, string contentType, byte[] payload, CancellationToken cancellationToken, - DownloadCompleteHandler completeHandler) - { - await PutRequestAsync(uri, contentType, payload, cancellationToken, completeHandler, null, null); - } - public async Task PutRequestAsync(Uri uri, OSDFormat format, OSD payload, CancellationToken cancellationToken, - DownloadCompleteHandler completeHandler, DownloadProgressHandler progressHandler, ConnectedHandler connectedHandler) + DownloadCompleteHandler completeHandler, DownloadProgressHandler progressHandler = default, ConnectedHandler connectedHandler = default) { SerializeData(format, payload, out var serialized, out var contentType); using (var request = new HttpRequestMessage(HttpMethod.Put, uri)) @@ -152,18 +129,12 @@ namespace LibreMetaverse } } - public async Task PutRequestAsync(Uri uri, OSDFormat format, OSD payload, CancellationToken cancellationToken, - DownloadCompleteHandler completeHandler) - { - await PutRequestAsync(uri, format, payload, cancellationToken, completeHandler, null, null); - } - #endregion PUT requests #region PATCH requests public async Task PatchRequestAsync(Uri uri, string contentType, byte[] payload, CancellationToken cancellationToken, - DownloadCompleteHandler completeHandler, DownloadProgressHandler progressHandler, ConnectedHandler connectedHandler) + DownloadCompleteHandler completeHandler, DownloadProgressHandler progressHandler = default, ConnectedHandler connectedHandler = default) { #if (NETSTANDARD2_1_OR_GREATER || NET) using (var request = new HttpRequestMessage(HttpMethod.Patch, uri)) @@ -177,14 +148,8 @@ namespace LibreMetaverse } } - public async Task PatchRequestAsync(Uri uri, string contentType, byte[] payload, CancellationToken cancellationToken, - DownloadCompleteHandler completeHandler) - { - await PatchRequestAsync(uri, contentType, payload, cancellationToken, completeHandler, null, null); - } - public async Task PatchRequestAsync(Uri uri, OSDFormat format, OSD payload, CancellationToken cancellationToken, - DownloadCompleteHandler completeHandler, DownloadProgressHandler progressHandler, ConnectedHandler connectedHandler) + DownloadCompleteHandler completeHandler, DownloadProgressHandler progressHandler = default, ConnectedHandler connectedHandler = default) { SerializeData(format, payload, out var serialized, out var contentType); #if (NETSTANDARD2_1_OR_GREATER || NET) @@ -199,18 +164,12 @@ namespace LibreMetaverse } } - public async Task PatchRequestAsync(Uri uri, OSDFormat format, OSD payload, CancellationToken cancellationToken, - DownloadCompleteHandler completeHandler) - { - await PatchRequestAsync(uri, format, payload, cancellationToken, completeHandler, null, null); - } - #endregion PATCH requests #region DELETE requests public async Task DeleteRequestAsync(Uri uri, string contentType, byte[] payload, CancellationToken cancellationToken, - DownloadCompleteHandler completeHandler, DownloadProgressHandler progressHandler, ConnectedHandler connectedHandler) + DownloadCompleteHandler completeHandler, DownloadProgressHandler progressHandler = default, ConnectedHandler connectedHandler = default) { using (var request = new HttpRequestMessage(HttpMethod.Delete, uri)) { @@ -220,14 +179,8 @@ namespace LibreMetaverse } } - public async Task DeleteRequestAsync(Uri uri, string contentType, byte[] payload, CancellationToken cancellationToken, - DownloadCompleteHandler completeHandler) - { - await DeleteRequestAsync(uri, contentType, payload, cancellationToken, completeHandler, null, null); - } - public async Task DeleteRequestAsync(Uri uri, OSDFormat format, OSD payload, CancellationToken cancellationToken, - DownloadCompleteHandler completeHandler, DownloadProgressHandler progressHandler, ConnectedHandler connectedHandler) + DownloadCompleteHandler completeHandler, DownloadProgressHandler progressHandler = default, ConnectedHandler connectedHandler = default) { SerializeData(format, payload, out var serialized, out var contentType); using (var request = new HttpRequestMessage(HttpMethod.Delete, uri)) @@ -238,12 +191,6 @@ namespace LibreMetaverse } } - public async Task DeleteRequestAsync(Uri uri, OSDFormat format, OSD payload, CancellationToken cancellationToken, - DownloadCompleteHandler completeHandler) - { - await DeleteRequestAsync(uri, format, payload, cancellationToken, completeHandler, null, null); - } - #endregion DELETE requests /// /// /// /// /// /// /// /// /// /// /// /// diff --git a/LibreMetaverse/Caps.cs b/LibreMetaverse/Caps.cs index e5f7eec..37ca9ed 100644 --- a/LibreMetaverse/Caps.cs +++ b/LibreMetaverse/Caps.cs @@ -1,6 +1,6 @@ /* * Copyright (c) 2006-2016, openmetaverse.co - * Copyright (c) 2019-2024, Sjofn LLC. + * Copyright (c) 2019-2025, Sjofn LLC. * All rights reserved. * * - Redistribution and use in source and binary forms, with or without @@ -36,6 +36,7 @@ using OpenMetaverse.StructuredData; using OpenMetaverse.Interfaces; using OpenMetaverse.Http; using System.Net.Http; +using LibreMetaverse; namespace OpenMetaverse { @@ -319,12 +320,21 @@ namespace OpenMetaverse _EventQueueClient.Start(); } + if (_Caps.TryGetValue("SimulatorFeatures", out var simFeaturesCap)) + { + Logger.DebugLog($"Retrieving Simulator Features", Simulator.Client); + Simulator.Features = new SimulatorFeatures(Simulator); + _ = Simulator.Client.HttpCapsClient.GetRequestAsync( + simFeaturesCap, _HttpCts.Token, Simulator.Features.SetFeatures); + } + OnCapabilitiesReceived(Simulator); } } catch (LitJson.JsonException) { - Logger.Log("Invalid caps response; '" + System.Text.Encoding.UTF8.GetString(responseData) + "' for seed request.", Helpers.LogLevel.Warning, Simulator.Client); + Logger.Log($"Invalid caps response; '{System.Text.Encoding.UTF8.GetString(responseData)}' for seed request.", + Helpers.LogLevel.Warning, Simulator.Client); } } diff --git a/LibreMetaverse/EstateTools.cs b/LibreMetaverse/EstateTools.cs index 6ebea7e..3298586 100644 --- a/LibreMetaverse/EstateTools.cs +++ b/LibreMetaverse/EstateTools.cs @@ -1,5 +1,6 @@ /* * Copyright (c) 2006-2016, openmetaverse.co + * Copyright (c) 2025, Sjofn LLC. * All rights reserved. * * - Redistribution and use in source and binary forms, with or without @@ -30,9 +31,10 @@ using OpenMetaverse.Messages.Linden; using System.Collections.Generic; using System.Globalization; using System.Net.Http; -using System.Threading.Tasks; -using OpenMetaverse.StructuredData; using System.Text; +using System.Threading.Tasks; +using LibreMetaverse; +using OpenMetaverse.StructuredData; namespace OpenMetaverse { @@ -350,6 +352,78 @@ namespace OpenMetaverse #endregion #region Public Methods + + + /// + /// Updates estate-level configuration settings for the current region. + /// Attempts to send the update via the "EstateChangeInfo" HTTP caps if available + /// or you can enable a fallback to the legacy method. + /// + /// The name of the estate. + /// The sun hour value (0.0–24.0, scaled internally). + /// Whether the sun position is fixed. + /// Whether the estate is visible externally. + /// Allow direct teleport to the estate. + /// Deny access to anonymous users. + /// Deny access to age-unverified users. + /// Block bots from entering the estate. + /// Allow voice chat in the estate. + /// Override public access settings. + /// Override environment settings. + public async Task UpdateEstateInfo( + string estateName, float sunhourvalue, bool issunfixed, bool isexternallyvisible, + bool allowdirectteleport, bool denyanonymous, bool denyageunverified, bool blockbots, + bool allowvoicechat, bool overridepublicaccess, bool overrideenvironment) + { + Uri uri = Client.Network.CurrentSim.Caps.CapabilityURI("EstateChangeInfo"); + if (uri == null) + { + Logger.Log("using UpdateEstateInfoFallback one day we will have working caps for this", Helpers.LogLevel.Info); + List config = new List(); + config.Add(estateName); + Int64 bitmask = 0; + if (issunfixed) bitmask |= 1 << 4; + if (isexternallyvisible) bitmask |= 1 << 15; + if (allowdirectteleport) bitmask |= 1 << 20; + if (denyanonymous) bitmask |= 1 << 23; + if (denyageunverified) bitmask |= 1 << 30; + if (blockbots) bitmask |= 1 << 31; + if (allowvoicechat) bitmask |= 1 << 28; + if (overridepublicaccess) bitmask |= 1 << 5; + if (overrideenvironment) bitmask |= 1 << 9; + config.Add(bitmask.ToString(CultureInfo.InvariantCulture)); + config.Add((sunhourvalue * 1024.0f).ToString(CultureInfo.InvariantCulture)); + EstateOwnerMessage("estatechangeinfo", config); + return Task.CompletedTask; + } + OSDMap body = new OSDMap(); + body["estate_name"] = estateName; + body["sun_hour"] = (sunhourvalue * 1024.0f); + body["is_sun_fixed"] = issunfixed; + body["is_externally_visible"] = isexternallyvisible; + body["allow_direct_teleport"] = allowdirectteleport; + body["deny_anonymous"] = denyanonymous; + body["deny_age_unverified"] = denyageunverified; + body["block_bots"] = blockbots; + body["allow_voice_chat"] = allowvoicechat; + body["override_public_access"] = overridepublicaccess; + body["override_environment"] = overrideenvironment; + body["invoice"] = UUID.Random(); + string requestBody = OSDParser.SerializeLLSDXmlString(body); + try + { + var content = new StringContent(requestBody, Encoding.UTF8, "application/llsd+xml"); + var reply = await Client.HttpCapsClient.PostAsync(uri.ToString(), content); + _ = await reply.Content.ReadAsStringAsync(); + Logger.Log($"EstateChangeInfo update {reply.StatusCode.ToString()}", Helpers.LogLevel.Info); + } + catch (Exception e) + { + Logger.Log($"EstateChangeInfo error {e.Message}", Helpers.LogLevel.Error); + } + return Task.CompletedTask; + } + /// /// Requests estate information such as top scripts and colliders /// @@ -359,13 +433,21 @@ namespace OpenMetaverse /// public void LandStatRequest(int parcelLocalID, LandStatReportType reportType, uint requestFlags, string filter) { - LandStatRequestPacket p = new LandStatRequestPacket(); - p.AgentData.AgentID = Client.Self.AgentID; - p.AgentData.SessionID = Client.Self.SessionID; - p.RequestData.Filter = Utils.StringToBytes(filter); - p.RequestData.ParcelLocalID = parcelLocalID; - p.RequestData.ReportType = (uint)reportType; - p.RequestData.RequestFlags = requestFlags; + LandStatRequestPacket p = new LandStatRequestPacket + { + AgentData = + { + AgentID = Client.Self.AgentID, + SessionID = Client.Self.SessionID + }, + RequestData = + { + Filter = Utils.StringToBytes(filter), + ParcelLocalID = parcelLocalID, + ReportType = (uint)reportType, + RequestFlags = requestFlags + } + }; Client.Network.SendPacket(p); } @@ -432,11 +514,19 @@ namespace OpenMetaverse } else { - SimWideDeletesPacket simDelete = new SimWideDeletesPacket(); - simDelete.AgentData.AgentID = Client.Self.AgentID; - simDelete.AgentData.SessionID = Client.Self.SessionID; - simDelete.DataBlock.TargetID = Target; - simDelete.DataBlock.Flags = (uint)flag; + SimWideDeletesPacket simDelete = new SimWideDeletesPacket + { + AgentData = + { + AgentID = Client.Self.AgentID, + SessionID = Client.Self.SessionID + }, + DataBlock = + { + TargetID = Target, + Flags = (uint)flag + } + }; Client.Network.SendPacket(simDelete); } } @@ -458,17 +548,27 @@ namespace OpenMetaverse /// List of parameters to include public void EstateOwnerMessage(string method, List listParams) { - EstateOwnerMessagePacket estate = new EstateOwnerMessagePacket(); - estate.AgentData.AgentID = Client.Self.AgentID; - estate.AgentData.SessionID = Client.Self.SessionID; - estate.AgentData.TransactionID = UUID.Zero; - estate.MethodData.Invoice = UUID.Random(); - estate.MethodData.Method = Utils.StringToBytes(method); - estate.ParamList = new EstateOwnerMessagePacket.ParamListBlock[listParams.Count]; + EstateOwnerMessagePacket estate = new EstateOwnerMessagePacket + { + AgentData = + { + AgentID = Client.Self.AgentID, + SessionID = Client.Self.SessionID, + TransactionID = UUID.Zero + }, + MethodData = + { + Invoice = UUID.Random(), + Method = Utils.StringToBytes(method) + }, + ParamList = new EstateOwnerMessagePacket.ParamListBlock[listParams.Count] + }; for (int i = 0; i < listParams.Count; i++) { - estate.ParamList[i] = new EstateOwnerMessagePacket.ParamListBlock(); - estate.ParamList[i].Parameter = Utils.StringToBytes(listParams[i]); + estate.ParamList[i] = new EstateOwnerMessagePacket.ParamListBlock + { + Parameter = Utils.StringToBytes(listParams[i]) + }; } Client.Network.SendPacket((Packet)estate); } @@ -570,79 +670,70 @@ namespace OpenMetaverse EstateOwnerMessage("restart", "-1"); } - public async Task> extendedSetRegionInfo( - bool blockTerraform, bool blockFly, bool blockFlyover, bool allowDamage, bool allowLandResell, - int agentLimit, float primBonus, RegionMaturity maturityLevel, bool blockObjectPush, - bool allowParcelChanges, bool blockParcelSearch) + [Obsolete("Use SetRegionInfo with new arguments or SetRegionInfoUdp")] + public void SetRegionInfo(bool blockTerraform, bool blockFly, bool allowDamage, bool allowLandResell, + bool restrictPushing, bool allowParcelJoinDivide, float agentLimit, float objectBonus, + RegionMaturity maturity) { - if (Client == null) + SetRegionInfo(blockTerraform, blockFly, false, allowDamage, allowLandResell, restrictPushing, + allowParcelJoinDivide, agentLimit, objectBonus, false, maturity); + } + + public void SetRegionInfo(bool blockTerraform, bool blockFly, bool blockFlyOver, bool allowDamage, + bool allowLandResell, bool restrictPushing, bool allowParcelJoinDivide, float agentLimit, float objectBonus, + bool blockParcelSearch, RegionMaturity maturity) + { + if (Client.Network.CurrentSim?.Caps?.CapabilityURI("DispatchRegionInfo") == null + || !SetRegionInfoHttp(blockTerraform, blockFly, blockFlyOver, allowDamage, allowLandResell, restrictPushing, + allowParcelJoinDivide, agentLimit, objectBonus, blockParcelSearch, maturity).Result) { - return new KeyValuePair(false, "No client object"); + Logger.Log("Falling back to LLUDP SetRegionInfo", Helpers.LogLevel.Info); + SetRegionInfoUdp(blockTerraform, blockFly, allowDamage, allowLandResell, restrictPushing, + allowParcelJoinDivide, agentLimit, objectBonus, maturity); } - else if (Client.Network == null) + } + + public async Task SetRegionInfoHttp(bool blockTerraform, bool blockFly, bool blockFlyOver, bool allowDamage, + bool allowLandResell, bool restrictPushing, bool allowParcelJoinDivide, float agentLimit, float objectBonus, + bool blockParcelSearch, RegionMaturity maturity) + { + var uri = Client.Network.CurrentSim?.Caps?.CapabilityURI("DispatchRegionInfo"); + if (uri != null) { - return new KeyValuePair(false, "Not connected to a network"); - } - else if (Client.Network.CurrentSim == null) - { - return new KeyValuePair(false, "Not connected to a sim"); - } - else if (Client.Network.CurrentSim.Caps == null) - { - return new KeyValuePair(false, "No caps endpoint for current sim"); - } - else if (Client.HttpCapsClient == null) - { - return new KeyValuePair(false, "No HttpCapsClient available"); - } - - Uri uri = Client.Network.CurrentSim.Caps.CapabilityURI("DispatchRegionInfo"); - if (uri == null) - { - return new KeyValuePair(false, "Unable to get URI for DispatchRegionInfo"); - } - OSDMap request = new OSDMap(); - request["block_terraform"] = blockTerraform; - request["block_fly"] = blockFly; - request["block_fly_over"] = blockFlyover; - request["allow_damage"] = allowDamage; - request["allow_land_resell"] = allowLandResell; - request["agent_limit"] = agentLimit; - request["prim_bonus"] = primBonus; - request["sim_access"] = (int)maturityLevel; - request["restrict_pushobject"] = blockObjectPush; - request["allow_parcel_changes"] = allowParcelChanges; - request["block_parcel_search"] = blockParcelSearch; - - string requestBody = OSDParser.SerializeLLSDXmlString(request); - try - { - var content = new StringContent(requestBody, Encoding.UTF8, "application/llsd+xml"); - var reply = await Client.HttpCapsClient.PostAsync(uri.ToString(), content); - string responseContent = await reply.Content.ReadAsStringAsync(); - - if (reply.IsSuccessStatusCode) + var req = new OSDMap { - return new KeyValuePair(true, "ok"); + ["block_terraform"] = blockTerraform, + ["block_fly"] = blockFly, + ["block_fly_over"] = blockFlyOver, + ["allow_damage"] = allowDamage, + ["allow_land_resell"] = allowLandResell, + ["agent_limit"] = agentLimit, + ["prim_bonus"] = objectBonus, + ["sim_access"] = maturity.ToString("D"), + ["restrict_pushobject"] = restrictPushing, + ["allow_parcel_changes"] = allowParcelJoinDivide, + ["block_parcel_search"] = blockParcelSearch + }; + using (var content = new StringContent(OSDParser.SerializeLLSDXmlString(req), Encoding.UTF8, + "application/llsd+xml")) + { + using (var reply = await Client.HttpCapsClient.PostAsync(uri, content)) + { + if (reply.IsSuccessStatusCode) + { + return true; + } + + Logger.Log($"Failed to set region info via capability: {reply.ReasonPhrase}", Helpers.LogLevel.Warning); + } } - return new KeyValuePair(false, $"HTTP {reply.StatusCode}: {responseContent}"); - } - catch (Exception e) - { - return new KeyValuePair(false, e.Message); } + return false; } - + /// Estate panel "Region" tab settings - /// @deprecated Use the version with RegionMaturity support - public void SetRegionInfo(bool blockTerraform, bool blockFly, bool allowDamage, bool allowLandResell, bool restrictPushing, bool allowParcelJoinDivide, float agentLimit, float objectBonus, bool mature) - { - RegionMaturity rating = mature ? RegionMaturity.Mature : RegionMaturity.PG; - SetRegionInfo(blockTerraform, blockFly, allowDamage, allowLandResell, restrictPushing, allowParcelJoinDivide, agentLimit, objectBonus, rating); - } - - /// Estate panel "Region" tab settings - public void SetRegionInfo(bool blockTerraform, bool blockFly, bool allowDamage, bool allowLandResell, bool restrictPushing, bool allowParcelJoinDivide, float agentLimit, float objectBonus, RegionMaturity maturity) + public void SetRegionInfoUdp(bool blockTerraform, bool blockFly, bool allowDamage, bool allowLandResell, + bool restrictPushing, bool allowParcelJoinDivide, float agentLimit, float objectBonus, RegionMaturity maturity) { List listParams = new List(); @@ -652,7 +743,7 @@ namespace OpenMetaverse listParams.Add(allowLandResell ? "Y" : "N"); listParams.Add(agentLimit.ToString(CultureInfo.InvariantCulture)); listParams.Add(objectBonus.ToString(CultureInfo.InvariantCulture)); - listParams.Add(maturity.ToString()); + listParams.Add(maturity.ToString("D")); listParams.Add(restrictPushing ? "Y" : "N"); listParams.Add(allowParcelJoinDivide ? "Y" : "N"); EstateOwnerMessage("setregioninfo", listParams); @@ -699,12 +790,51 @@ namespace OpenMetaverse /// Requests the estate covenant public void RequestCovenant() { - EstateCovenantRequestPacket req = new EstateCovenantRequestPacket(); - req.AgentData.AgentID = Client.Self.AgentID; - req.AgentData.SessionID = Client.Self.SessionID; + EstateCovenantRequestPacket req = new EstateCovenantRequestPacket + { + AgentData = + { + AgentID = Client.Self.AgentID, + SessionID = Client.Self.SessionID + } + }; Client.Network.SendPacket(req); } + /// + /// Requests Estate Covenant notecard from asset service + /// + /// Asset UUID for estate covenant notecard + /// Asset Received callback + /// + public void RequestCovenantNotecard(UUID covenantId, AssetManager.AssetReceivedCallback callback) + { + RequestCovenantNotecard(covenantId, Client.Network.CurrentSim, callback); + } + + /// + /// Requests Estate Covenant notecard from asset service + /// + /// Asset UUID for estate covenant notecard + /// Requested simulator + /// Asset Received callback + /// + public void RequestCovenantNotecard(UUID covenantId, Simulator simulator, AssetManager.AssetReceivedCallback callback) + { + var transfer = new AssetDownload + { + ID = UUID.Random(), + AssetID = covenantId, + AssetType = AssetType.Notecard, + Priority = 101.0f, + Channel = ChannelType.Asset, + Source = SourceType.SimEstate, + Simulator = simulator, + Callback = callback + }; + Client.Assets.RequestEstateAsset(transfer, EstateAssetType.Covenant); + } + /// /// Upload a terrain RAW file /// @@ -713,11 +843,13 @@ namespace OpenMetaverse /// The Id of the transfer request public UUID UploadTerrain(byte[] fileData, string fileName) { - AssetUpload upload = new AssetUpload(); - upload.AssetData = fileData; - upload.AssetType = AssetType.Unknown; - upload.Size = fileData.Length; - upload.ID = UUID.Random(); + AssetUpload upload = new AssetUpload + { + AssetData = fileData, + AssetType = AssetType.Unknown, + Size = fileData.Length, + ID = UUID.Random() + }; // Tell the library we have a pending file to upload Client.Assets.SetPendingAssetUploadData(upload); @@ -987,13 +1119,15 @@ namespace OpenMetaverse foreach (LandStatReplyPacket.ReportDataBlock rep in p.ReportData) { - EstateTask task = new EstateTask(); - task.Position = new Vector3(rep.LocationX, rep.LocationY, rep.LocationZ); - task.Score = rep.Score; - task.TaskID = rep.TaskID; - task.TaskLocalID = rep.TaskLocalID; - task.TaskName = Utils.BytesToString(rep.TaskName); - task.OwnerName = Utils.BytesToString(rep.OwnerName); + EstateTask task = new EstateTask + { + Position = new Vector3(rep.LocationX, rep.LocationY, rep.LocationZ), + Score = rep.Score, + TaskID = rep.TaskID, + TaskLocalID = rep.TaskLocalID, + TaskName = Utils.BytesToString(rep.TaskName), + OwnerName = Utils.BytesToString(rep.OwnerName) + }; Tasks.Add(task.TaskID, task); } @@ -1030,14 +1164,16 @@ namespace OpenMetaverse foreach (LandStatReplyMessage.ReportDataBlock rep in m.ReportDataBlocks) { - EstateTask task = new EstateTask(); - task.Position = rep.Location; - task.Score = rep.Score; - task.MonoScore = rep.MonoScore; - task.TaskID = rep.TaskID; - task.TaskLocalID = rep.TaskLocalID; - task.TaskName = rep.TaskName; - task.OwnerName = rep.OwnerName; + EstateTask task = new EstateTask + { + Position = rep.Location, + Score = rep.Score, + MonoScore = rep.MonoScore, + TaskID = rep.TaskID, + TaskLocalID = rep.TaskLocalID, + TaskName = rep.TaskName, + OwnerName = rep.OwnerName + }; Tasks.Add(task.TaskID, task); } diff --git a/LibreMetaverse/GridManager.cs b/LibreMetaverse/GridManager.cs index 50aaceb..9b2eb77 100644 --- a/LibreMetaverse/GridManager.cs +++ b/LibreMetaverse/GridManager.cs @@ -1,6 +1,6 @@ /* * Copyright (c) 2006-2016, openmetaverse.co - * Copyright (c) 2022, Sjofn, LLC. + * Copyright (c) 2022-2025, Sjofn, LLC. * All rights reserved. * * - Redistribution and use in source and binary forms, with or without @@ -27,7 +27,6 @@ using System; using System.Collections.Generic; -using System.Collections.Immutable; using System.Linq; using System.Threading; using OpenMetaverse.StructuredData; @@ -160,16 +159,15 @@ namespace OpenMetaverse public uint GlobalY; /// Get the Local X position of the item - public uint LocalX { get { return GlobalX % Simulator.DefaultRegionSizeX; } } + public uint LocalX => GlobalX % Simulator.DefaultRegionSizeX; + /// Get the Local Y position of the item - public uint LocalY { get { return GlobalY % Simulator.DefaultRegionSizeY; } } + public uint LocalY => GlobalY % Simulator.DefaultRegionSizeY; /// Get the Handle of the region - public ulong RegionHandle - { - get { return Utils.UIntsToLong((uint)(GlobalX - (GlobalX % Simulator.DefaultRegionSizeX)), - (uint)(GlobalY - (GlobalY % Simulator.DefaultRegionSizeY))); } - } + public ulong RegionHandle => + Utils.UIntsToLong((uint)(GlobalX - (GlobalX % Simulator.DefaultRegionSizeX)), + (uint)(GlobalY - (GlobalY % Simulator.DefaultRegionSizeY))); } /// @@ -578,7 +576,7 @@ namespace OpenMetaverse } /// - /// Retrieves information using the region name + /// Retrieves information using the region handle /// /// This function will block until it can find the region or gives up /// Region Handle of requested @@ -595,10 +593,7 @@ namespace OpenMetaverse return true; } - uint globalX, - globalY; - - Utils.LongToUInts(handle, out globalX, out globalY); + Utils.LongToUInts(handle, out var globalX, out var globalY); const uint regionWidthUnits = 256; ushort gridX = (ushort)(globalX / regionWidthUnits); ushort gridY = (ushort)(globalY / regionWidthUnits); @@ -663,7 +658,7 @@ namespace OpenMetaverse void Callback(object sender, GridRegionEventArgs e) { - if (e.Region.Name.ToLowerInvariant() == name.ToLowerInvariant()) + if (string.Equals(e.Region.Name, name, StringComparison.InvariantCultureIgnoreCase)) { regionEvent.Set(); } diff --git a/LibreMetaverse/GroupManager.cs b/LibreMetaverse/GroupManager.cs index 7bff582..41f56a4 100644 --- a/LibreMetaverse/GroupManager.cs +++ b/LibreMetaverse/GroupManager.cs @@ -1,5 +1,6 @@ /* * Copyright (c) 2006-2016, openmetaverse.co + * Copyright (c) 2025, Sjofn, LLC * All rights reserved. * * - Redistribution and use in source and binary forms, with or without @@ -33,7 +34,6 @@ using OpenMetaverse.Packets; using OpenMetaverse.StructuredData; using OpenMetaverse.Messages.Linden; using OpenMetaverse.Interfaces; -using OpenMetaverse.Http; namespace OpenMetaverse { @@ -253,13 +253,13 @@ namespace OpenMetaverse if (OwnerID == UUID.Zero || AttachmentID == UUID.Zero) return Utils.EmptyBytes; - OpenMetaverse.StructuredData.OSDMap att = new OpenMetaverse.StructuredData.OSDMap + OSDMap att = new OSDMap { - {"item_id", OpenMetaverse.StructuredData.OSD.FromUUID(AttachmentID)}, - {"owner_id", OpenMetaverse.StructuredData.OSD.FromUUID(OwnerID)} + {"item_id", OSD.FromUUID(AttachmentID)}, + {"owner_id", OSD.FromUUID(OwnerID)} }; - return OpenMetaverse.StructuredData.OSDParser.SerializeLLSDXmlBytes(att); + return OSDParser.SerializeLLSDXmlBytes(att); /* //I guess this is how this works, no gaurentees @@ -845,7 +845,7 @@ namespace OpenMetaverse /// Thread sync lock object private readonly object m_BannedAgentsLock = new object(); - /// Raised when another agent invites our avatar to join a group + /// Raised when a group ban is processed public event EventHandler BannedAgents { add { lock (m_BannedAgentsLock) { m_BannedAgents += value; } } @@ -854,21 +854,20 @@ namespace OpenMetaverse #endregion Delegates - /// A reference to the current instance - private GridClient Client; + private readonly GridClient Client; /// Currently-active group members requests - private List GroupMembersRequests; + private readonly List GroupMembersRequests; /// Currently-active group roles requests - private List GroupRolesRequests; + private readonly List GroupRolesRequests; /// Currently-active group role-member requests - private List GroupRolesMembersRequests; + private readonly List GroupRolesMembersRequests; /// Dictionary keeping group members while request is in progress - private LockingDictionary> TempGroupMembers; - /// Dictionary keeping mebmer/role mapping while request is in progress - private LockingDictionary>> TempGroupRolesMembers; + private readonly LockingDictionary> TempGroupMembers; + /// Dictionary keeping member/role mapping while request is in progress + private readonly LockingDictionary>> TempGroupRolesMembers; /// Dictionary keeping GroupRole information while request is in progress - private LockingDictionary> TempGroupRoles; + private readonly LockingDictionary> TempGroupRoles; /// Caches group name lookups public LockingDictionary GroupName2KeyCache; @@ -890,7 +889,7 @@ namespace OpenMetaverse Client.Self.IM += Self_IM; - Client.Network.RegisterEventCallback("AgentGroupDataUpdate", new Caps.EventQueueCallback(AgentGroupDataUpdateMessageHandler)); + Client.Network.RegisterEventCallback("AgentGroupDataUpdate", AgentGroupDataUpdateMessageHandler); // deprecated in simulator v1.27 Client.Network.RegisterCallback(PacketType.AgentDropGroup, AgentDropGroupHandler); Client.Network.RegisterCallback(PacketType.GroupTitlesReply, GroupTitlesReplyHandler); @@ -908,10 +907,10 @@ namespace OpenMetaverse Client.Network.RegisterCallback(PacketType.EjectGroupMemberReply, EjectGroupMemberReplyHandler); Client.Network.RegisterCallback(PacketType.GroupNoticesListReply, GroupNoticesListReplyHandler); - Client.Network.RegisterEventCallback("AgentDropGroup", new Caps.EventQueueCallback(AgentDropGroupMessageHandler)); + Client.Network.RegisterEventCallback("AgentDropGroup", AgentDropGroupMessageHandler); } - void Self_IM(object sender, InstantMessageEventArgs e) + private void Self_IM(object sender, InstantMessageEventArgs e) { if (m_GroupInvitation == null || e.IM.Dialog != InstantMessageDialog.GroupInvitation) return; @@ -930,7 +929,6 @@ namespace OpenMetaverse } } - #region Public Methods /// @@ -1044,9 +1042,10 @@ namespace OpenMetaverse public UUID RequestGroupMembers(UUID group) { UUID requestID = UUID.Random(); - Uri cap = null; + Uri cap = Client.Network.CurrentSim?.Caps?.CapabilityURI("GroupMemberData"); - if ((cap = Client.Network.CurrentSim?.Caps?.CapabilityURI("GroupMemberData")) != null) + // Request from Capability + if (cap != null) { OSDMap payload = new OSDMap(1) { ["group_id"] = @group }; Task req = Client.HttpCapsClient.PostRequestAsync(cap, OSDFormat.Xml, payload, CancellationToken.None, @@ -1058,7 +1057,7 @@ namespace OpenMetaverse GroupMembersHandlerCaps(requestID, result); }); } - else + else // fallback to LLUDP { lock (GroupMembersRequests) GroupMembersRequests.Add(requestID); @@ -1190,9 +1189,9 @@ namespace OpenMetaverse /// Invites a user to a group /// The group to invite to - /// A list of roles to invite a person to - /// Key of person to invite - public void Invite(UUID group, List roles, UUID personkey) + /// A list of roles to invite an agent to + /// Key of agent to invite + public void Invite(UUID group, List roles, UUID requestedAgent) { InviteGroupRequestPacket igp = new InviteGroupRequestPacket { @@ -1208,7 +1207,7 @@ namespace OpenMetaverse { igp.InviteData[i] = new InviteGroupRequestPacket.InviteDataBlock { - InviteeID = personkey, + InviteeID = requestedAgent, RoleID = roles[i] }; } @@ -1276,7 +1275,7 @@ namespace OpenMetaverse } /// - /// Save wheather agent wants to accept group notices and list this group in their profile + /// Set agent's group preferences /// /// Group /// Accept notices from this group @@ -1307,11 +1306,18 @@ namespace OpenMetaverse /// group ID (UUID) to join. public void RequestJoinGroup(UUID id) { - JoinGroupRequestPacket join = new JoinGroupRequestPacket(); - join.AgentData.AgentID = Client.Self.AgentID; - join.AgentData.SessionID = Client.Self.SessionID; - - join.GroupData.GroupID = id; + JoinGroupRequestPacket join = new JoinGroupRequestPacket + { + AgentData = + { + AgentID = Client.Self.AgentID, + SessionID = Client.Self.SessionID + }, + GroupData = + { + GroupID = id + } + }; Client.Network.SendPacket(join); } @@ -1324,7 +1330,7 @@ namespace OpenMetaverse /// Group struct containing the new group info public void RequestCreateGroup(Group group) { - OpenMetaverse.Packets.CreateGroupRequestPacket cgrp = new CreateGroupRequestPacket + CreateGroupRequestPacket cgrp = new CreateGroupRequestPacket { AgentData = new CreateGroupRequestPacket.AgentDataBlock { @@ -1352,25 +1358,25 @@ namespace OpenMetaverse /// Group struct to update. public void UpdateGroup(UUID id, Group group) { - OpenMetaverse.Packets.UpdateGroupInfoPacket cgrp = new UpdateGroupInfoPacket + UpdateGroupInfoPacket cgrp = new UpdateGroupInfoPacket { AgentData = new UpdateGroupInfoPacket.AgentDataBlock { AgentID = Client.Self.AgentID, SessionID = Client.Self.SessionID + }, + GroupData = new UpdateGroupInfoPacket.GroupDataBlock + { + GroupID = id, + AllowPublish = group.AllowPublish, + Charter = Utils.StringToBytes(group.Charter), + InsigniaID = group.InsigniaID, + MaturePublish = group.MaturePublish, + MembershipFee = group.MembershipFee, + OpenEnrollment = group.OpenEnrollment, + ShowInList = group.ShowInList } }; - cgrp.GroupData = new UpdateGroupInfoPacket.GroupDataBlock - { - GroupID = id, - AllowPublish = @group.AllowPublish, - Charter = Utils.StringToBytes(@group.Charter), - InsigniaID = @group.InsigniaID, - MaturePublish = @group.MaturePublish, - MembershipFee = @group.MembershipFee, - OpenEnrollment = @group.OpenEnrollment, - ShowInList = @group.ShowInList - }; Client.Network.SendPacket(cgrp); } @@ -1380,16 +1386,16 @@ namespace OpenMetaverse /// Avatar's key to eject public void EjectUser(UUID group, UUID member) { - OpenMetaverse.Packets.EjectGroupMemberRequestPacket eject = new EjectGroupMemberRequestPacket + EjectGroupMemberRequestPacket eject = new EjectGroupMemberRequestPacket { AgentData = new EjectGroupMemberRequestPacket.AgentDataBlock { AgentID = Client.Self.AgentID, SessionID = Client.Self.SessionID - } + }, + GroupData = new EjectGroupMemberRequestPacket.GroupDataBlock {GroupID = group}, + EjectData = new EjectGroupMemberRequestPacket.EjectDataBlock[1] }; - eject.GroupData = new EjectGroupMemberRequestPacket.GroupDataBlock {GroupID = @group}; - eject.EjectData = new EjectGroupMemberRequestPacket.EjectDataBlock[1]; eject.EjectData[0] = new EjectGroupMemberRequestPacket.EjectDataBlock {EjecteeID = member}; Client.Network.SendPacket(eject); @@ -1399,7 +1405,7 @@ namespace OpenMetaverse /// Modified role to be updated public void UpdateRole(GroupRole role) { - OpenMetaverse.Packets.GroupRoleUpdatePacket gru = + GroupRoleUpdatePacket gru = new GroupRoleUpdatePacket { AgentData = @@ -1427,7 +1433,7 @@ namespace OpenMetaverse /// Role to create public void CreateRole(UUID group, GroupRole role) { - OpenMetaverse.Packets.GroupRoleUpdatePacket gru = + GroupRoleUpdatePacket gru = new GroupRoleUpdatePacket { AgentData = @@ -1455,7 +1461,7 @@ namespace OpenMetaverse /// Role to delete public void DeleteRole(UUID group, UUID roleID) { - OpenMetaverse.Packets.GroupRoleUpdatePacket gru = + GroupRoleUpdatePacket gru = new GroupRoleUpdatePacket { AgentData = @@ -1484,7 +1490,7 @@ namespace OpenMetaverse /// Avatar's Key to remove public void RemoveFromRole(UUID group, UUID role, UUID member) { - OpenMetaverse.Packets.GroupRoleChangesPacket grc = + GroupRoleChangesPacket grc = new GroupRoleChangesPacket { AgentData = @@ -1511,7 +1517,7 @@ namespace OpenMetaverse /// Avatar's ID to assign to role public void AddToRole(UUID group, UUID role, UUID member) { - OpenMetaverse.Packets.GroupRoleChangesPacket grc = + GroupRoleChangesPacket grc = new GroupRoleChangesPacket { AgentData = @@ -1536,7 +1542,7 @@ namespace OpenMetaverse /// Group ID to fetch notices for public void RequestGroupNoticesList(UUID group) { - OpenMetaverse.Packets.GroupNoticesListRequestPacket gnl = + GroupNoticesListRequestPacket gnl = new GroupNoticesListRequestPacket { AgentData = @@ -1553,7 +1559,7 @@ namespace OpenMetaverse /// ID of group notice public void RequestGroupNotice(UUID noticeID) { - OpenMetaverse.Packets.GroupNoticeRequestPacket gnr = + GroupNoticeRequestPacket gnr = new GroupNoticeRequestPacket { AgentData = @@ -1618,43 +1624,21 @@ namespace OpenMetaverse Client.Network.SendPacket(p); } - /// - /// Gets the URI of the cpability for handling group bans - /// - /// Group ID - /// null, if the feature is not supported, or URI of the capability - public Uri GetGroupAPIUri(UUID groupID) - { - Uri ret = null; - - if (Client.Network.Connected) - { - ret = Client.Network.CurrentSim?.Caps?.CapabilityURI("GroupAPIv1"); - if (ret != null) - { - ret = new Uri($"{ret}?group_id={groupID.ToString()}"); - } - } - - return ret; - } - /// /// Request a list of residents banned from joining a group /// /// UUID of the group /// Callback on request completion - public async Task RequestBannedAgents(UUID groupID, EventHandler callback = null) + /// + public async Task RequestBannedAgents(UUID groupID, EventHandler callback = null, + CancellationToken cancellationToken = default) { - Uri uri = GetGroupAPIUri(groupID); - if (uri == null) { return; } - - Uri cap = Client.Network.CurrentSim.Caps.CapabilityURI("GroupReqBanned"); - await Client.HttpCapsClient.GetRequestAsync(cap, CancellationToken.None, (response, data, error) => + var uri = new UriBuilder(Client.Network.CurrentSim.Caps.CapabilityURI("GroupAPIv1")) + {Query = $"group_id={groupID}"}.Uri; + await Client.HttpCapsClient.GetRequestAsync(uri, cancellationToken, (response, data, error) => { try { - if (error != null) { throw error; } OSD result = OSDParser.Deserialize(data); @@ -1677,7 +1661,7 @@ namespace OpenMetaverse } catch (Exception ex) { - Logger.Log("Failed to get a list of banned group members: " + ex.Message, Helpers.LogLevel.Warning, Client); + Logger.Log($"Failed to fetch group ban list for {groupID}: {ex.Message}", Helpers.LogLevel.Warning, Client); var ret = new BannedAgentsEventArgs(groupID, false, null); OnBannedAgents(ret); if (callback != null) @@ -1689,17 +1673,6 @@ namespace OpenMetaverse }); } - /// - /// Request that group of agents be banned or unbanned from the group - /// - /// Group ID - /// Ban/Unban action - /// Array of agents UUIDs to ban - public void RequestBanAction(UUID groupID, GroupBanAction action, UUID[] agents) - { - RequestBanAction(groupID, action, agents, null); - } - /// /// Request that group of agents be banned or unbanned from the group /// @@ -1707,26 +1680,28 @@ namespace OpenMetaverse /// Ban/Unban action /// Array of agents UUIDs to ban /// Callback - public void RequestBanAction(UUID groupID, GroupBanAction action, UUID[] agents, EventHandler callback) + /// + public async Task RequestBanAction(UUID groupID, GroupBanAction action, UUID[] agents, EventHandler callback = null, + CancellationToken cancellationToken = default) { - Uri baseCap = GetGroupAPIUri(groupID); - if (baseCap == null) - { - Logger.Log("Unable to get Cap url for GroupAPIv1", Helpers.LogLevel.Warning, Client); - } + var uri = new UriBuilder(Client.Network.CurrentSim.Caps.CapabilityURI("GroupAPIv1")) {Query = $"group_id={groupID}"}.Uri; + OSDMap payload = new OSDMap { ["ban_action"] = (int)action }; OSDArray banIDs = new OSDArray(agents.Length); - for (int i = 0; i < agents.Length; i++) + foreach (var agent in agents) { - UUID agent = agents[i]; banIDs.Add(agent); } payload["ban_ids"] = banIDs; - Task req = Client.HttpCapsClient.PostRequestAsync(baseCap, OSDFormat.Xml, payload, CancellationToken.None, + await Client.HttpCapsClient.PostRequestAsync(uri, OSDFormat.Xml, payload, cancellationToken, (response, data, error) => { - if (error != null) { return; } + if (error != null) + { + Logger.Log($"Failed to ban members from {groupID}: {error.Message}", Helpers.LogLevel.Warning, Client); + return; + } if (callback != null) { try { callback(this, EventArgs.Empty); } @@ -1746,14 +1721,16 @@ namespace OpenMetaverse Dictionary currentGroups = new Dictionary(); for (int i = 0; i < msg.GroupDataBlock.Length; i++) { - Group group = new Group(); - group.ID = msg.GroupDataBlock[i].GroupID; - group.InsigniaID = msg.GroupDataBlock[i].GroupInsigniaID; - group.Name = msg.GroupDataBlock[i].GroupName; - group.Contribution = msg.GroupDataBlock[i].Contribution; - group.AcceptNotices = msg.GroupDataBlock[i].AcceptNotices; - group.Powers = msg.GroupDataBlock[i].GroupPowers; - group.ListInProfile = msg.NewGroupDataBlock[i].ListInProfile; + Group group = new Group + { + ID = msg.GroupDataBlock[i].GroupID, + InsigniaID = msg.GroupDataBlock[i].GroupInsigniaID, + Name = msg.GroupDataBlock[i].GroupName, + Contribution = msg.GroupDataBlock[i].Contribution, + AcceptNotices = msg.GroupDataBlock[i].AcceptNotices, + Powers = msg.GroupDataBlock[i].GroupPowers, + ListInProfile = msg.NewGroupDataBlock[i].ListInProfile + }; currentGroups.Add(group.ID, group); @@ -1803,24 +1780,25 @@ namespace OpenMetaverse { Packet packet = e.Packet; GroupProfileReplyPacket profile = (GroupProfileReplyPacket)packet; - Group group = new Group(); - - group.ID = profile.GroupData.GroupID; - group.AllowPublish = profile.GroupData.AllowPublish; - group.Charter = Utils.BytesToString(profile.GroupData.Charter); - group.FounderID = profile.GroupData.FounderID; - group.GroupMembershipCount = profile.GroupData.GroupMembershipCount; - group.GroupRolesCount = profile.GroupData.GroupRolesCount; - group.InsigniaID = profile.GroupData.InsigniaID; - group.MaturePublish = profile.GroupData.MaturePublish; - group.MembershipFee = profile.GroupData.MembershipFee; - group.MemberTitle = Utils.BytesToString(profile.GroupData.MemberTitle); - group.Money = profile.GroupData.Money; - group.Name = Utils.BytesToString(profile.GroupData.Name); - group.OpenEnrollment = profile.GroupData.OpenEnrollment; - group.OwnerRole = profile.GroupData.OwnerRole; - group.Powers = (GroupPowers)profile.GroupData.PowersMask; - group.ShowInList = profile.GroupData.ShowInList; + Group group = new Group + { + ID = profile.GroupData.GroupID, + AllowPublish = profile.GroupData.AllowPublish, + Charter = Utils.BytesToString(profile.GroupData.Charter), + FounderID = profile.GroupData.FounderID, + GroupMembershipCount = profile.GroupData.GroupMembershipCount, + GroupRolesCount = profile.GroupData.GroupRolesCount, + InsigniaID = profile.GroupData.InsigniaID, + MaturePublish = profile.GroupData.MaturePublish, + MembershipFee = profile.GroupData.MembershipFee, + MemberTitle = Utils.BytesToString(profile.GroupData.MemberTitle), + Money = profile.GroupData.Money, + Name = Utils.BytesToString(profile.GroupData.Name), + OpenEnrollment = profile.GroupData.OpenEnrollment, + OwnerRole = profile.GroupData.OwnerRole, + Powers = (GroupPowers)profile.GroupData.PowersMask, + ShowInList = profile.GroupData.ShowInList + }; OnGroupProfile(new GroupProfileEventArgs(group)); } @@ -1836,23 +1814,16 @@ namespace OpenMetaverse Packet packet = e.Packet; GroupNoticesListReplyPacket reply = (GroupNoticesListReplyPacket)packet; - List notices = new List(); - - foreach (GroupNoticesListReplyPacket.DataBlock entry in reply.Data) - { - GroupNoticesListEntry notice = - new GroupNoticesListEntry - { - FromName = Utils.BytesToString(entry.FromName), - Subject = Utils.BytesToString(entry.Subject), - NoticeID = entry.NoticeID, - Timestamp = entry.Timestamp, - HasAttachment = entry.HasAttachment, - AssetType = (AssetType) entry.AssetType - }; - - notices.Add(notice); - } + List notices = reply.Data.Select(entry => new GroupNoticesListEntry + { + FromName = Utils.BytesToString(entry.FromName), + Subject = Utils.BytesToString(entry.Subject), + NoticeID = entry.NoticeID, + Timestamp = entry.Timestamp, + HasAttachment = entry.HasAttachment, + AssetType = (AssetType)entry.AssetType + }) + .ToList(); OnGroupNoticesListReply(new GroupNoticesListReplyEventArgs(reply.AgentData.GroupID, notices)); } @@ -2085,9 +2056,10 @@ namespace OpenMetaverse /// The EventArgs object containing the packet data protected void GroupActiveProposalItemHandler(object sender, PacketReceivedEventArgs e) { - //GroupActiveProposalItemReplyPacket proposal = (GroupActiveProposalItemReplyPacket)packet; + GroupActiveProposalItemReplyPacket proposal = (GroupActiveProposalItemReplyPacket)e.Packet; - // TODO: Create a proposal struct to represent the fields in a proposal item + // NOTE: Second Life server removed this many years back. + Logger.Log($"Received GroupActiveProposalItemReplyPacket: {proposal}", Helpers.LogLevel.Info); } /// Process an incoming packet and raise the appropriate events @@ -2095,9 +2067,10 @@ namespace OpenMetaverse /// The EventArgs object containing the packet data protected void GroupVoteHistoryItemHandler(object sender, PacketReceivedEventArgs e) { - //GroupVoteHistoryItemReplyPacket history = (GroupVoteHistoryItemReplyPacket)packet; + GroupVoteHistoryItemReplyPacket history = (GroupVoteHistoryItemReplyPacket)e.Packet; - // TODO: This was broken in the official viewer when I was last trying to work on it + // NOTE: Second Life server removed this many years back. + Logger.Log($"Received GroupVoteHistoryItemReplyPacket: {history}", Helpers.LogLevel.Info); } /// Process an incoming packet and raise the appropriate events @@ -2235,7 +2208,7 @@ namespace OpenMetaverse /// The current groups your agent is a member of public CurrentGroupsEventArgs(Dictionary groups) { - this.Groups = groups; + Groups = groups; } } @@ -2249,7 +2222,7 @@ namespace OpenMetaverse /// The Group names dictionary public GroupNamesEventArgs(Dictionary groupNames) { - this.GroupNames = groupNames; + GroupNames = groupNames; } } @@ -2274,9 +2247,9 @@ namespace OpenMetaverse /// The membership list of the group public GroupMembersReplyEventArgs(UUID requestID, UUID groupID, Dictionary members) { - this.RequestID = requestID; - this.GroupID = groupID; - this.Members = members; + RequestID = requestID; + GroupID = groupID; + Members = members; } } @@ -2300,9 +2273,9 @@ namespace OpenMetaverse /// The dictionary containing the roles public GroupRolesDataReplyEventArgs(UUID requestID, UUID groupID, Dictionary roles) { - this.RequestID = requestID; - this.GroupID = groupID; - this.Roles = roles; + RequestID = requestID; + GroupID = groupID; + Roles = roles; } } @@ -2326,9 +2299,9 @@ namespace OpenMetaverse /// The member to roles map public GroupRolesMembersReplyEventArgs(UUID requestID, UUID groupID, List> rolesMembers) { - this.RequestID = requestID; - this.GroupID = groupID; - this.RolesMembers = rolesMembers; + RequestID = requestID; + GroupID = groupID; + RolesMembers = rolesMembers; } } @@ -2352,9 +2325,9 @@ namespace OpenMetaverse /// The titles public GroupTitlesReplyEventArgs(UUID requestID, UUID groupID, Dictionary titles) { - this.RequestID = requestID; - this.GroupID = groupID; - this.Titles = titles; + RequestID = requestID; + GroupID = groupID; + Titles = titles; } } @@ -2372,8 +2345,8 @@ namespace OpenMetaverse /// The summary data public GroupAccountSummaryReplyEventArgs(UUID groupID, GroupAccountSummary summary) { - this.GroupID = groupID; - this.Summary = summary; + GroupID = groupID; + Summary = summary; } } @@ -2391,13 +2364,13 @@ namespace OpenMetaverse /// Construct a new instance of the GroupCreatedReplyEventArgs class /// The ID of the group - /// the success or faulure of the request - /// A string containing additional information - public GroupCreatedReplyEventArgs(UUID groupID, bool success, string messsage) + /// the success or failure of the request + /// A string containing additional information + public GroupCreatedReplyEventArgs(UUID groupID, bool success, string message) { - this.GroupID = groupID; - this.Success = success; - this.Message = messsage; + GroupID = groupID; + Success = success; + Message = message; } } @@ -2415,8 +2388,8 @@ namespace OpenMetaverse /// true of the request was successful public GroupOperationEventArgs(UUID groupID, bool success) { - this.GroupID = groupID; - this.Success = success; + GroupID = groupID; + Success = success; } } @@ -2463,7 +2436,7 @@ namespace OpenMetaverse /// The group profile public GroupProfileEventArgs(Group group) { - this.Group = group; + Group = group; } } @@ -2492,10 +2465,10 @@ namespace OpenMetaverse public GroupInvitationEventArgs(Simulator simulator, UUID agentID, string agentName, string message) { - this.Simulator = simulator; - this.AgentID = agentID; - this.FromName = agentName; - this.Message = message; + Simulator = simulator; + AgentID = agentID; + FromName = agentName; + Message = message; } } @@ -2515,9 +2488,9 @@ namespace OpenMetaverse public BannedAgentsEventArgs(UUID groupID, bool success, Dictionary bannedAgents) { - this.GroupID = groupID; - this.Success = success; - this.BannedAgents = bannedAgents; + GroupID = groupID; + Success = success; + BannedAgents = bannedAgents; } } diff --git a/LibreMetaverse/Imaging/BakeLayer.cs b/LibreMetaverse/Imaging/BakeLayer.cs index ca621cf..e2a5a0f 100644 --- a/LibreMetaverse/Imaging/BakeLayer.cs +++ b/LibreMetaverse/Imaging/BakeLayer.cs @@ -1,6 +1,6 @@ /* * Copyright (c) 2007-2008, openmetaverse.co - * Copyright (c) 2024, Sjofn LLC. + * Copyright (c) 2024-2025, Sjofn LLC. * All rights reserved. * * - Redistribution and use in source and binary forms, with or without @@ -360,7 +360,7 @@ namespace OpenMetaverse.Imaging SKBitmap bitmap = null; lock (ResourceSync) { - using (Stream stream = Helpers.GetResourceStream(fileName, Settings.RESOURCE_DIR)) + using (Stream stream = Helpers.GetResourceStream(fileName, Path.Combine(Settings.RESOURCE_DIR, "static_assets"))) { if (stream != null) { diff --git a/LibreMetaverse/Imaging/Targa.cs b/LibreMetaverse/Imaging/Targa.cs index 691492a..21b34df 100644 --- a/LibreMetaverse/Imaging/Targa.cs +++ b/LibreMetaverse/Imaging/Targa.cs @@ -107,7 +107,7 @@ namespace OpenMetaverse.Imaging var imageType = (byte)(image.ColorType == SKColorType.Gray8 || image.ColorType == SKColorType.Alpha8 ? 0x03 : 0x02); - var imageDescriptor = (byte)(image.AlphaType <= SKAlphaType.Opaque ? 0 : 0x8); + var imageDescriptor = (byte)(image.AlphaType <= SKAlphaType.Opaque ? 0 : 0x8); var tga = new byte[image.Width * image.Height * image.BytesPerPixel + 18]; var di = 0; @@ -147,10 +147,10 @@ namespace OpenMetaverse.Imaging tga[di++] = c.Blue; tga[di++] = c.Green; tga[di++] = c.Red; - - tga[di++] = (byte)(image.AlphaType > SKAlphaType.Opaque ? 0x0 : c.Alpha); + + tga[di++] = (byte)(image.AlphaType > SKAlphaType.Opaque ? c.Alpha : 0x0); } - + } } diff --git a/LibreMetaverse/Inventory/Inventory.cs b/LibreMetaverse/Inventory/Inventory.cs index 5ef97cd..6106744 100644 --- a/LibreMetaverse/Inventory/Inventory.cs +++ b/LibreMetaverse/Inventory/Inventory.cs @@ -3,25 +3,25 @@ * Copyright (c) 2021-2025, Sjofn LLC. * All rights reserved. * - * - Redistribution and use in source and binary forms, with or without + * - Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * - Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. - * - Neither the name of the openmetaverse.co nor the names + * - Neither the name of the openmetaverse.co nor the names * of its contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ @@ -76,7 +76,7 @@ namespace OpenMetaverse add { lock (m_InventoryObjectUpdatedLock) { m_InventoryObjectUpdated += value; } } remove { lock (m_InventoryObjectUpdatedLock) { m_InventoryObjectUpdated -= value; } } } - + /// The event subscribers, null if no subscribers private EventHandler m_InventoryObjectRemoved; @@ -99,7 +99,7 @@ namespace OpenMetaverse add { lock (m_InventoryObjectRemovedLock) { m_InventoryObjectRemoved += value; } } remove { lock (m_InventoryObjectRemovedLock) { m_InventoryObjectRemoved -= value; } } } - + /// The event subscribers, null if no subscribers private EventHandler m_InventoryObjectAdded; @@ -132,7 +132,7 @@ namespace OpenMetaverse public InventoryFolder RootFolder { get => RootNode.Data as InventoryFolder; - set + set { UpdateNodeFor(value); RootNode = Items[value.UUID]; @@ -190,6 +190,32 @@ namespace OpenMetaverse Items = new ConcurrentDictionary(); } + /// + /// Returns all links of that link the specific . + /// + /// An inventory items assert UUID. + /// + public List FindAllLinks(UUID assertId) + { + List links = new List(); + lock (RootNode.Nodes.SyncRoot) + { + links = Items.Values.Where(node => IsLinkOf(node, assertId)).ToList(); + } + + return links; + } + + private static bool IsLinkOf(InventoryNode node, UUID assertId) + { + if (node.Data is InventoryItem item && item.AssetType == AssetType.Link) + { + return item.ActualUUID == assertId; + } + + return false; + } + public List GetContents(InventoryFolder folder) { return GetContents(folder.UUID); @@ -216,10 +242,10 @@ namespace OpenMetaverse /// /// Updates the state of the InventoryNode and inventory data structure that /// is responsible for the InventoryObject. If the item was previously not added to inventory, - /// it adds the item, and updates structure accordingly. If it was, it updates the - /// InventoryNode, changing the parent node if does + /// it adds the item, and updates structure accordingly. If it was, it updates the + /// InventoryNode, changing the parent node if does /// not match . - /// + /// /// You can not set the inventory root folder using this method /// /// The InventoryObject to store @@ -449,7 +475,7 @@ namespace OpenMetaverse #region Operators /// - /// By using the bracket operator on this class, the program can get the + /// By using the bracket operator on this class, the program can get the /// InventoryObject designated by the specified uuid. If the value for the corresponding /// UUID is null, the call is equivalent to a call to . /// If the value is non-null, it is equivalent to a call to , @@ -487,10 +513,9 @@ namespace OpenMetaverse } #endregion Operators - } #region EventArgs classes - + public class InventoryObjectUpdatedEventArgs : EventArgs { public InventoryBase OldObject { get; } diff --git a/LibreMetaverse/Inventory/InventoryManager.cs b/LibreMetaverse/Inventory/InventoryManager.cs index e78d2cc..496f0ee 100644 --- a/LibreMetaverse/Inventory/InventoryManager.cs +++ b/LibreMetaverse/Inventory/InventoryManager.cs @@ -443,7 +443,11 @@ namespace OpenMetaverse [NonSerialized] private readonly GridClient Client; [NonSerialized] - public Inventory _Store; + private Inventory _Store; + public Inventory GetStore + { + get { return _Store; } + } private object _CallbacksLock = new object(); private uint _CallbackPos; private readonly Dictionary _ItemCreatedCallbacks = new Dictionary(); @@ -529,7 +533,7 @@ namespace OpenMetaverse InventoryItem item = null; await RequestFetchInventoryHttpAsync(itemId, ownerId, token, list => { - item = list.First(); + item = list.FirstOrDefault(); }); return item; } @@ -1780,6 +1784,7 @@ namespace OpenMetaverse /// Put newly created link in folder with this UUID /// Inventory item or folder /// Method to call upon creation of the link + /// public void CreateLink(UUID folderID, InventoryBase bse, ItemCreatedCallback callback, CancellationToken cancellationToken = default) { if (bse is InventoryFolder folder) @@ -1798,6 +1803,7 @@ namespace OpenMetaverse /// Put newly created link in folder with this UUID /// Original inventory item /// Method to call upon creation of the link + /// public void CreateLink(UUID folderID, InventoryItem item, ItemCreatedCallback callback, CancellationToken cancellationToken = default) { CreateLink(folderID, item.UUID, item.Name, item.Description, item.InventoryType, UUID.Random(), callback, cancellationToken); @@ -1809,6 +1815,7 @@ namespace OpenMetaverse /// Put newly created link in folder with this UUID /// Original inventory folder /// Method to call upon creation of the link + /// public void CreateLink(UUID folderID, InventoryFolder folder, ItemCreatedCallback callback, CancellationToken cancellationToken = default) { CreateLink(folderID, folder.UUID, folder.Name, "", InventoryType.Folder, UUID.Random(), callback, cancellationToken); @@ -1824,6 +1831,7 @@ namespace OpenMetaverse /// Inventory Type /// Transaction UUID /// Method to call upon creation of the link + /// public void CreateLink(UUID folderID, UUID itemID, string name, string description, InventoryType invType, UUID transactionID, ItemCreatedCallback callback, CancellationToken cancellationToken = default) { diff --git a/LibreMetaverse/LibreMetaverse.csproj b/LibreMetaverse/LibreMetaverse.csproj index a6152f4..8c07b66 100644 --- a/LibreMetaverse/LibreMetaverse.csproj +++ b/LibreMetaverse/LibreMetaverse.csproj @@ -26,15 +26,15 @@ True - - + + - + - + @@ -42,6 +42,14 @@ + + + contentFiles\any\any\linden;content\linden + true + Always + Always + + diff --git a/LibreMetaverse/LslSyntax.cs b/LibreMetaverse/LslSyntax.cs new file mode 100644 index 0000000..d9b4f7b --- /dev/null +++ b/LibreMetaverse/LslSyntax.cs @@ -0,0 +1,381 @@ +/* + * Copyright (c) 2025, Sjofn LLC. + * All rights reserved. + * + * - Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * - Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * - Neither the name of the openmetaverse.co nor the names + * of its contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.Collections.Frozen; +using System.Collections.Generic; +using System.IO; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Xml; +using OpenMetaverse; +using OpenMetaverse.StructuredData; +using Logger = OpenMetaverse.Logger; + +namespace LibreMetaverse +{ + public class LslSyntax + { + public enum LslCategory + { + Function, + Control, + Event, + Datatype, + Constant, + Flow, + Unknown = -1, + } + + public struct LslKeyword + { + public LslCategory Category; + public string Keyword; + public string Tooltip; + public bool Deprecated; + public bool GodMode; + } + + private const string KEYWORDS_DEFAULT = "keywords_lsl_default.xml"; + private const string VERSION_KEY = "llsd-lsl-syntax-version"; + private const string SYNTAX_FEATURE_IDENTIFIER = "LSLSyntaxId"; + private const string SYNTAX_CAPABILITY_IDENTIFIER = "LSLSyntax"; + + private static Dictionary _keywords = new Dictionary(); + public static FrozenDictionary Keywords => _keywords.ToFrozenDictionary(); + + private GridClient _client; + private UUID _syntaxId; + + #region EVENTS + + /// The event subscribers, null if no subscribers + private EventHandler _syntaxChanged; + + ///Raises the SyntaxChanged Event + protected void OnSyntaxChanged() + { + EventHandler handler = _syntaxChanged; + handler?.Invoke(this, null); + } + + /// Thread sync lock object + private readonly object _syntaxChangedLock = new object(); + + /// Raised when the syntax tokens are updated + public event EventHandler SyntaxChanged + { + add { lock (_syntaxChangedLock) { _syntaxChanged += value; } } + remove { lock (_syntaxChangedLock) { _syntaxChanged -= value; } } + } + + #endregion EVENTS + + public LslSyntax() + { + var keywordFile = Path.Combine(Settings.RESOURCE_DIR, KEYWORDS_DEFAULT); + try + { + using (FileStream fs = new FileStream(keywordFile, FileMode.Open, FileAccess.Read)) + { + ParseFile(fs); + } + } + catch (FileNotFoundException) + { + Logger.Log($"Failed to find {keywordFile}.", Helpers.LogLevel.Warning); + } + catch (IOException e) + { + Logger.Log($"Failed to read {keywordFile}: {e.Message}", Helpers.LogLevel.Warning); + } + } + + public LslSyntax(GridClient client) + { + Register(client); + } + + public void Register(GridClient client) + { + _client = client; + + var keywordFile = Path.Combine(Settings.RESOURCE_DIR, KEYWORDS_DEFAULT); + if (_client.Network.Connected && _client.Network.CurrentSim.Features != null) + { + var syntaxId = _client.Network.CurrentSim.Features.Get(SYNTAX_FEATURE_IDENTIFIER); + if (syntaxId != null && syntaxId.Type == OSDType.UUID) + { + var file = Path.Combine(_client.Settings.ASSET_CACHE_DIR, $"keywords_lsl_{syntaxId}.xml"); + if (File.Exists(file)) + { + keywordFile = file; + } + else + { + var uri = _client.Network.CurrentSim.Caps.CapabilityURI(SYNTAX_CAPABILITY_IDENTIFIER); + if (uri != null) + { + Task fetch = _client.Network.CurrentSim.Client.HttpCapsClient.GetRequestAsync(uri, + CancellationToken.None, (response, data, error) => + { + if (error != null) + { + Logger.Log($"Failed to retrieve syntax file. Error: {error.Message}", + Helpers.LogLevel.Warning, _client); + return; + } + + if (!response.IsSuccessStatusCode) + { + Logger.Log( + $"Failed to retrieve syntax file. Status: {response.StatusCode} {response.ReasonPhrase}", + Helpers.LogLevel.Warning, _client); + return; + } + + OSD features = OSDParser.Deserialize(data); + if (features.Type != OSDType.Map) + { + Logger.Log("Invalid format for syntax file. Root element is not a map.", + Helpers.LogLevel.Warning); + return; + } + + Parse((OSDMap)features); + _syntaxId = syntaxId; + using (FileStream writer = + new FileStream( + Path.Combine(_client.Settings.ASSET_CACHE_DIR, + $"keywords_lsl_{syntaxId}.xml"), + FileMode.Create, FileAccess.Write)) + { + var bytes = OSDParser.SerializeLLSDXmlBytes(features); + writer.Write(bytes, 0, bytes.Length); + } + }); + fetch.Wait(TimeSpan.FromSeconds(20)); + return; + } + } + } + } + + try + { + using (FileStream fs = new FileStream(keywordFile, FileMode.Open, FileAccess.Read)) + { + ParseFile(fs); + } + } + catch (FileNotFoundException) + { + Logger.Log($"Failed to find {keywordFile}.", Helpers.LogLevel.Warning); + } + catch (IOException e) + { + Logger.Log($"Failed to read {keywordFile}: {e.Message}", Helpers.LogLevel.Warning); + } + + _client.Network.SimChanged += Network_OnSimChanged; + } + + private void Network_OnSimChanged(object sender, SimChangedEventArgs e) + { + _client.Network.CurrentSim.Caps.CapabilitiesReceived += Simulator_OnCapabilitiesReceived; + } + + private void Simulator_OnCapabilitiesReceived(object sender, CapabilitiesReceivedEventArgs e) + { + e.Simulator.Caps.CapabilitiesReceived -= Simulator_OnCapabilitiesReceived; + + var syntaxId = e.Simulator.Features.Get(SYNTAX_FEATURE_IDENTIFIER); + var uri = e.Simulator.Caps.CapabilityURI(SYNTAX_CAPABILITY_IDENTIFIER); + if (uri == null || syntaxId == null || syntaxId.Type != OSDType.UUID) { return; } + if (syntaxId.AsUUID() == _syntaxId) { return; } + + _ = e.Simulator.Client.HttpCapsClient.GetRequestAsync(uri, CancellationToken.None, (response, data, error) => + { + if (error != null) + { + Logger.Log($"Failed to retrieve syntax file. Error: {error.Message}", Helpers.LogLevel.Warning, _client); + return; + } + if (!response.IsSuccessStatusCode) + { + Logger.Log($"Failed to retrieve syntax file. Status: {response.StatusCode} {response.ReasonPhrase}", + Helpers.LogLevel.Warning, _client); + return; + } + OSD features = OSDParser.Deserialize(data); + if (features.Type != OSDType.Map) + { + Logger.Log("Invalid format for syntax file. Root element is not a map.", Helpers.LogLevel.Warning); + return; + } + Parse((OSDMap)features); + _syntaxId = syntaxId; + using (FileStream writer = + new FileStream(Path.Combine(_client.Settings.ASSET_CACHE_DIR, $"keywords_lsl_{syntaxId}.xml"), + FileMode.Create, FileAccess.Write)) + { + var bytes = OSDParser.SerializeLLSDXmlBytes(features); + writer.Write(bytes, 0, bytes.Length); + } + }); + } + + private void ParseFile(Stream stream) + { + using (XmlTextReader reader = new XmlTextReader(stream)) + { + var deserialized = OSDParser.DeserializeLLSDXml(reader); + if (deserialized.Type != OSDType.Map) + { + Logger.Log("Invalid format for syntax file. Root element is not a map.", Helpers.LogLevel.Warning); + return; + } + Parse((OSDMap)deserialized); + } + } + + private void Parse(OSDMap map) + { + if (!map.TryGetValue(VERSION_KEY, out var version)) + { + Logger.Log("Syntax file does not contain a version key. Contents may not parse correctly.", + Helpers.LogLevel.Warning); + } + else if (version.AsInteger() != 2) + { + Logger.Log($"Syntax file version {version.AsInteger()} is incompatible. Contents may not parse correctly.", + Helpers.LogLevel.Warning); + } + + int tokens = 0, added = 0; + var keywords = new Dictionary(); + try + { + var groupEnumerator = map.GetEnumerator(); + while (groupEnumerator.MoveNext()) + { + var group = (string)groupEnumerator.Key; + if (group == VERSION_KEY) { continue; } + + var items = (OSDMap)groupEnumerator.Value; + + var enumerator = items.GetEnumerator(); + while (enumerator.MoveNext()) + { + ++tokens; + StringBuilder tooltip = new StringBuilder(); + LslCategory category = LslCategory.Unknown; + var key = (string)enumerator.Key; + var attr = (OSDMap)enumerator.Value; + + tooltip.AppendLine(attr["tooltip"].AsString()); + + switch (group) + { + case "controls": + category = LslCategory.Control; + break; + case "types": + category = LslCategory.Datatype; + break; + case "constants": + category = LslCategory.Constant; + tooltip.Append($" Type: {attr["type"]}-{attr["value"]}"); + break; + case "events": + category = LslCategory.Event; + tooltip.Append($"{key} ({ParseArguments(attr["arguments"])})"); + break; + case "functions": + category = LslCategory.Function; + tooltip.AppendLine( + $"{attr["return"]} {key} ({ParseArguments(attr["arguments"])})"); + tooltip.Append( + $"Energy: {(attr.ContainsKey("energy") ? attr["energy"].AsString() : "0.0")}"); + if (attr.TryGetValue("sleep", out var sleep)) + tooltip.Append($", Sleep: {sleep}"); + break; + } + + if (category == LslCategory.Unknown) { continue; } + + var kw = new LslKeyword + { + Category = category, + Keyword = key, + Deprecated = attr.ContainsKey("deprecated") && attr["deprecated"].AsBoolean(), + GodMode = attr.ContainsKey("god-mode") && attr["god-mode"].AsBoolean(), + Tooltip = tooltip.ToString(), + }; + keywords.Add(kw.Keyword, kw); + ++added; + } + } + } + catch (Exception e) + { + Logger.Log($"Syntax parser exception: {e.Message}", Helpers.LogLevel.Warning); + } + Logger.Log($"Parsed Syntax file, added {added}/{tokens} tokens.", Helpers.LogLevel.Debug); + lock(_keywords) { _keywords = keywords; } + OnSyntaxChanged(); + } + + private string ParseArguments(OSD args) + { + var str = new StringBuilder(); + if (args.Type == OSDType.Array) + { + foreach (var osd in (OSDArray)args) + { + if (osd.Type == OSDType.Map) + { + var map = (OSDMap)osd; + var left = map.Count; + var enumerable = map.GetEnumerator(); + while (enumerable.MoveNext()) + { + var value = (OSD)enumerable.Value; + str.Append($"{value.AsString()} {(string)enumerable.Key}"); + if (left-- > 1) + { + str.Append(", "); + } + } + } + } + } + + return str.ToString(); + } + } +} \ No newline at end of file diff --git a/LibreMetaverse/ParcelManager.cs b/LibreMetaverse/ParcelManager.cs index 12ff330..6e878fa 100644 --- a/LibreMetaverse/ParcelManager.cs +++ b/LibreMetaverse/ParcelManager.cs @@ -25,17 +25,18 @@ * POSSIBILITY OF SUCH DAMAGE. */ +using LibreMetaverse; +using OpenMetaverse.Interfaces; +using OpenMetaverse.Messages.Linden; +using OpenMetaverse.Packets; +using OpenMetaverse.StructuredData; +using SkiaSharp; using System; -using System.Threading; -using System.Reflection; using System.Collections.Generic; using System.Linq; -using OpenMetaverse.Packets; -using OpenMetaverse.Interfaces; -using OpenMetaverse.StructuredData; -using OpenMetaverse.Messages.Linden; +using System.Reflection; +using System.Threading; using System.Threading.Tasks; -using LibreMetaverse; namespace OpenMetaverse { @@ -616,6 +617,102 @@ namespace OpenMetaverse Update(client, client.Network.CurrentSim, wantReply); } + public void UpdateParcelAccessList( + GridClient Client, + AccessList flags, + List entries) + { + if(Client == null) throw new InvalidOperationException("Client is null"); + if(Client.Network == null) throw new InvalidOperationException("Client.Network is null"); + if(Client.Network.CurrentSim == null) throw new InvalidOperationException("Client.Network.CurrentSim is null"); + Simulator simulator = Client.Network.CurrentSim; + if (simulator == null) throw new InvalidOperationException("No current simulator"); + int parcelLocalId = LocalID; + if (parcelLocalId == 0) throw new InvalidOperationException("Parcel LocalID is zero"); + if (entries.Count == 0) + { + // send an empty block to clear the list + Guid sendemptyGuid = Guid.NewGuid(); + var packet = new ParcelAccessListUpdatePacket + { + AgentData = { + AgentID = Client.Self.AgentID, + SessionID = Client.Self.SessionID + }, + Data = { + Flags = (uint)flags, + LocalID = parcelLocalId, + TransactionID = new UUID(sendemptyGuid.ToString()), + SequenceID = 1, + Sections = 0 + }, + List = { } + }; + packet.List = new ParcelAccessListUpdatePacket.ListBlock[1]; + packet.List[0] = new ParcelAccessListUpdatePacket.ListBlock + { + ID = UUID.Zero, + Time = 0, + Flags = 0 + }; + simulator.SendPacket(packet); + return; + } + + const int PARCEL_MAX_ENTRIES_PER_PACKET = 48; // Set to your actual max + int count = entries.Count; + int numSections = (int)Math.Ceiling((double)count / PARCEL_MAX_ENTRIES_PER_PACKET); + int sequenceId = 1; + Guid transactionUUID = Guid.NewGuid(); + int entryIndex = 0; + for (int section = 0; section < numSections; section++) + { + var packet = new ParcelAccessListUpdatePacket + { + AgentData = { + AgentID = Client.Self.AgentID, + SessionID = Client.Self.SessionID + }, + Data = { + Flags = (uint)flags, + LocalID = parcelLocalId, + TransactionID = new UUID(transactionUUID.ToString()), + SequenceID = sequenceId, + Sections = numSections + }, + List = new ParcelAccessListUpdatePacket.ListBlock[ + Math.Min(PARCEL_MAX_ENTRIES_PER_PACKET, count - entryIndex) + ] + }; + + for (int i = 0; i < packet.List.Length; i++, entryIndex++) + { + var entry = entries[entryIndex]; + packet.List[i] = new ParcelAccessListUpdatePacket.ListBlock + { + ID = entry.AgentID, + Time = (int)(entry.Time.Subtract(new DateTime(1970, 1, 1))).TotalSeconds, + Flags = (uint)entry.Flags + }; + } + + // If there are no entries, send an empty block + if (packet.List.Length == 0) + { + packet.List = new ParcelAccessListUpdatePacket.ListBlock[1]; + packet.List[0] = new ParcelAccessListUpdatePacket.ListBlock + { + ID = UUID.Zero, + Time = 0, + Flags = 0 + }; + } + + simulator.SendPacket(packet); + sequenceId++; + } + } + /// /// Update the simulator with any local changes to this Parcel object /// diff --git a/LibreMetaverse/Rendering/LindenSkeleton.Ext.cs b/LibreMetaverse/Rendering/LindenSkeleton.Ext.cs index 2bc2974..a555698 100644 --- a/LibreMetaverse/Rendering/LindenSkeleton.Ext.cs +++ b/LibreMetaverse/Rendering/LindenSkeleton.Ext.cs @@ -1,5 +1,6 @@ /* * Copyright (c) 2006-2016, openmetaverse.co + * Copyright (c) 2025, Sjofn LLC. * All rights reserved. * * - Redistribution and use in source and binary forms, with or without @@ -58,7 +59,7 @@ namespace OpenMetaverse.Rendering /// Load a skeleton from a given file. /// /// - /// We use xml scema validation on top of the xml de-serializer, since the schema has + /// We use xml schema validation on top of the xml de-serializer, since the schema has /// some stricter checks than the de-serializer provides. E.g. the vector attributes /// are guaranteed to hold only 3 float values. This reduces the need for error checking /// while working with the loaded skeleton. @@ -68,7 +69,7 @@ namespace OpenMetaverse.Rendering public static LindenSkeleton Load(string fileName) { if (fileName == null) - fileName = System.IO.Path.Combine(Settings.RESOURCE_DIR, "avatar_skeleton.xml"); + fileName = System.IO.Path.Combine(Settings.RESOURCE_DIR, "character", "avatar_skeleton.xml"); LindenSkeleton result; diff --git a/LibreMetaverse/Settings.cs b/LibreMetaverse/Settings.cs index 88975f5..3cf976c 100644 --- a/LibreMetaverse/Settings.cs +++ b/LibreMetaverse/Settings.cs @@ -1,6 +1,6 @@ /* * Copyright (c) 2006-2016, openmetaverse.co - * Copyright (c) 2021-2022, Sjofn LLC. + * Copyright (c) 2021-2025, Sjofn LLC. * All rights reserved. * * - Redistribution and use in source and binary forms, with or without @@ -25,6 +25,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ +using System.IO; using OpenMetaverse.Packets; namespace OpenMetaverse @@ -49,7 +50,7 @@ namespace OpenMetaverse public const string ADITI_LOGIN_SERVER = "https://login.aditi.lindenlab.com/cgi-bin/login.cgi"; /// The relative directory where external resources are kept - public static string RESOURCE_DIR = "openmetaverse_data"; + public static string RESOURCE_DIR = "linden"; /// Login server to connect to public string LOGIN_SERVER = AGNI_LOGIN_SERVER; @@ -286,7 +287,7 @@ namespace OpenMetaverse public bool USE_ASSET_CACHE = true; /// Path to store cached texture data - public string ASSET_CACHE_DIR = RESOURCE_DIR + "/cache"; + public string ASSET_CACHE_DIR = Path.Combine(RESOURCE_DIR, "cache"); /// Maximum size cached files are allowed to take on disk (bytes) public long ASSET_CACHE_MAX_SIZE = 1024 * 1024 * 1024; // 1GB diff --git a/LibreMetaverse/Simulator.cs b/LibreMetaverse/Simulator.cs index 473e644..161f9dd 100644 --- a/LibreMetaverse/Simulator.cs +++ b/LibreMetaverse/Simulator.cs @@ -31,6 +31,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading; using System.Net; +using LibreMetaverse; using OpenMetaverse.Packets; namespace OpenMetaverse @@ -263,6 +264,8 @@ namespace OpenMetaverse public UUID ID = UUID.Zero; /// The capabilities for this simulator public Caps Caps; + /// Simulator Features available for this simulator + public SimulatorFeatures Features; /// Unique identified for this region generated via it's coordinates on the world map public ulong Handle; /// Simulator land size in X direction in meters diff --git a/LibreMetaverse/SimulatorFeatures.cs b/LibreMetaverse/SimulatorFeatures.cs new file mode 100644 index 0000000..f6720d7 --- /dev/null +++ b/LibreMetaverse/SimulatorFeatures.cs @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2025, Sjofn LLC. + * All rights reserved. + * + * - Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * - Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * - Neither the name of the openmetaverse.co nor the names + * of its contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.Net.Http; +using OpenMetaverse; +using OpenMetaverse.StructuredData; + +namespace LibreMetaverse +{ + /// + /// Stores the Simulator Features provided by the SimulatorFeatures sim capability + /// + public class SimulatorFeatures + { + private OSDMap _featureMap = new OSDMap(); + private readonly Simulator _simulator; + + internal SimulatorFeatures(Simulator simulator) + { + _simulator = simulator; + } + + /// + /// Returns true if Simulator Features has a given feature and corresponding true value + /// + /// + /// true if feature exists and is true + public bool Has(string feature) + { + return _featureMap.TryGetValue(feature, out var value) && value.AsBoolean(); + } + + /// + /// Returns the value of a specified Simulator Feature + /// + /// + /// Returns value of the specified Simulator Feature, null of not found. + public OSD Get(string feature) + { + return _featureMap.TryGetValue(feature, out var value) ? value : null; + } + + /// + /// Set SimulatorFeatures from + /// + /// + /// + /// + /// OSD type is not a map + public void SetFeatures(HttpResponseMessage response, byte[] responseData, Exception error) + { + if (error != null) + { + Logger.Log($"Failed to retrieve simulator features. Error: {error.Message}", + Helpers.LogLevel.Warning, _simulator.Client); + return; + } + + if (!response.IsSuccessStatusCode) + { + Logger.Log($"Failed to retrieve simulator features. Status: {response.StatusCode} {response.ReasonPhrase}", + Helpers.LogLevel.Warning, _simulator.Client); + return; + } + OSD features = OSDParser.Deserialize(responseData); + + if (features.Type != OSDType.Map) + { + Logger.Log($"Simulator Features response was not valid LLSD map", + Helpers.LogLevel.Warning, _simulator.Client); + return; + } + _featureMap = (OSDMap)features; + } + } +} \ No newline at end of file diff --git a/LibreMetaverse/linden/cc-by-sa-3.0.txt b/LibreMetaverse/linden/cc-by-sa-3.0.txt new file mode 100644 index 0000000..1d1e1d6 --- /dev/null +++ b/LibreMetaverse/linden/cc-by-sa-3.0.txt @@ -0,0 +1,359 @@ +Creative Commons Legal Code + +Attribution-ShareAlike 3.0 Unported + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR + DAMAGES RESULTING FROM ITS USE. + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE +COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY +COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS +AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE +TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY +BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS +CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND +CONDITIONS. + +1. Definitions + + a. "Adaptation" means a work based upon the Work, or upon the Work and + other pre-existing works, such as a translation, adaptation, + derivative work, arrangement of music or other alterations of a + literary or artistic work, or phonogram or performance and includes + cinematographic adaptations or any other form in which the Work may be + recast, transformed, or adapted including in any form recognizably + derived from the original, except that a work that constitutes a + Collection will not be considered an Adaptation for the purpose of + this License. For the avoidance of doubt, where the Work is a musical + work, performance or phonogram, the synchronization of the Work in + timed-relation with a moving image ("synching") will be considered an + Adaptation for the purpose of this License. + b. "Collection" means a collection of literary or artistic works, such as + encyclopedias and anthologies, or performances, phonograms or + broadcasts, or other works or subject matter other than works listed + in Section 1(f) below, which, by reason of the selection and + arrangement of their contents, constitute intellectual creations, in + which the Work is included in its entirety in unmodified form along + with one or more other contributions, each constituting separate and + independent works in themselves, which together are assembled into a + collective whole. A work that constitutes a Collection will not be + considered an Adaptation (as defined below) for the purposes of this + License. + c. "Creative Commons Compatible License" means a license that is listed + at https://creativecommons.org/compatiblelicenses that has been + approved by Creative Commons as being essentially equivalent to this + License, including, at a minimum, because that license: (i) contains + terms that have the same purpose, meaning and effect as the License + Elements of this License; and, (ii) explicitly permits the relicensing + of adaptations of works made available under that license under this + License or a Creative Commons jurisdiction license with the same + License Elements as this License. + d. "Distribute" means to make available to the public the original and + copies of the Work or Adaptation, as appropriate, through sale or + other transfer of ownership. + e. "License Elements" means the following high-level license attributes + as selected by Licensor and indicated in the title of this License: + Attribution, ShareAlike. + f. "Licensor" means the individual, individuals, entity or entities that + offer(s) the Work under the terms of this License. + g. "Original Author" means, in the case of a literary or artistic work, + the individual, individuals, entity or entities who created the Work + or if no individual or entity can be identified, the publisher; and in + addition (i) in the case of a performance the actors, singers, + musicians, dancers, and other persons who act, sing, deliver, declaim, + play in, interpret or otherwise perform literary or artistic works or + expressions of folklore; (ii) in the case of a phonogram the producer + being the person or legal entity who first fixes the sounds of a + performance or other sounds; and, (iii) in the case of broadcasts, the + organization that transmits the broadcast. + h. "Work" means the literary and/or artistic work offered under the terms + of this License including without limitation any production in the + literary, scientific and artistic domain, whatever may be the mode or + form of its expression including digital form, such as a book, + pamphlet and other writing; a lecture, address, sermon or other work + of the same nature; a dramatic or dramatico-musical work; a + choreographic work or entertainment in dumb show; a musical + composition with or without words; a cinematographic work to which are + assimilated works expressed by a process analogous to cinematography; + a work of drawing, painting, architecture, sculpture, engraving or + lithography; a photographic work to which are assimilated works + expressed by a process analogous to photography; a work of applied + art; an illustration, map, plan, sketch or three-dimensional work + relative to geography, topography, architecture or science; a + performance; a broadcast; a phonogram; a compilation of data to the + extent it is protected as a copyrightable work; or a work performed by + a variety or circus performer to the extent it is not otherwise + considered a literary or artistic work. + i. "You" means an individual or entity exercising rights under this + License who has not previously violated the terms of this License with + respect to the Work, or who has received express permission from the + Licensor to exercise rights under this License despite a previous + violation. + j. "Publicly Perform" means to perform public recitations of the Work and + to communicate to the public those public recitations, by any means or + process, including by wire or wireless means or public digital + performances; to make available to the public Works in such a way that + members of the public may access these Works from a place and at a + place individually chosen by them; to perform the Work to the public + by any means or process and the communication to the public of the + performances of the Work, including by public digital performance; to + broadcast and rebroadcast the Work by any means including signs, + sounds or images. + k. "Reproduce" means to make copies of the Work by any means including + without limitation by sound or visual recordings and the right of + fixation and reproducing fixations of the Work, including storage of a + protected performance or phonogram in digital form or other electronic + medium. + +2. Fair Dealing Rights. Nothing in this License is intended to reduce, +limit, or restrict any uses free from copyright or rights arising from +limitations or exceptions that are provided for in connection with the +copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, +Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +perpetual (for the duration of the applicable copyright) license to +exercise the rights in the Work as stated below: + + a. to Reproduce the Work, to incorporate the Work into one or more + Collections, and to Reproduce the Work as incorporated in the + Collections; + b. to create and Reproduce Adaptations provided that any such Adaptation, + including any translation in any medium, takes reasonable steps to + clearly label, demarcate or otherwise identify that changes were made + to the original Work. For example, a translation could be marked "The + original work was translated from English to Spanish," or a + modification could indicate "The original work has been modified."; + c. to Distribute and Publicly Perform the Work including as incorporated + in Collections; and, + d. to Distribute and Publicly Perform Adaptations. + e. For the avoidance of doubt: + + i. Non-waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme cannot be waived, the Licensor + reserves the exclusive right to collect such royalties for any + exercise by You of the rights granted under this License; + ii. Waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme can be waived, the Licensor waives the + exclusive right to collect such royalties for any exercise by You + of the rights granted under this License; and, + iii. Voluntary License Schemes. The Licensor waives the right to + collect royalties, whether individually or, in the event that the + Licensor is a member of a collecting society that administers + voluntary licensing schemes, via that society, from any exercise + by You of the rights granted under this License. + +The above rights may be exercised in all media and formats whether now +known or hereafter devised. The above rights include the right to make +such modifications as are technically necessary to exercise the rights in +other media and formats. Subject to Section 8(f), all rights not expressly +granted by Licensor are hereby reserved. + +4. Restrictions. The license granted in Section 3 above is expressly made +subject to and limited by the following restrictions: + + a. You may Distribute or Publicly Perform the Work only under the terms + of this License. You must include a copy of, or the Uniform Resource + Identifier (URI) for, this License with every copy of the Work You + Distribute or Publicly Perform. You may not offer or impose any terms + on the Work that restrict the terms of this License or the ability of + the recipient of the Work to exercise the rights granted to that + recipient under the terms of the License. You may not sublicense the + Work. You must keep intact all notices that refer to this License and + to the disclaimer of warranties with every copy of the Work You + Distribute or Publicly Perform. When You Distribute or Publicly + Perform the Work, You may not impose any effective technological + measures on the Work that restrict the ability of a recipient of the + Work from You to exercise the rights granted to that recipient under + the terms of the License. This Section 4(a) applies to the Work as + incorporated in a Collection, but this does not require the Collection + apart from the Work itself to be made subject to the terms of this + License. If You create a Collection, upon notice from any Licensor You + must, to the extent practicable, remove from the Collection any credit + as required by Section 4(c), as requested. If You create an + Adaptation, upon notice from any Licensor You must, to the extent + practicable, remove from the Adaptation any credit as required by + Section 4(c), as requested. + b. You may Distribute or Publicly Perform an Adaptation only under the + terms of: (i) this License; (ii) a later version of this License with + the same License Elements as this License; (iii) a Creative Commons + jurisdiction license (either this or a later license version) that + contains the same License Elements as this License (e.g., + Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible + License. If you license the Adaptation under one of the licenses + mentioned in (iv), you must comply with the terms of that license. If + you license the Adaptation under the terms of any of the licenses + mentioned in (i), (ii) or (iii) (the "Applicable License"), you must + comply with the terms of the Applicable License generally and the + following provisions: (I) You must include a copy of, or the URI for, + the Applicable License with every copy of each Adaptation You + Distribute or Publicly Perform; (II) You may not offer or impose any + terms on the Adaptation that restrict the terms of the Applicable + License or the ability of the recipient of the Adaptation to exercise + the rights granted to that recipient under the terms of the Applicable + License; (III) You must keep intact all notices that refer to the + Applicable License and to the disclaimer of warranties with every copy + of the Work as included in the Adaptation You Distribute or Publicly + Perform; (IV) when You Distribute or Publicly Perform the Adaptation, + You may not impose any effective technological measures on the + Adaptation that restrict the ability of a recipient of the Adaptation + from You to exercise the rights granted to that recipient under the + terms of the Applicable License. This Section 4(b) applies to the + Adaptation as incorporated in a Collection, but this does not require + the Collection apart from the Adaptation itself to be made subject to + the terms of the Applicable License. + c. If You Distribute, or Publicly Perform the Work or any Adaptations or + Collections, You must, unless a request has been made pursuant to + Section 4(a), keep intact all copyright notices for the Work and + provide, reasonable to the medium or means You are utilizing: (i) the + name of the Original Author (or pseudonym, if applicable) if supplied, + and/or if the Original Author and/or Licensor designate another party + or parties (e.g., a sponsor institute, publishing entity, journal) for + attribution ("Attribution Parties") in Licensor's copyright notice, + terms of service or by other reasonable means, the name of such party + or parties; (ii) the title of the Work if supplied; (iii) to the + extent reasonably practicable, the URI, if any, that Licensor + specifies to be associated with the Work, unless such URI does not + refer to the copyright notice or licensing information for the Work; + and (iv) , consistent with Ssection 3(b), in the case of an + Adaptation, a credit identifying the use of the Work in the Adaptation + (e.g., "French translation of the Work by Original Author," or + "Screenplay based on original Work by Original Author"). The credit + required by this Section 4(c) may be implemented in any reasonable + manner; provided, however, that in the case of a Adaptation or + Collection, at a minimum such credit will appear, if a credit for all + contributing authors of the Adaptation or Collection appears, then as + part of these credits and in a manner at least as prominent as the + credits for the other contributing authors. For the avoidance of + doubt, You may only use the credit required by this Section for the + purpose of attribution in the manner set out above and, by exercising + Your rights under this License, You may not implicitly or explicitly + assert or imply any connection with, sponsorship or endorsement by the + Original Author, Licensor and/or Attribution Parties, as appropriate, + of You or Your use of the Work, without the separate, express prior + written permission of the Original Author, Licensor and/or Attribution + Parties. + d. Except as otherwise agreed in writing by the Licensor or as may be + otherwise permitted by applicable law, if You Reproduce, Distribute or + Publicly Perform the Work either by itself or as part of any + Adaptations or Collections, You must not distort, mutilate, modify or + take other derogatory action in relation to the Work which would be + prejudicial to the Original Author's honor or reputation. Licensor + agrees that in those jurisdictions (e.g. Japan), in which any exercise + of the right granted in Section 3(b) of this License (the right to + make Adaptations) would be deemed to be a distortion, mutilation, + modification or other derogatory action prejudicial to the Original + Author's honor and reputation, the Licensor will waive or not assert, + as appropriate, this Section, to the fullest extent permitted by the + applicable national law, to enable You to reasonably exercise Your + right under Section 3(b) of this License (right to make Adaptations) + but not otherwise. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR +OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY +KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, +INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, +FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF +LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, +WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION +OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE +LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR +ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES +ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS +BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + a. This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this License. + Individuals or entities who have received Adaptations or Collections + from You under this License, however, will not have their licenses + terminated provided such individuals or entities remain in full + compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will + survive any termination of this License. + b. Subject to the above terms and conditions, the license granted here is + perpetual (for the duration of the applicable copyright in the Work). + Notwithstanding the above, Licensor reserves the right to release the + Work under different license terms or to stop distributing the Work at + any time; provided, however that any such election will not serve to + withdraw this License (or any other license that has been, or is + required to be, granted under the terms of this License), and this + License will continue in full force and effect unless terminated as + stated above. + +8. Miscellaneous + + a. Each time You Distribute or Publicly Perform the Work or a Collection, + the Licensor offers to the recipient a license to the Work on the same + terms and conditions as the license granted to You under this License. + b. Each time You Distribute or Publicly Perform an Adaptation, Licensor + offers to the recipient a license to the original Work on the same + terms and conditions as the license granted to You under this License. + c. If any provision of this License is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability of + the remainder of the terms of this License, and without further action + by the parties to this agreement, such provision shall be reformed to + the minimum extent necessary to make such provision valid and + enforceable. + d. No term or provision of this License shall be deemed waived and no + breach consented to unless such waiver or consent shall be in writing + and signed by the party to be charged with such waiver or consent. + e. This License constitutes the entire agreement between the parties with + respect to the Work licensed here. There are no understandings, + agreements or representations with respect to the Work not specified + here. Licensor shall not be bound by any additional provisions that + may appear in any communication from You. This License may not be + modified without the mutual written agreement of the Licensor and You. + f. The rights granted under, and the subject matter referenced, in this + License were drafted utilizing the terminology of the Berne Convention + for the Protection of Literary and Artistic Works (as amended on + September 28, 1979), the Rome Convention of 1961, the WIPO Copyright + Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 + and the Universal Copyright Convention (as revised on July 24, 1971). + These rights and subject matter take effect in the relevant + jurisdiction in which the License terms are sought to be enforced + according to the corresponding provisions of the implementation of + those treaty provisions in the applicable national law. If the + standard suite of rights granted under applicable copyright law + includes additional rights not granted under this License, such + additional rights are deemed to be included in the License; this + License is not intended to restrict the license of any rights under + applicable law. + + +Creative Commons Notice + + Creative Commons is not a party to this License, and makes no warranty + whatsoever in connection with the Work. Creative Commons will not be + liable to You or any party on any legal theory for any damages + whatsoever, including without limitation any general, special, + incidental or consequential damages arising in connection to this + license. Notwithstanding the foregoing two (2) sentences, if Creative + Commons has expressly identified itself as the Licensor hereunder, it + shall have all rights and obligations of Licensor. + + Except for the limited purpose of indicating to the public that the + Work is licensed under the CCPL, Creative Commons does not authorize + the use by either party of the trademark "Creative Commons" or any + related trademark or logo of Creative Commons without the prior + written consent of Creative Commons. Any permitted use will be in + compliance with Creative Commons' then-current trademark usage + guidelines, as may be published on its website or otherwise made + available upon request from time to time. For the avoidance of doubt, + this trademark restriction does not form part of the License. + + Creative Commons may be contacted at https://creativecommons.org/. \ No newline at end of file diff --git a/LibreMetaverse/linden/character/attentions.xml b/LibreMetaverse/linden/character/attentions.xml new file mode 100644 index 0000000..be9a2b2 --- /dev/null +++ b/LibreMetaverse/linden/character/attentions.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LibreMetaverse/linden/character/attentionsN.xml b/LibreMetaverse/linden/character/attentionsN.xml new file mode 100644 index 0000000..e7d9bb6 --- /dev/null +++ b/LibreMetaverse/linden/character/attentionsN.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LibreMetaverse/linden/character/aux_base.tga b/LibreMetaverse/linden/character/aux_base.tga new file mode 100644 index 0000000..dbcaaaf Binary files /dev/null and b/LibreMetaverse/linden/character/aux_base.tga differ diff --git a/LibreMetaverse/linden/character/avatar_eye.llm b/LibreMetaverse/linden/character/avatar_eye.llm new file mode 100644 index 0000000..8c6e74e Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_eye.llm differ diff --git a/LibreMetaverse/linden/character/avatar_eye_1.llm b/LibreMetaverse/linden/character/avatar_eye_1.llm new file mode 100644 index 0000000..7a3b0d6 Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_eye_1.llm differ diff --git a/LibreMetaverse/linden/character/avatar_eyelashes.llm b/LibreMetaverse/linden/character/avatar_eyelashes.llm new file mode 100644 index 0000000..99995b5 Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_eyelashes.llm differ diff --git a/LibreMetaverse/linden/character/avatar_hair.llm b/LibreMetaverse/linden/character/avatar_hair.llm new file mode 100644 index 0000000..df99de8 Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_hair.llm differ diff --git a/LibreMetaverse/linden/character/avatar_hair_1.llm b/LibreMetaverse/linden/character/avatar_hair_1.llm new file mode 100644 index 0000000..6de31fd Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_hair_1.llm differ diff --git a/LibreMetaverse/linden/character/avatar_hair_2.llm b/LibreMetaverse/linden/character/avatar_hair_2.llm new file mode 100644 index 0000000..47d02ba Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_hair_2.llm differ diff --git a/LibreMetaverse/linden/character/avatar_hair_3.llm b/LibreMetaverse/linden/character/avatar_hair_3.llm new file mode 100644 index 0000000..107f9e2 Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_hair_3.llm differ diff --git a/LibreMetaverse/linden/character/avatar_hair_4.llm b/LibreMetaverse/linden/character/avatar_hair_4.llm new file mode 100644 index 0000000..1b9a12a Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_hair_4.llm differ diff --git a/LibreMetaverse/linden/character/avatar_hair_5.llm b/LibreMetaverse/linden/character/avatar_hair_5.llm new file mode 100644 index 0000000..1b9a12a Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_hair_5.llm differ diff --git a/LibreMetaverse/linden/character/avatar_head.llm b/LibreMetaverse/linden/character/avatar_head.llm new file mode 100644 index 0000000..8d8b5e0 Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_head.llm differ diff --git a/LibreMetaverse/linden/character/avatar_head_1.llm b/LibreMetaverse/linden/character/avatar_head_1.llm new file mode 100644 index 0000000..26291e6 Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_head_1.llm differ diff --git a/LibreMetaverse/linden/character/avatar_head_2.llm b/LibreMetaverse/linden/character/avatar_head_2.llm new file mode 100644 index 0000000..c2b808b Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_head_2.llm differ diff --git a/LibreMetaverse/linden/character/avatar_head_3.llm b/LibreMetaverse/linden/character/avatar_head_3.llm new file mode 100644 index 0000000..a0676b1 Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_head_3.llm differ diff --git a/LibreMetaverse/linden/character/avatar_head_4.llm b/LibreMetaverse/linden/character/avatar_head_4.llm new file mode 100644 index 0000000..5035585 Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_head_4.llm differ diff --git a/LibreMetaverse/linden/character/avatar_lad.xml b/LibreMetaverse/linden/character/avatar_lad.xml new file mode 100644 index 0000000..63e3265 --- /dev/null +++ b/LibreMetaverse/linden/character/avatar_lad.xml @@ -0,0 +1,17504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LibreMetaverse/linden/character/avatar_lower_body.llm b/LibreMetaverse/linden/character/avatar_lower_body.llm new file mode 100644 index 0000000..0420899 Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_lower_body.llm differ diff --git a/LibreMetaverse/linden/character/avatar_lower_body_1.llm b/LibreMetaverse/linden/character/avatar_lower_body_1.llm new file mode 100644 index 0000000..1394eb8 Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_lower_body_1.llm differ diff --git a/LibreMetaverse/linden/character/avatar_lower_body_2.llm b/LibreMetaverse/linden/character/avatar_lower_body_2.llm new file mode 100644 index 0000000..0da9c12 Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_lower_body_2.llm differ diff --git a/LibreMetaverse/linden/character/avatar_lower_body_3.llm b/LibreMetaverse/linden/character/avatar_lower_body_3.llm new file mode 100644 index 0000000..f3c49a1 Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_lower_body_3.llm differ diff --git a/LibreMetaverse/linden/character/avatar_lower_body_4.llm b/LibreMetaverse/linden/character/avatar_lower_body_4.llm new file mode 100644 index 0000000..e717210 Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_lower_body_4.llm differ diff --git a/LibreMetaverse/linden/character/avatar_skeleton.xml b/LibreMetaverse/linden/character/avatar_skeleton.xml new file mode 100644 index 0000000..f8daa87 --- /dev/null +++ b/LibreMetaverse/linden/character/avatar_skeleton.xml @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LibreMetaverse/linden/character/avatar_skirt.llm b/LibreMetaverse/linden/character/avatar_skirt.llm new file mode 100644 index 0000000..08ce3d1 Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_skirt.llm differ diff --git a/LibreMetaverse/linden/character/avatar_skirt_1.llm b/LibreMetaverse/linden/character/avatar_skirt_1.llm new file mode 100644 index 0000000..88076c3 Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_skirt_1.llm differ diff --git a/LibreMetaverse/linden/character/avatar_skirt_2.llm b/LibreMetaverse/linden/character/avatar_skirt_2.llm new file mode 100644 index 0000000..73b3eff Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_skirt_2.llm differ diff --git a/LibreMetaverse/linden/character/avatar_skirt_3.llm b/LibreMetaverse/linden/character/avatar_skirt_3.llm new file mode 100644 index 0000000..ded546f Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_skirt_3.llm differ diff --git a/LibreMetaverse/linden/character/avatar_skirt_4.llm b/LibreMetaverse/linden/character/avatar_skirt_4.llm new file mode 100644 index 0000000..b9d5cb9 Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_skirt_4.llm differ diff --git a/LibreMetaverse/linden/character/avatar_upper_body.llm b/LibreMetaverse/linden/character/avatar_upper_body.llm new file mode 100644 index 0000000..da7d990 Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_upper_body.llm differ diff --git a/LibreMetaverse/linden/character/avatar_upper_body_1.llm b/LibreMetaverse/linden/character/avatar_upper_body_1.llm new file mode 100644 index 0000000..31e104c Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_upper_body_1.llm differ diff --git a/LibreMetaverse/linden/character/avatar_upper_body_2.llm b/LibreMetaverse/linden/character/avatar_upper_body_2.llm new file mode 100644 index 0000000..c1f4199 Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_upper_body_2.llm differ diff --git a/LibreMetaverse/linden/character/avatar_upper_body_3.llm b/LibreMetaverse/linden/character/avatar_upper_body_3.llm new file mode 100644 index 0000000..9e89ed8 Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_upper_body_3.llm differ diff --git a/LibreMetaverse/linden/character/avatar_upper_body_4.llm b/LibreMetaverse/linden/character/avatar_upper_body_4.llm new file mode 100644 index 0000000..ec836d1 Binary files /dev/null and b/LibreMetaverse/linden/character/avatar_upper_body_4.llm differ diff --git a/LibreMetaverse/linden/character/blush_alpha.tga b/LibreMetaverse/linden/character/blush_alpha.tga new file mode 100644 index 0000000..05be7e7 Binary files /dev/null and b/LibreMetaverse/linden/character/blush_alpha.tga differ diff --git a/LibreMetaverse/linden/character/body_skingrain.tga b/LibreMetaverse/linden/character/body_skingrain.tga new file mode 100644 index 0000000..7264baa Binary files /dev/null and b/LibreMetaverse/linden/character/body_skingrain.tga differ diff --git a/LibreMetaverse/linden/character/bodyfreckles_alpha.tga b/LibreMetaverse/linden/character/bodyfreckles_alpha.tga new file mode 100644 index 0000000..d30ab3d Binary files /dev/null and b/LibreMetaverse/linden/character/bodyfreckles_alpha.tga differ diff --git a/LibreMetaverse/linden/character/bump_face_wrinkles.tga b/LibreMetaverse/linden/character/bump_face_wrinkles.tga new file mode 100644 index 0000000..54bf7a5 Binary files /dev/null and b/LibreMetaverse/linden/character/bump_face_wrinkles.tga differ diff --git a/LibreMetaverse/linden/character/bump_head_base.tga b/LibreMetaverse/linden/character/bump_head_base.tga new file mode 100644 index 0000000..fa35685 Binary files /dev/null and b/LibreMetaverse/linden/character/bump_head_base.tga differ diff --git a/LibreMetaverse/linden/character/bump_lowerbody_base.tga b/LibreMetaverse/linden/character/bump_lowerbody_base.tga new file mode 100644 index 0000000..498ea3c Binary files /dev/null and b/LibreMetaverse/linden/character/bump_lowerbody_base.tga differ diff --git a/LibreMetaverse/linden/character/bump_pants_wrinkles.tga b/LibreMetaverse/linden/character/bump_pants_wrinkles.tga new file mode 100644 index 0000000..cca7241 Binary files /dev/null and b/LibreMetaverse/linden/character/bump_pants_wrinkles.tga differ diff --git a/LibreMetaverse/linden/character/bump_shirt_wrinkles.tga b/LibreMetaverse/linden/character/bump_shirt_wrinkles.tga new file mode 100644 index 0000000..9e0d757 Binary files /dev/null and b/LibreMetaverse/linden/character/bump_shirt_wrinkles.tga differ diff --git a/LibreMetaverse/linden/character/bump_upperbody_base.tga b/LibreMetaverse/linden/character/bump_upperbody_base.tga new file mode 100644 index 0000000..e57d635 Binary files /dev/null and b/LibreMetaverse/linden/character/bump_upperbody_base.tga differ diff --git a/LibreMetaverse/linden/character/checkerboard.tga b/LibreMetaverse/linden/character/checkerboard.tga new file mode 100644 index 0000000..1950d74 Binary files /dev/null and b/LibreMetaverse/linden/character/checkerboard.tga differ diff --git a/LibreMetaverse/linden/character/eyebrows_alpha.tga b/LibreMetaverse/linden/character/eyebrows_alpha.tga new file mode 100644 index 0000000..c363e48 Binary files /dev/null and b/LibreMetaverse/linden/character/eyebrows_alpha.tga differ diff --git a/LibreMetaverse/linden/character/eyeliner_alpha.tga b/LibreMetaverse/linden/character/eyeliner_alpha.tga new file mode 100644 index 0000000..1611eb3 Binary files /dev/null and b/LibreMetaverse/linden/character/eyeliner_alpha.tga differ diff --git a/LibreMetaverse/linden/character/eyeshadow_inner_alpha.tga b/LibreMetaverse/linden/character/eyeshadow_inner_alpha.tga new file mode 100644 index 0000000..37d7919 Binary files /dev/null and b/LibreMetaverse/linden/character/eyeshadow_inner_alpha.tga differ diff --git a/LibreMetaverse/linden/character/eyeshadow_outer_alpha.tga b/LibreMetaverse/linden/character/eyeshadow_outer_alpha.tga new file mode 100644 index 0000000..00eef9d Binary files /dev/null and b/LibreMetaverse/linden/character/eyeshadow_outer_alpha.tga differ diff --git a/LibreMetaverse/linden/character/eyewhite.tga b/LibreMetaverse/linden/character/eyewhite.tga new file mode 100644 index 0000000..a720496 Binary files /dev/null and b/LibreMetaverse/linden/character/eyewhite.tga differ diff --git a/LibreMetaverse/linden/character/facehair_chincurtains_alpha.tga b/LibreMetaverse/linden/character/facehair_chincurtains_alpha.tga new file mode 100644 index 0000000..b103970 Binary files /dev/null and b/LibreMetaverse/linden/character/facehair_chincurtains_alpha.tga differ diff --git a/LibreMetaverse/linden/character/facehair_moustache_alpha.tga b/LibreMetaverse/linden/character/facehair_moustache_alpha.tga new file mode 100644 index 0000000..4068c4f Binary files /dev/null and b/LibreMetaverse/linden/character/facehair_moustache_alpha.tga differ diff --git a/LibreMetaverse/linden/character/facehair_sideburns_alpha.tga b/LibreMetaverse/linden/character/facehair_sideburns_alpha.tga new file mode 100644 index 0000000..acddc2d Binary files /dev/null and b/LibreMetaverse/linden/character/facehair_sideburns_alpha.tga differ diff --git a/LibreMetaverse/linden/character/facehair_soulpatch_alpha.tga b/LibreMetaverse/linden/character/facehair_soulpatch_alpha.tga new file mode 100644 index 0000000..687091a Binary files /dev/null and b/LibreMetaverse/linden/character/facehair_soulpatch_alpha.tga differ diff --git a/LibreMetaverse/linden/character/freckles_alpha.tga b/LibreMetaverse/linden/character/freckles_alpha.tga new file mode 100644 index 0000000..a9a4ec0 Binary files /dev/null and b/LibreMetaverse/linden/character/freckles_alpha.tga differ diff --git a/LibreMetaverse/linden/character/genepool.xml b/LibreMetaverse/linden/character/genepool.xml new file mode 100644 index 0000000..52300c2 --- /dev/null +++ b/LibreMetaverse/linden/character/genepool.xml @@ -0,0 +1,7107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LibreMetaverse/linden/character/glove_length_alpha.tga b/LibreMetaverse/linden/character/glove_length_alpha.tga new file mode 100644 index 0000000..db89ad5 Binary files /dev/null and b/LibreMetaverse/linden/character/glove_length_alpha.tga differ diff --git a/LibreMetaverse/linden/character/gloves_fingers_alpha.tga b/LibreMetaverse/linden/character/gloves_fingers_alpha.tga new file mode 100644 index 0000000..dba2eec Binary files /dev/null and b/LibreMetaverse/linden/character/gloves_fingers_alpha.tga differ diff --git a/LibreMetaverse/linden/character/head_alpha.tga b/LibreMetaverse/linden/character/head_alpha.tga new file mode 100644 index 0000000..8164525 Binary files /dev/null and b/LibreMetaverse/linden/character/head_alpha.tga differ diff --git a/LibreMetaverse/linden/character/head_color.tga b/LibreMetaverse/linden/character/head_color.tga new file mode 100644 index 0000000..74b1b30 Binary files /dev/null and b/LibreMetaverse/linden/character/head_color.tga differ diff --git a/LibreMetaverse/linden/character/head_hair.tga b/LibreMetaverse/linden/character/head_hair.tga new file mode 100644 index 0000000..5321f35 Binary files /dev/null and b/LibreMetaverse/linden/character/head_hair.tga differ diff --git a/LibreMetaverse/linden/character/head_highlights_alpha.tga b/LibreMetaverse/linden/character/head_highlights_alpha.tga new file mode 100644 index 0000000..8dc5239 Binary files /dev/null and b/LibreMetaverse/linden/character/head_highlights_alpha.tga differ diff --git a/LibreMetaverse/linden/character/head_shading_alpha.tga b/LibreMetaverse/linden/character/head_shading_alpha.tga new file mode 100644 index 0000000..e8ea490 Binary files /dev/null and b/LibreMetaverse/linden/character/head_shading_alpha.tga differ diff --git a/LibreMetaverse/linden/character/head_skingrain.tga b/LibreMetaverse/linden/character/head_skingrain.tga new file mode 100644 index 0000000..b42dee0 Binary files /dev/null and b/LibreMetaverse/linden/character/head_skingrain.tga differ diff --git a/LibreMetaverse/linden/character/invisible_head.tga b/LibreMetaverse/linden/character/invisible_head.tga new file mode 100644 index 0000000..2673a23 Binary files /dev/null and b/LibreMetaverse/linden/character/invisible_head.tga differ diff --git a/LibreMetaverse/linden/character/jacket_length_lower_alpha.tga b/LibreMetaverse/linden/character/jacket_length_lower_alpha.tga new file mode 100644 index 0000000..722bc19 Binary files /dev/null and b/LibreMetaverse/linden/character/jacket_length_lower_alpha.tga differ diff --git a/LibreMetaverse/linden/character/jacket_length_upper_alpha.tga b/LibreMetaverse/linden/character/jacket_length_upper_alpha.tga new file mode 100644 index 0000000..e9db7e7 Binary files /dev/null and b/LibreMetaverse/linden/character/jacket_length_upper_alpha.tga differ diff --git a/LibreMetaverse/linden/character/jacket_open_lower_alpha.tga b/LibreMetaverse/linden/character/jacket_open_lower_alpha.tga new file mode 100644 index 0000000..db0c2fb Binary files /dev/null and b/LibreMetaverse/linden/character/jacket_open_lower_alpha.tga differ diff --git a/LibreMetaverse/linden/character/jacket_open_upper_alpha.tga b/LibreMetaverse/linden/character/jacket_open_upper_alpha.tga new file mode 100644 index 0000000..71b8a0b Binary files /dev/null and b/LibreMetaverse/linden/character/jacket_open_upper_alpha.tga differ diff --git a/LibreMetaverse/linden/character/lipgloss_alpha.tga b/LibreMetaverse/linden/character/lipgloss_alpha.tga new file mode 100644 index 0000000..78ceeca Binary files /dev/null and b/LibreMetaverse/linden/character/lipgloss_alpha.tga differ diff --git a/LibreMetaverse/linden/character/lips_mask.tga b/LibreMetaverse/linden/character/lips_mask.tga new file mode 100644 index 0000000..ae1401c Binary files /dev/null and b/LibreMetaverse/linden/character/lips_mask.tga differ diff --git a/LibreMetaverse/linden/character/lipstick_alpha.tga b/LibreMetaverse/linden/character/lipstick_alpha.tga new file mode 100644 index 0000000..2795f1b Binary files /dev/null and b/LibreMetaverse/linden/character/lipstick_alpha.tga differ diff --git a/LibreMetaverse/linden/character/lowerbody_color.tga b/LibreMetaverse/linden/character/lowerbody_color.tga new file mode 100644 index 0000000..a63aa12 Binary files /dev/null and b/LibreMetaverse/linden/character/lowerbody_color.tga differ diff --git a/LibreMetaverse/linden/character/lowerbody_highlights_alpha.tga b/LibreMetaverse/linden/character/lowerbody_highlights_alpha.tga new file mode 100644 index 0000000..ae3413a Binary files /dev/null and b/LibreMetaverse/linden/character/lowerbody_highlights_alpha.tga differ diff --git a/LibreMetaverse/linden/character/lowerbody_shading_alpha.tga b/LibreMetaverse/linden/character/lowerbody_shading_alpha.tga new file mode 100644 index 0000000..0242663 Binary files /dev/null and b/LibreMetaverse/linden/character/lowerbody_shading_alpha.tga differ diff --git a/LibreMetaverse/linden/character/nailpolish_alpha.tga b/LibreMetaverse/linden/character/nailpolish_alpha.tga new file mode 100644 index 0000000..91af762 Binary files /dev/null and b/LibreMetaverse/linden/character/nailpolish_alpha.tga differ diff --git a/LibreMetaverse/linden/character/pants_length_alpha.tga b/LibreMetaverse/linden/character/pants_length_alpha.tga new file mode 100644 index 0000000..3c4f21c Binary files /dev/null and b/LibreMetaverse/linden/character/pants_length_alpha.tga differ diff --git a/LibreMetaverse/linden/character/pants_waist_alpha.tga b/LibreMetaverse/linden/character/pants_waist_alpha.tga new file mode 100644 index 0000000..35658c0 Binary files /dev/null and b/LibreMetaverse/linden/character/pants_waist_alpha.tga differ diff --git a/LibreMetaverse/linden/character/rosyface_alpha.tga b/LibreMetaverse/linden/character/rosyface_alpha.tga new file mode 100644 index 0000000..a0c8513 Binary files /dev/null and b/LibreMetaverse/linden/character/rosyface_alpha.tga differ diff --git a/LibreMetaverse/linden/character/rouge_alpha.tga b/LibreMetaverse/linden/character/rouge_alpha.tga new file mode 100644 index 0000000..a0c8513 Binary files /dev/null and b/LibreMetaverse/linden/character/rouge_alpha.tga differ diff --git a/LibreMetaverse/linden/character/shirt_bottom_alpha.tga b/LibreMetaverse/linden/character/shirt_bottom_alpha.tga new file mode 100644 index 0000000..7cce03d Binary files /dev/null and b/LibreMetaverse/linden/character/shirt_bottom_alpha.tga differ diff --git a/LibreMetaverse/linden/character/shirt_collar_alpha.tga b/LibreMetaverse/linden/character/shirt_collar_alpha.tga new file mode 100644 index 0000000..f55f635 Binary files /dev/null and b/LibreMetaverse/linden/character/shirt_collar_alpha.tga differ diff --git a/LibreMetaverse/linden/character/shirt_collar_back_alpha.tga b/LibreMetaverse/linden/character/shirt_collar_back_alpha.tga new file mode 100644 index 0000000..43a6453 Binary files /dev/null and b/LibreMetaverse/linden/character/shirt_collar_back_alpha.tga differ diff --git a/LibreMetaverse/linden/character/shirt_sleeve_alpha.tga b/LibreMetaverse/linden/character/shirt_sleeve_alpha.tga new file mode 100644 index 0000000..e3b18f4 Binary files /dev/null and b/LibreMetaverse/linden/character/shirt_sleeve_alpha.tga differ diff --git a/LibreMetaverse/linden/character/shoe_height_alpha.tga b/LibreMetaverse/linden/character/shoe_height_alpha.tga new file mode 100644 index 0000000..d08dd75 Binary files /dev/null and b/LibreMetaverse/linden/character/shoe_height_alpha.tga differ diff --git a/LibreMetaverse/linden/character/skirt_length_alpha.tga b/LibreMetaverse/linden/character/skirt_length_alpha.tga new file mode 100644 index 0000000..c867994 Binary files /dev/null and b/LibreMetaverse/linden/character/skirt_length_alpha.tga differ diff --git a/LibreMetaverse/linden/character/skirt_slit_back_alpha.tga b/LibreMetaverse/linden/character/skirt_slit_back_alpha.tga new file mode 100644 index 0000000..0e49688 Binary files /dev/null and b/LibreMetaverse/linden/character/skirt_slit_back_alpha.tga differ diff --git a/LibreMetaverse/linden/character/skirt_slit_front_alpha.tga b/LibreMetaverse/linden/character/skirt_slit_front_alpha.tga new file mode 100644 index 0000000..888bbf7 Binary files /dev/null and b/LibreMetaverse/linden/character/skirt_slit_front_alpha.tga differ diff --git a/LibreMetaverse/linden/character/skirt_slit_left_alpha.tga b/LibreMetaverse/linden/character/skirt_slit_left_alpha.tga new file mode 100644 index 0000000..210feac Binary files /dev/null and b/LibreMetaverse/linden/character/skirt_slit_left_alpha.tga differ diff --git a/LibreMetaverse/linden/character/skirt_slit_right_alpha.tga b/LibreMetaverse/linden/character/skirt_slit_right_alpha.tga new file mode 100644 index 0000000..ce11c64 Binary files /dev/null and b/LibreMetaverse/linden/character/skirt_slit_right_alpha.tga differ diff --git a/LibreMetaverse/linden/character/underpants_trial_female.tga b/LibreMetaverse/linden/character/underpants_trial_female.tga new file mode 100644 index 0000000..96bf732 Binary files /dev/null and b/LibreMetaverse/linden/character/underpants_trial_female.tga differ diff --git a/LibreMetaverse/linden/character/underpants_trial_male.tga b/LibreMetaverse/linden/character/underpants_trial_male.tga new file mode 100644 index 0000000..095695c Binary files /dev/null and b/LibreMetaverse/linden/character/underpants_trial_male.tga differ diff --git a/LibreMetaverse/linden/character/undershirt_trial_female.tga b/LibreMetaverse/linden/character/undershirt_trial_female.tga new file mode 100644 index 0000000..e17a309 Binary files /dev/null and b/LibreMetaverse/linden/character/undershirt_trial_female.tga differ diff --git a/LibreMetaverse/linden/character/upperbody_color.tga b/LibreMetaverse/linden/character/upperbody_color.tga new file mode 100644 index 0000000..85fcc41 Binary files /dev/null and b/LibreMetaverse/linden/character/upperbody_color.tga differ diff --git a/LibreMetaverse/linden/character/upperbody_highlights_alpha.tga b/LibreMetaverse/linden/character/upperbody_highlights_alpha.tga new file mode 100644 index 0000000..2d8102b Binary files /dev/null and b/LibreMetaverse/linden/character/upperbody_highlights_alpha.tga differ diff --git a/LibreMetaverse/linden/character/upperbody_shading_alpha.tga b/LibreMetaverse/linden/character/upperbody_shading_alpha.tga new file mode 100644 index 0000000..b420506 Binary files /dev/null and b/LibreMetaverse/linden/character/upperbody_shading_alpha.tga differ diff --git a/LibreMetaverse/linden/character/upperbodyfreckles_alpha.tga b/LibreMetaverse/linden/character/upperbodyfreckles_alpha.tga new file mode 100644 index 0000000..76c7ce8 Binary files /dev/null and b/LibreMetaverse/linden/character/upperbodyfreckles_alpha.tga differ diff --git a/LibreMetaverse/linden/keywords_lsl_default.xml b/LibreMetaverse/linden/keywords_lsl_default.xml new file mode 100644 index 0000000..893b017 --- /dev/null +++ b/LibreMetaverse/linden/keywords_lsl_default.xml @@ -0,0 +1,19152 @@ + + + + controls + + do + + tooltip + do / while loop\ndo {\n...\n} while (<condition>); + + else + + tooltip + if / else block\nif (<condition>) {\n...\n[} else [if (<condition>) {\n...]]\n} + + for + + tooltip + for loop\nfor (<initializer>; <condition>; <post-iteration-statement>)\n{ ...\n} + + if + + tooltip + if / else block\nif (<condition>) {\n...\n[} else [if (<condition>) {\n...]]\n} + + jump + + tooltip + jump statement\njump <label> + + return + + tooltip + Leave current event or function.\nreturn [<variable>];\nOptionally pass back a variable's value, from a function. + + state + + tooltip + state <target>\nIf the target state is not the same as the current one, change to the target state. + + while + + tooltip + while loop\nwhile (<condition>) {\n,,,\n} + + + types + + float + + tooltip + 32 bit floating point value.\nThe range is 1.175494351E-38 to 3.402823466E+38. + + integer + + tooltip + 32 bit integer value.\n−2,147,483,648 and +2,147,483,647 (that is 0x80000000 to 0x7FFFFFFF in hex). + + key + + tooltip + A 128 bit unique identifier (UUID).\nThe key is represented as hexidecimal characters (A-F and 0-9), grouped into sections (8,4,4,4,12 characters) and separated by hyphens (for a total of 36 characters). e.g. "A822FF2B-FF02-461D-B45D-DCD10A2DE0C2". + + list + + tooltip + A collection of other data types.\nLists are signified by square brackets surrounding their elements; the elements inside are separated by commas. e.g. [0, 1, 2, 3, 4] or ["Yes", "No", "Perhaps"]. + + quaternion + + tooltip + The quaternion type is a left over from way back when LSL was created. It was later renamed to <rotation> to make it more user friendly, but it appears someone forgot to remove it ;-) + + rotation + + tooltip + The rotation type is one of several ways to represent an orientation in 3D.\nIt is a mathematical object called a quaternion. You can think of a quaternion as four numbers (x, y, z, w), three of which represent the direction an object is facing and a fourth that represents the object's banking left or right around that direction. + + string + + tooltip + Text data.\nThe editor accepts UTF-8 encoded text. + + vector + + tooltip + A vector is a data type that contains a set of three float values.\nVectors are used to represent colors (RGB), positions, and directions/velocities. + + + constants + + ACTIVE + + type + integer + value + 0x2 + tooltip + Objects in world that are running a script or currently physically moving. + + AGENT + + type + integer + value + 0x1 + tooltip + Objects in world that are agents. + + AGENT_ALWAYS_RUN + + type + integer + value + 0x1000 + tooltip + + + AGENT_ATTACHMENTS + + type + integer + value + 0x2 + tooltip + The agent has attachments. + + AGENT_AUTOPILOT + + type + integer + value + 0x2000 + tooltip + + + AGENT_AWAY + + type + integer + value + 0x40 + tooltip + + + AGENT_BUSY + + type + integer + value + 0x800 + tooltip + + + AGENT_BY_LEGACY_NAME + + type + integer + value + 0x1 + tooltip + + + AGENT_BY_USERNAME + + type + integer + value + 0x10 + tooltip + + + AGENT_CROUCHING + + type + integer + value + 0x400 + tooltip + + + AGENT_FLYING + + type + integer + value + 0x1 + tooltip + The agent is flying. + + AGENT_IN_AIR + + type + integer + value + 0x100 + tooltip + + + AGENT_LIST_PARCEL + + type + integer + value + 1 + tooltip + Agents on the same parcel where the script is running. + + AGENT_LIST_PARCEL_OWNER + + type + integer + value + 2 + tooltip + Agents on any parcel in the region where the parcel owner is the same as the owner of the parcel under the scripted object. + + AGENT_LIST_REGION + + type + integer + value + 4 + tooltip + All agents in the region. + + AGENT_MOUSELOOK + + type + integer + value + 0x8 + tooltip + + + AGENT_ON_OBJECT + + type + integer + value + 0x20 + tooltip + + + AGENT_SCRIPTED + + type + integer + value + 0x4 + tooltip + The agent has scripted attachments. + + AGENT_SITTING + + type + integer + value + 0x10 + tooltip + + + AGENT_TYPING + + type + integer + value + 0x200 + tooltip + + + AGENT_WALKING + + type + integer + value + 0x80 + tooltip + + + ALL_SIDES + + type + integer + value + -1 + tooltip + + + ANIM_ON + + type + integer + value + 0x1 + tooltip + Texture animation is on. + + ATTACH_AVATAR_CENTER + + type + integer + value + 40 + tooltip + Attach to the avatar's geometric centre. + + ATTACH_BACK + + type + integer + value + 9 + tooltip + Attach to the avatar's back. + + ATTACH_BELLY + + type + integer + value + 28 + tooltip + Attach to the avatar's belly. + + ATTACH_CHEST + + type + integer + value + 1 + tooltip + Attach to the avatar's chest. + + ATTACH_CHIN + + type + integer + value + 12 + tooltip + Attach to the avatar's chin. + + ATTACH_HEAD + + type + integer + value + 2 + tooltip + Attach to the avatar's head. + + ATTACH_HUD_BOTTOM + + type + integer + value + 37 + tooltip + + + ATTACH_HUD_BOTTOM_LEFT + + type + integer + value + 36 + tooltip + + + ATTACH_HUD_BOTTOM_RIGHT + + type + integer + value + 38 + tooltip + + + ATTACH_HUD_CENTER_1 + + type + integer + value + 35 + tooltip + + + ATTACH_HUD_CENTER_2 + + type + integer + value + 31 + tooltip + + + ATTACH_HUD_TOP_CENTER + + type + integer + value + 33 + tooltip + + + ATTACH_HUD_TOP_LEFT + + type + integer + value + 34 + tooltip + + + ATTACH_HUD_TOP_RIGHT + + type + integer + value + 32 + tooltip + + + ATTACH_LEAR + + type + integer + value + 13 + tooltip + Attach to the avatar's left ear. + + ATTACH_LEFT_PEC + + type + integer + value + 29 + tooltip + Attach to the avatar's left pectoral. + + ATTACH_LEYE + + type + integer + value + 15 + tooltip + Attach to the avatar's left eye. + + ATTACH_LFOOT + + type + integer + value + 7 + tooltip + Attach to the avatar's left foot. + + ATTACH_LHAND + + type + integer + value + 5 + tooltip + Attach to the avatar's left hand. + + ATTACH_LHIP + + type + integer + value + 25 + tooltip + Attach to the avatar's left hip. + + ATTACH_LLARM + + type + integer + value + 21 + tooltip + Attach to the avatar's left lower arm. + + ATTACH_LLLEG + + type + integer + value + 27 + tooltip + Attach to the avatar's lower left leg. + + ATTACH_LPEC + + deprecated + true + type + integer + value + 30 + tooltip + Attach to the avatar's right pectoral. (Deprecated, use ATTACH_RIGHT_PEC) + + ATTACH_LSHOULDER + + type + integer + value + 3 + tooltip + Attach to the avatar's left shoulder. + + ATTACH_LUARM + + type + integer + value + 20 + tooltip + Attach to the avatar's left upper arm. + + ATTACH_LULEG + + type + integer + value + 26 + tooltip + Attach to the avatar's lower upper leg. + + ATTACH_MOUTH + + type + integer + value + 11 + tooltip + Attach to the avatar's mouth. + + ATTACH_NECK + + type + integer + value + 39 + tooltip + Attach to the avatar's neck. + + ATTACH_NOSE + + type + integer + value + 17 + tooltip + Attach to the avatar's nose. + + ATTACH_PELVIS + + type + integer + value + 10 + tooltip + Attach to the avatar's pelvis. + + ATTACH_REAR + + type + integer + value + 14 + tooltip + Attach to the avatar's right ear. + + ATTACH_REYE + + type + integer + value + 16 + tooltip + Attach to the avatar's right eye. + + ATTACH_RFOOT + + type + integer + value + 8 + tooltip + Attach to the avatar's right foot. + + ATTACH_RHAND + + type + integer + value + 6 + tooltip + Attach to the avatar's right hand. + + ATTACH_RHIP + + type + integer + value + 22 + tooltip + Attach to the avatar's right hip. + + ATTACH_RIGHT_PEC + + type + integer + value + 30 + tooltip + Attach to the avatar's right pectoral. + + ATTACH_RLARM + + type + integer + value + 19 + tooltip + Attach to the avatar's right lower arm. + + ATTACH_RLLEG + + type + integer + value + 24 + tooltip + Attach to the avatar's right lower leg. + + ATTACH_RPEC + + deprecated + true + type + integer + value + 29 + tooltip + Attach to the avatar's left pectoral. (deprecated, use ATTACH_LEFT_PEC) + + ATTACH_RSHOULDER + + type + integer + value + 4 + tooltip + Attach to the avatar's right shoulder. + + ATTACH_RUARM + + type + integer + value + 18 + tooltip + Attach to the avatar's right upper arm. + + ATTACH_RULEG + + type + integer + value + 23 + tooltip + Attach to the avatar's right upper leg. + + ATTACH_LHAND_RING1 + + type + integer + value + 41 + tooltip + Attach to the avatar's left ring finger. + + ATTACH_RHAND_RING1 + + type + integer + value + 42 + tooltip + Attach to the avatar's right ring finger. + + ATTACH_TAIL_BASE + + type + integer + value + 43 + tooltip + Attach to the avatar's tail base. + + ATTACH_TAIL_TIP + + type + integer + value + 44 + tooltip + Attach to the avatar's tail tip. + + ATTACH_LWING + + type + integer + value + 45 + tooltip + Attach to the avatar's left wing. + + ATTACH_RWING + + type + integer + value + 46 + tooltip + Attach to the avatar's right wing. + + ATTACH_FACE_JAW + + type + integer + value + 47 + tooltip + Attach to the avatar's jaw. + + ATTACH_FACE_LEAR + + type + integer + value + 48 + tooltip + Attach to the avatar's left ear (extended). + + ATTACH_FACE_REAR + + type + integer + value + 49 + tooltip + Attach to the avatar's right ear (extended). + + ATTACH_FACE_LEYE + + type + integer + value + 50 + tooltip + Attach to the avatar's left eye (extended). + + ATTACH_FACE_REYE + + type + integer + value + 51 + tooltip + Attach to the avatar's right eye (extended). + + ATTACH_FACE_TONGUE + + type + integer + value + 52 + tooltip + Attach to the avatar's tongue. + + ATTACH_GROIN + + type + integer + value + 53 + tooltip + Attach to the avatar's groin. + + ATTACH_HIND_LFOOT + + type + integer + value + 54 + tooltip + Attach to the avatar's left hind foot. + + ATTACH_HIND_RFOOT + + type + integer + value + 55 + tooltip + Attach to the avatar's right hind foot. + + AVOID_CHARACTERS + + type + integer + value + 1 + tooltip + + + AVOID_DYNAMIC_OBSTACLES + + type + integer + value + 2 + tooltip + + + AVOID_NONE + + type + integer + value + 0 + tooltip + + + CAMERA_ACTIVE + + type + integer + value + 12 + tooltip + + + CAMERA_BEHINDNESS_ANGLE + + type + integer + value + 8 + tooltip + + + CAMERA_BEHINDNESS_LAG + + type + integer + value + 9 + tooltip + + + CAMERA_DISTANCE + + type + integer + value + 7 + tooltip + + + CAMERA_FOCUS + + type + integer + value + 17 + tooltip + + + CAMERA_FOCUS_LAG + + type + integer + value + 6 + tooltip + + + CAMERA_FOCUS_LOCKED + + type + integer + value + 22 + tooltip + + + CAMERA_FOCUS_OFFSET + + type + integer + value + 1 + tooltip + + + CAMERA_FOCUS_THRESHOLD + + type + integer + value + 11 + tooltip + + + CAMERA_PITCH + + type + integer + value + 0 + tooltip + + + CAMERA_POSITION + + type + integer + value + 13 + tooltip + + + CAMERA_POSITION_LAG + + type + integer + value + 5 + tooltip + + + CAMERA_POSITION_LOCKED + + type + integer + value + 21 + tooltip + + + CAMERA_POSITION_THRESHOLD + + type + integer + value + 10 + tooltip + + + CHANGED_ALLOWED_DROP + + type + integer + value + 0x40 + tooltip + The object inventory has changed because an item was added through the llAllowInventoryDrop interface. + + CHANGED_COLOR + + type + integer + value + 0x2 + tooltip + The object color has changed. + + CHANGED_INVENTORY + + type + integer + value + 0x1 + tooltip + The object inventory has changed. + + CHANGED_LINK + + type + integer + value + 0x20 + tooltip + The object has linked or its links were broken. + + CHANGED_MEDIA + + type + integer + value + 0x800 + tooltip + + + CHANGED_OWNER + + type + integer + value + 0x80 + tooltip + + + CHANGED_REGION + + type + integer + value + 0x100 + tooltip + + + CHANGED_REGION_START + + type + integer + value + 0x400 + tooltip + + + CHANGED_SCALE + + type + integer + value + 0x8 + tooltip + The object scale (size) has changed. + + CHANGED_SHAPE + + type + integer + value + 0x4 + tooltip + The object base shape has changed, e.g., a box to a cylinder. + + CHANGED_TELEPORT + + type + integer + value + 0x200 + tooltip + + + CHANGED_TEXTURE + + type + integer + value + 0x10 + tooltip + The texture offset, scale rotation, or simply the object texture has changed. + + CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES + + type + integer + value + 14 + tooltip + If set to false, character will not attempt to catch up on lost time when pathfinding performance is low, potentially providing more reliable movement (albeit while potentially appearing to be more stuttery). Default is true to match pre-existing behavior. + + CHARACTER_AVOIDANCE_MODE + + type + integer + value + 5 + tooltip + Allows you to specify that a character should not try to avoid other characters, should not try to avoid dynamic obstacles (relatively fast moving objects and avatars), or both. + + CHARACTER_CMD_JUMP + + type + integer + value + 0x01 + tooltip + Makes the character jump. Requires an additional parameter, the height to jump, between 0.1m and 2.0m. This must be provided as the first element of the llExecCharacterCmd option list. + + CHARACTER_CMD_SMOOTH_STOP + + type + integer + value + 2 + tooltip + + + CHARACTER_CMD_STOP + + type + integer + value + 0x00 + tooltip + Stops any current pathfinding operation. + + CHARACTER_DESIRED_SPEED + + type + integer + value + 1 + tooltip + Speed of pursuit in meters per second. + + CHARACTER_DESIRED_TURN_SPEED + + type + integer + value + 12 + tooltip + The character's maximum speed while turning about the Z axis. - Note that this is only loosely enforced. + + CHARACTER_LENGTH + + type + integer + value + 3 + tooltip + Set collision capsule length - cannot be less than two times the radius. + + CHARACTER_MAX_ACCEL + + type + integer + value + 8 + tooltip + The character's maximum acceleration rate. + + CHARACTER_MAX_DECEL + + type + integer + value + 9 + tooltip + The character's maximum deceleration rate. + + CHARACTER_MAX_SPEED + + type + integer + value + 13 + tooltip + The character's maximum speed. + + CHARACTER_MAX_TURN_RADIUS + + type + integer + value + 10 + tooltip + The character's turn radius when travelling at CHARACTER_MAX_TURN_SPEED. + + CHARACTER_ORIENTATION + + type + integer + value + 4 + tooltip + Valid options are: VERTICAL, HORIZONTAL. + + CHARACTER_RADIUS + + type + integer + value + 2 + tooltip + Set collision capsule radius. + + CHARACTER_STAY_WITHIN_PARCEL + + type + integer + value + 15 + tooltip + Determines whether a character can leave its starting parcel.\nTakes a boolean parameter. If TRUE, the character cannot voluntarilly leave the parcel, but can return to it. + + CHARACTER_TYPE + + type + integer + value + 6 + tooltip + Specifies which walk-ability coefficient will be used by this character. + + CHARACTER_TYPE_A + + type + integer + value + 0 + tooltip + + + CHARACTER_TYPE_B + + type + integer + value + 1 + tooltip + + + CHARACTER_TYPE_C + + type + integer + value + 2 + tooltip + + + CHARACTER_TYPE_D + + type + integer + value + 3 + tooltip + + + CHARACTER_TYPE_NONE + + type + integer + value + 4 + tooltip + + + CLICK_ACTION_BUY + + type + integer + value + 2 + tooltip + When the prim is clicked, the buy dialog is opened. + + CLICK_ACTION_NONE + + type + integer + value + 0 + tooltip + Performs the default action: when the prim is clicked, touch events are triggered. + + CLICK_ACTION_OPEN + + type + integer + value + 4 + tooltip + When the prim is clicked, the object inventory dialog is opened. + + CLICK_ACTION_OPEN_MEDIA + + type + integer + value + 6 + tooltip + When the prim is touched, the web media dialog is opened. + + CLICK_ACTION_PAY + + type + integer + value + 3 + tooltip + When the prim is clicked, the pay dialog is opened. + + CLICK_ACTION_PLAY + + type + integer + value + 5 + tooltip + When the prim is clicked, html-on-a-prim is enabled? + + CLICK_ACTION_SIT + + type + integer + value + 1 + tooltip + When the prim is clicked, the avatar sits upon it. + + CLICK_ACTION_TOUCH + + type + integer + value + 0 + tooltip + When the prim is clicked, touch events are triggered. + + CONTENT_TYPE_ATOM + + type + integer + value + 4 + tooltip + "application/atom+xml" + + CONTENT_TYPE_FORM + + type + integer + value + 7 + tooltip + "application/x-www-form-urlencoded" + + CONTENT_TYPE_HTML + + type + integer + value + 1 + tooltip + "text/html", only valid for embedded browsers on content owned by the person viewing. Falls back to "text/plain" otherwise. + + CONTENT_TYPE_JSON + + type + integer + value + 5 + tooltip + "application/json" + + CONTENT_TYPE_LLSD + + type + integer + value + 6 + tooltip + "application/llsd+xml" + + CONTENT_TYPE_RSS + + type + integer + value + 8 + tooltip + "application/rss+xml" + + CONTENT_TYPE_TEXT + + type + integer + value + 0 + tooltip + "text/plain" + + CONTENT_TYPE_XHTML + + type + integer + value + 3 + tooltip + "application/xhtml+xml" + + CONTENT_TYPE_XML + + type + integer + value + 2 + tooltip + "application/xml" + + CONTROL_BACK + + type + integer + value + 0x2 + tooltip + Test for the avatar move back control. + + CONTROL_DOWN + + type + integer + value + 0x20 + tooltip + Test for the avatar move down control. + + CONTROL_FWD + + type + integer + value + 0x1 + tooltip + Test for the avatar move forward control. + + CONTROL_LBUTTON + + type + integer + value + 0x10000000 + tooltip + Test for the avatar left button control. + + CONTROL_LEFT + + type + integer + value + 0x4 + tooltip + Test for the avatar move left control. + + CONTROL_ML_LBUTTON + + type + integer + value + 0x40000000 + tooltip + Test for the avatar left button control while in mouse look. + + CONTROL_RIGHT + + type + integer + value + 0x8 + tooltip + Test for the avatar move right control. + + CONTROL_ROT_LEFT + + type + integer + value + 0x100 + tooltip + Test for the avatar rotate left control. + + CONTROL_ROT_RIGHT + + type + integer + value + 0x200 + tooltip + Test for the avatar rotate right control. + + CONTROL_UP + + type + integer + value + 0x10 + tooltip + Test for the avatar move up control. + + DATA_BORN + + type + integer + value + 3 + tooltip + The date the agent was born, returned in ISO 8601 format of YYYY-MM-DD. + + DATA_NAME + + type + integer + value + 2 + tooltip + The name of the agent. + + DATA_ONLINE + + type + integer + value + 1 + tooltip + TRUE for online, FALSE for offline. + + DATA_PAYINFO + + type + integer + value + 8 + tooltip + + + DATA_RATING + + type + integer + value + 4 + tooltip + Returns the agent ratings as a comma separated string of six integers. They are: + 1) Positive rated behaviour + 2) Negative rated behaviour + 3) Positive rated appearance + 4) Negative rated appearance + 5) Positive rated building + 6) Negative rated building + + DATA_SIM_POS + + type + integer + value + 5 + tooltip + + + DATA_SIM_RATING + + type + integer + value + 7 + tooltip + + + DATA_SIM_STATUS + + type + integer + value + 6 + tooltip + + + DEBUG_CHANNEL + + type + integer + value + 2147483647 + tooltip + DEBUG_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the Script Warning/Error Window. + + DEG_TO_RAD + + type + float + value + 0.017453293 + tooltip + 0.017453293 - Number of radians per degree. + You can use this to convert degrees to radians by multiplying the degrees by this number. + + DENSITY + + type + integer + value + 1 + tooltip + Used with llSetPhysicsMaterial to enable the density value. Must be between 1.0 and 22587.0 (in Kg/m^3 -- see if you can figure out what 22587 represents) + + EOF + + type + string + value + \\n\\n\\n + tooltip + Indicates the last line of a notecard was read. + + ERR_GENERIC + + type + integer + value + -1 + tooltip + + + ERR_MALFORMED_PARAMS + + type + integer + value + -3 + tooltip + + + ERR_PARCEL_PERMISSIONS + + type + integer + value + -2 + tooltip + + + ERR_RUNTIME_PERMISSIONS + + type + integer + value + -4 + tooltip + + + ERR_THROTTLED + + type + integer + value + -5 + tooltip + + + ESTATE_ACCESS_ALLOWED_AGENT_ADD + + type + integer + value + 4 + tooltip + Add the agent to this estate's Allowed Residents list. + + ESTATE_ACCESS_ALLOWED_AGENT_REMOVE + + type + integer + value + 8 + tooltip + Remove the agent from this estate's Allowed Residents list. + + ESTATE_ACCESS_ALLOWED_GROUP_ADD + + type + integer + value + 16 + tooltip + Add the group to this estate's Allowed groups list. + + ESTATE_ACCESS_ALLOWED_GROUP_REMOVE + + type + integer + value + 32 + tooltip + Remove the group from this estate's Allowed groups list. + + ESTATE_ACCESS_BANNED_AGENT_ADD + + type + integer + value + 64 + tooltip + Add the agent to this estate's Banned residents list. + + ESTATE_ACCESS_BANNED_AGENT_REMOVE + + type + integer + value + 128 + tooltip + Remove the agent from this estate's Banned residents list. + + FALSE + + type + integer + value + 0 + tooltip + An integer constant for boolean comparisons. Has the value '0'. + + FORCE_DIRECT_PATH + + type + integer + value + 1 + tooltip + Makes character navigate in a straight line toward position. May be set to TRUE or FALSE. + + FRICTION + + type + integer + value + 2 + tooltip + Used with llSetPhysicsMaterial to enable the friction value. Must be between 0.0 and 255.0 + + GCNP_RADIUS + + type + integer + value + 0 + tooltip + + + GCNP_STATIC + + type + integer + value + 1 + tooltip + + + GRAVITY_MULTIPLIER + + type + integer + value + 8 + tooltip + Used with llSetPhysicsMaterial to enable the gravity multiplier value. Must be between -1.0 and +28.0 + + HORIZONTAL + + type + integer + value + 1 + tooltip + + + HTTP_BODY_MAXLENGTH + + type + integer + value + 2 + tooltip + + + HTTP_BODY_TRUNCATED + + type + integer + value + 0 + tooltip + + + HTTP_CUSTOM_HEADER + + type + integer + value + 5 + tooltip + Add an extra custom HTTP header to the request. The first string is the name of the parameter to change, e.g. "Pragma", and the second string is the value, e.g. "no-cache". Up to 8 custom headers may be configured per request. Note that certain headers, such as the default headers, are blocked for security reasons. + + HTTP_METHOD + + type + integer + value + 0 + tooltip + + + HTTP_MIMETYPE + + type + integer + value + 1 + tooltip + + + HTTP_PRAGMA_NO_CACHE + + type + integer + value + 6 + tooltip + Allows enabling/disbling of the "Pragma: no-cache" header.\nUsage: [HTTP_PRAGMA_NO_CACHE, integer SendHeader]. When SendHeader is TRUE, the "Pragma: no-cache" header is sent by the script. This matches the default behavior. When SendHeader is FALSE, no "Pragma" header is sent by the script. + + HTTP_VERBOSE_THROTTLE + + type + integer + value + 4 + tooltip + + + HTTP_VERIFY_CERT + + type + integer + value + 3 + tooltip + + + INVENTORY_ALL + + type + integer + value + -1 + tooltip + + + INVENTORY_ANIMATION + + type + integer + value + 20 + tooltip + + + INVENTORY_BODYPART + + type + integer + value + 13 + tooltip + + + INVENTORY_CLOTHING + + type + integer + value + 5 + tooltip + + + INVENTORY_GESTURE + + type + integer + value + 21 + tooltip + + + INVENTORY_LANDMARK + + type + integer + value + 3 + tooltip + + + INVENTORY_NONE + + type + integer + value + -1 + tooltip + + + INVENTORY_NOTECARD + + type + integer + value + 7 + tooltip + + + INVENTORY_OBJECT + + type + integer + value + 6 + tooltip + + + INVENTORY_SCRIPT + + type + integer + value + 10 + tooltip + + + INVENTORY_SOUND + + type + integer + value + 1 + tooltip + + + INVENTORY_TEXTURE + + type + integer + value + 0 + tooltip + + + INVENTORY_MATERIAL + + type + integer + value + 57 + tooltip + + + JSON_APPEND + + type + integer + value + -1 + tooltip + + + JSON_ARRAY + + type + string + value + U+FDD2 + tooltip + + + JSON_DELETE + + type + string + value + U+FDD8 + tooltip + + + JSON_FALSE + + type + string + value + U+FDD7 + tooltip + + + JSON_INVALID + + type + string + value + U+FDD0 + tooltip + + + JSON_NULL + + type + string + value + U+FDD5 + tooltip + + + JSON_NUMBER + + type + string + value + U+FDD3 + tooltip + + + JSON_OBJECT + + type + string + value + U+FDD1 + tooltip + + + JSON_STRING + + type + string + value + U+FDD4 + tooltip + + + JSON_TRUE + + type + string + value + U+FDD6 + tooltip + + + KFM_CMD_PAUSE + + type + integer + value + 2 + tooltip + For use with KFM_COMMAND. + + KFM_CMD_PLAY + + type + integer + value + 0 + tooltip + For use with KFM_COMMAND. + + KFM_CMD_STOP + + type + integer + value + 1 + tooltip + For use with KFM_COMMAND. + + KFM_COMMAND + + type + integer + value + 0 + tooltip + + + KFM_DATA + + type + integer + value + 2 + tooltip + + + KFM_FORWARD + + type + integer + value + 0 + tooltip + For use with KFM_MODE. + + KFM_LOOP + + type + integer + value + 1 + tooltip + For use with KFM_MODE. + + KFM_MODE + + type + integer + value + 1 + tooltip + + + KFM_PING_PONG + + type + integer + value + 2 + tooltip + For use with KFM_MODE. + + KFM_REVERSE + + type + integer + value + 3 + tooltip + For use with KFM_MODE. + + KFM_ROTATION + + type + integer + value + 1 + tooltip + For use with KFM_DATA. + + KFM_TRANSLATION + + type + integer + value + 2 + tooltip + For use with KFM_DATA. + + LAND_LARGE_BRUSH + + type + integer + value + 3 + tooltip + Use a large brush size.\nNOTE: This value is incorrect, a large brush should be 2. + + LAND_LEVEL + + type + integer + value + 0 + tooltip + Action to level the land. + + LAND_LOWER + + type + integer + value + 2 + tooltip + Action to lower the land. + + LAND_MEDIUM_BRUSH + + type + integer + value + 2 + tooltip + Use a medium brush size.\nNOTE: This value is incorrect, a medium brush should be 1. + + LAND_NOISE + + type + integer + value + 4 + tooltip + + + LAND_RAISE + + type + integer + value + 1 + tooltip + Action to raise the land. + + LAND_REVERT + + type + integer + value + 5 + tooltip + + + LAND_SMALL_BRUSH + + type + integer + value + 1 + tooltip + Use a small brush size.\nNOTE: This value is incorrect, a small brush should be 0. + + LAND_SMOOTH + + type + integer + value + 3 + tooltip + + + LINK_ALL_CHILDREN + + type + integer + value + -3 + tooltip + This targets every object except the root in the linked set. + + LINK_ALL_OTHERS + + type + integer + value + -2 + tooltip + This targets every object in the linked set except the object with the script. + + LINK_ROOT + + type + integer + value + 1 + tooltip + This targets the root of the linked set. + + LINK_SET + + type + integer + value + -1 + tooltip + This targets every object in the linked set. + + LINK_THIS + + type + integer + value + -4 + tooltip + The link number of the prim containing the script. + + LIST_STAT_GEOMETRIC_MEAN + + type + integer + value + 9 + tooltip + + + LIST_STAT_MAX + + type + integer + value + 2 + tooltip + + + LIST_STAT_MEAN + + type + integer + value + 3 + tooltip + + + LIST_STAT_MEDIAN + + type + integer + value + 4 + tooltip + + + LIST_STAT_MIN + + type + integer + value + 1 + tooltip + + + LIST_STAT_NUM_COUNT + + type + integer + value + 8 + tooltip + + + LIST_STAT_RANGE + + type + integer + value + 0 + tooltip + + + LIST_STAT_STD_DEV + + type + integer + value + 5 + tooltip + + + LIST_STAT_SUM + + type + integer + value + 6 + tooltip + + + LIST_STAT_SUM_SQUARES + + type + integer + value + 7 + tooltip + + + LOOP + + type + integer + value + 0x2 + tooltip + Loop the texture animation. + + MASK_BASE + + type + integer + value + 0 + tooltip + + + MASK_EVERYONE + + type + integer + value + 3 + tooltip + + + MASK_GROUP + + type + integer + value + 2 + tooltip + + + MASK_NEXT + + type + integer + value + 4 + tooltip + + + MASK_OWNER + + type + integer + value + 1 + tooltip + + + NULL_KEY + + type + string + value + 00000000-0000-0000-0000-000000000000 + tooltip + + + OBJECT_ATTACHED_POINT + + type + integer + value + 19 + tooltip + Gets the attachment point to which the object is attached.\nReturns 0 if the object is not an attachment (or is an avatar, etc). + + OBJECT_BODY_SHAPE_TYPE + + type + integer + value + 26 + tooltip + This is a flag used with llGetObjectDetails to get the body type of the avatar, based on shape data.\nIf no data is available, -1.0 is returned.\nThis is normally between 0 and 1.0, with 0.5 and larger considered 'male' + + OBJECT_CHARACTER_TIME + + type + integer + value + 17 + tooltip + Units in seconds + + OBJECT_CLICK_ACTION + + type + integer + value + 28 + tooltip + This is a flag used with llGetObjectDetails to get the click action.\nThe default is 0 + + OBJECT_CREATOR + + type + integer + value + 8 + tooltip + Gets the object's creator key. If id is an avatar, a NULL_KEY is returned. + + OBJECT_DESC + + type + integer + value + 2 + tooltip + Gets the object's description. If id is an avatar, an empty string is returned. + + OBJECT_GROUP + + type + integer + value + 7 + tooltip + Gets the prims's group key. If id is an avatar, a NULL_KEY is returned. + + OBJECT_HOVER_HEIGHT + + type + integer + value + 25 + tooltip + This is a flag used with llGetObjectDetails to get hover height of the avatar\nIf no data is available, 0.0 is returned. + + OBJECT_LAST_OWNER_ID + + type + integer + value + 27 + tooltip + Gets the object's last owner ID. + + OBJECT_NAME + + type + integer + value + 1 + tooltip + Gets the object's name. + + OBJECT_OMEGA + + type + integer + value + 29 + tooltip + Gets an object's angular velocity. + + OBJECT_OWNER + + type + integer + value + 6 + tooltip + Gets an object's owner's key. If id is group owned, a NULL_KEY is returned. + + OBJECT_PRIM_COUNT + + type + integer + value + 30 + tooltip + Gets the prim count of the object. The script and target object must be owned by the same owner + + OBJECT_PATHFINDING_TYPE + + type + integer + value + 20 + tooltip + Returns the pathfinding setting of any object in the region. It returns an integer matching one of the OPT_* constants. + + OBJECT_PHANTOM + + type + integer + value + 22 + tooltip + Returns boolean, detailing if phantom is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned. + + OBJECT_PHYSICS + + type + integer + value + 21 + tooltip + Returns boolean, detailing if physics is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned. + + OBJECT_PHYSICS_COST + + type + integer + value + 16 + tooltip + + + OBJECT_POS + + type + integer + value + 3 + tooltip + Gets the object's position in region coordinates. + + OBJECT_PRIM_EQUIVALENCE + + type + integer + value + 13 + tooltip + + + OBJECT_RENDER_WEIGHT + + type + integer + value + 24 + tooltip + This is a flag used with llGetObjectDetails to get the Avatar_Rendering_Cost of an avatar, based on values reported by nearby viewers.\nIf no data is available, -1 is returned.\nThe maximum render weight stored by the simulator is 500000. When called against an object, 0 is returned. + + OBJECT_RETURN_PARCEL + + type + integer + value + 1 + tooltip + + + OBJECT_RETURN_PARCEL_OWNER + + type + integer + value + 2 + tooltip + + + OBJECT_RETURN_REGION + + type + integer + value + 4 + tooltip + + + OBJECT_REZZER_KEY + + type + integer + value + 32 + tooltip + + + OBJECT_ROOT + + type + integer + value + 18 + tooltip + Gets the id of the root prim of the object requested.\nIf id is an avatar, return the id of the root prim of the linkset the avatar is sitting on (or the avatar's own id if the avatar is not sitting on an object within the region). + + OBJECT_ROT + + type + integer + value + 4 + tooltip + Gets the object's rotation. + + OBJECT_RUNNING_SCRIPT_COUNT + + type + integer + value + 9 + tooltip + + + OBJECT_SCRIPT_MEMORY + + type + integer + value + 11 + tooltip + + + OBJECT_SCRIPT_TIME + + type + integer + value + 12 + tooltip + + + OBJECT_SERVER_COST + + type + integer + value + 14 + tooltip + + + OBJECT_STREAMING_COST + + type + integer + value + 15 + tooltip + + + OBJECT_TEMP_ON_REZ + + type + integer + value + 23 + tooltip + Returns boolean, detailing if temporary is enabled or disabled on the object. + + OBJECT_TOTAL_INVENTORY_COUNT + + type + integer + value + 31 + tooltip + Gets the total inventory count of the object. The script and target object must be owned by the same owner + + OBJECT_TOTAL_SCRIPT_COUNT + + type + integer + value + 10 + tooltip + + + OBJECT_UNKNOWN_DETAIL + + type + integer + value + -1 + tooltip + + + OBJECT_VELOCITY + + type + integer + value + 5 + tooltip + Gets the object's velocity. + + OPT_AVATAR + + type + integer + value + 1 + tooltip + Returned for avatars. + + OPT_CHARACTER + + type + integer + value + 2 + tooltip + Returned for pathfinding characters. + + OPT_EXCLUSION_VOLUME + + type + integer + value + 6 + tooltip + Returned for exclusion volumes. + + OPT_LEGACY_LINKSET + + type + integer + value + 0 + tooltip + Returned for movable obstacles, movable phantoms, physical, and volumedetect objects. + + OPT_MATERIAL_VOLUME + + type + integer + value + 5 + tooltip + Returned for material volumes. + + OPT_OTHER + + type + integer + value + -1 + tooltip + Returned for attachments, Linden trees, and grass. + + OPT_STATIC_OBSTACLE + + type + integer + value + 4 + tooltip + Returned for static obstacles. + + OPT_WALKABLE + + type + integer + value + 3 + tooltip + Returned for walkable objects. + + PARCEL_COUNT_GROUP + + type + integer + value + 2 + tooltip + + + PARCEL_COUNT_OTHER + + type + integer + value + 3 + tooltip + + + PARCEL_COUNT_OWNER + + type + integer + value + 1 + tooltip + + + PARCEL_COUNT_SELECTED + + type + integer + value + 4 + tooltip + + + PARCEL_COUNT_TEMP + + type + integer + value + 5 + tooltip + + + PARCEL_COUNT_TOTAL + + type + integer + value + 0 + tooltip + + + PARCEL_DETAILS_AREA + + type + integer + value + 4 + tooltip + The parcel's area, in square meters. (5 chars.). + + PARCEL_DETAILS_DESC + + type + integer + value + 1 + tooltip + The description of the parcel. (127 chars). + + PARCEL_DETAILS_GROUP + + type + integer + value + 3 + tooltip + The parcel group's key. (36 chars.). + + PARCEL_DETAILS_ID + + type + integer + value + 5 + tooltip + The parcel's key. (36 chars.). + + PARCEL_DETAILS_NAME + + type + integer + value + 0 + tooltip + The name of the parcel. (63 chars.). + + PARCEL_DETAILS_OWNER + + type + integer + value + 2 + tooltip + The parcel owner's key. (36 chars.). + + PARCEL_DETAILS_SEE_AVATARS + + type + integer + value + 6 + tooltip + The parcel's avatar visibility setting. (1 char.). + + PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY + + type + integer + value + 0x08000000 + tooltip + + + PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS + + type + integer + value + 0x4000000 + tooltip + + + PARCEL_FLAG_ALLOW_CREATE_OBJECTS + + type + integer + value + 0x40 + tooltip + + + PARCEL_FLAG_ALLOW_DAMAGE + + type + integer + value + 0x20 + tooltip + + + PARCEL_FLAG_ALLOW_FLY + + type + integer + value + 0x1 + tooltip + + + PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY + + type + integer + value + 0x10000000 + tooltip + + + PARCEL_FLAG_ALLOW_GROUP_SCRIPTS + + type + integer + value + 0x2000000 + tooltip + + + PARCEL_FLAG_ALLOW_LANDMARK + + type + integer + value + 0x8 + tooltip + + + PARCEL_FLAG_ALLOW_SCRIPTS + + type + integer + value + 0x2 + tooltip + + + PARCEL_FLAG_ALLOW_TERRAFORM + + type + integer + value + 0x10 + tooltip + + + PARCEL_FLAG_LOCAL_SOUND_ONLY + + type + integer + value + 0x8000 + tooltip + + + PARCEL_FLAG_RESTRICT_PUSHOBJECT + + type + integer + value + 0x200000 + tooltip + + + PARCEL_FLAG_USE_ACCESS_GROUP + + type + integer + value + 0x100 + tooltip + + + PARCEL_FLAG_USE_ACCESS_LIST + + type + integer + value + 0x200 + tooltip + + + PARCEL_FLAG_USE_BAN_LIST + + type + integer + value + 0x400 + tooltip + + + PARCEL_FLAG_USE_LAND_PASS_LIST + + type + integer + value + 0x800 + tooltip + + + PARCEL_MEDIA_COMMAND_AGENT + + type + integer + value + 7 + tooltip + + + PARCEL_MEDIA_COMMAND_AUTO_ALIGN + + type + integer + value + 9 + tooltip + + + PARCEL_MEDIA_COMMAND_DESC + + type + integer + value + 12 + tooltip + Use this to get or set the parcel media description. + + PARCEL_MEDIA_COMMAND_LOOP + + type + integer + value + 3 + tooltip + + + PARCEL_MEDIA_COMMAND_LOOP_SET + + type + integer + value + 13 + tooltip + Used to get or set the parcel's media looping variable. + + PARCEL_MEDIA_COMMAND_PAUSE + + type + integer + value + 1 + tooltip + + + PARCEL_MEDIA_COMMAND_PLAY + + type + integer + value + 2 + tooltip + + + PARCEL_MEDIA_COMMAND_SIZE + + type + integer + value + 11 + tooltip + Use this to get or set the parcel media pixel resolution. + + PARCEL_MEDIA_COMMAND_STOP + + type + integer + value + 0 + tooltip + + + PARCEL_MEDIA_COMMAND_TEXTURE + + type + integer + value + 4 + tooltip + + + PARCEL_MEDIA_COMMAND_TIME + + type + integer + value + 6 + tooltip + + + PARCEL_MEDIA_COMMAND_TYPE + + type + integer + value + 10 + tooltip + Use this to get or set the parcel media MIME type (e.g. "text/html"). + + PARCEL_MEDIA_COMMAND_UNLOAD + + type + integer + value + 8 + tooltip + + + PARCEL_MEDIA_COMMAND_URL + + type + integer + value + 5 + tooltip + + + PASS_ALWAYS + + type + integer + value + 1 + tooltip + Always pass the event. + + PASS_NEVER + + type + integer + value + 2 + tooltip + Always pass the event. + + PASS_IF_NOT_HANDLED + + type + integer + value + 0 + tooltip + Pass the event if there is no script handling the event in the prim. + + PASSIVE + + type + integer + value + 0x4 + tooltip + Static in-world objects. + + PATROL_PAUSE_AT_WAYPOINTS + + type + integer + value + 0 + tooltip + + + PAY_DEFAULT + + type + integer + value + -2 + tooltip + + + PAY_HIDE + + type + integer + value + -1 + tooltip + + + PAYMENT_INFO_ON_FILE + + type + integer + value + 1 + tooltip + + + PAYMENT_INFO_USED + + type + integer + value + 2 + tooltip + + + PERM_ALL + + type + integer + value + 0x7FFFFFFF + tooltip + + + PERM_COPY + + type + integer + value + 0x8000 + tooltip + + + PERM_MODIFY + + type + integer + value + 0x4000 + tooltip + + + PERM_MOVE + + type + integer + value + 0x80000 + tooltip + + + PERM_TRANSFER + + type + integer + value + 0x2000 + tooltip + + + PERMISSION_ATTACH + + type + integer + value + 0x20 + tooltip + If this permission is enabled, the object can successfully call llAttachToAvatar to attach to the given avatar. + + PERMISSION_CHANGE_JOINTS + + type + integer + value + 0x100 + tooltip + (not yet implemented) + + PERMISSION_CHANGE_LINKS + + type + integer + value + 0x80 + tooltip + If this permission is enabled, the object can successfully call llCreateLink, llBreakLink, and llBreakAllLinks to change links to other objects. + + PERMISSION_CHANGE_PERMISSIONS + + type + integer + value + 0x200 + tooltip + (not yet implemented) + + PERMISSION_CONTROL_CAMERA + + type + integer + value + 0x800 + tooltip + + + PERMISSION_DEBIT + + type + integer + value + 0x2 + tooltip + If this permission is enabled, the object can successfully call llGiveMoney or llTransferLindenDollars to debit the owners account. + + PERMISSION_OVERRIDE_ANIMATIONS + + type + integer + value + 0x8000 + tooltip + Permission to override default animations. + + PERMISSION_RELEASE_OWNERSHIP + + type + integer + value + 0x40 + tooltip + (not yet implemented) + + PERMISSION_REMAP_CONTROLS + + type + integer + value + 0x8 + tooltip + (not yet implemented) + + PERMISSION_RETURN_OBJECTS + + type + integer + value + 65536 + tooltip + + + PERMISSION_SILENT_ESTATE_MANAGEMENT + + type + integer + value + 0x4000 + tooltip + A script with this permission does not notify the object owner when it modifies estate access rules via llManageEstateAccess. + + PERMISSION_TAKE_CONTROLS + + type + integer + value + 0x4 + tooltip + If this permission enabled, the object can successfully call the llTakeControls libray call. + + PERMISSION_TELEPORT + + type + integer + value + 0x1000 + tooltip + + + PERMISSION_TRACK_CAMERA + + type + integer + value + 0x400 + tooltip + + + PERMISSION_TRIGGER_ANIMATION + + type + integer + value + 0x10 + tooltip + If this permission is enabled, the object can successfully call llStartAnimation for the avatar that owns this. + + PI + + type + float + value + 3.14159265 + tooltip + 3.14159265 - The number of radians in a semi-circle. + + PI_BY_TWO + + type + float + value + 1.57079633 + tooltip + 1.57079633 - The number of radians in a quarter circle. + + PING_PONG + + type + integer + value + 0x8 + tooltip + Play animation going forwards, then backwards. + + PRIM_ALPHA_MODE + + type + integer + value + 38 + tooltip + Prim parameter for materials using integer face, integer alpha_mode, integer alpha_cutoff.\nDefines how the alpha channel of the diffuse texture should be rendered.\nValid options for alpha_mode are PRIM_ALPHA_MODE_BLEND, _NONE, _MASK, and _EMISSIVE.\nalpha_cutoff is used only for PRIM_ALPHA_MODE_MASK. + + PRIM_ALPHA_MODE_NONE + + type + integer + value + 0 + tooltip + Prim parameter setting for PRIM_ALPHA_MODE.\nIndicates that the diffuse texture's alpha channel should be ignored. + + PRIM_ALPHA_MODE_BLEND + + type + integer + value + 1 + tooltip + Prim parameter setting for PRIM_ALPHA_MODE.\nIndicates that the diffuse texture's alpha channel should be rendered as alpha-blended. + + PRIM_ALPHA_MODE_MASK + + type + integer + value + 2 + tooltip + Prim parameter setting for PRIM_ALPHA_MODE.\nIndicates that the diffuse texture's alpha channel should be rendered as fully opaque for alpha values above alpha_cutoff and fully transparent otherwise. + + PRIM_ALPHA_MODE_EMISSIVE + + type + integer + value + 3 + tooltip + Prim parameter setting for PRIM_ALPHA_MODE.\nIndicates that the diffuse texture's alpha channel should be rendered as an emissivity mask. + + PRIM_BUMP_BARK + + type + integer + value + 4 + tooltip + + + PRIM_BUMP_BLOBS + + type + integer + value + 12 + tooltip + + + PRIM_BUMP_BRICKS + + type + integer + value + 5 + tooltip + + + PRIM_BUMP_BRIGHT + + type + integer + value + 1 + tooltip + + + PRIM_BUMP_CHECKER + + type + integer + value + 6 + tooltip + + + PRIM_BUMP_CONCRETE + + type + integer + value + 7 + tooltip + + + PRIM_BUMP_DARK + + type + integer + value + 2 + tooltip + + + PRIM_BUMP_DISKS + + type + integer + value + 10 + tooltip + + + PRIM_BUMP_GRAVEL + + type + integer + value + 11 + tooltip + + + PRIM_BUMP_LARGETILE + + type + integer + value + 14 + tooltip + + + PRIM_BUMP_NONE + + type + integer + value + 0 + tooltip + + + PRIM_BUMP_SHINY + + type + integer + value + 19 + tooltip + + + PRIM_BUMP_SIDING + + type + integer + value + 13 + tooltip + + + PRIM_BUMP_STONE + + type + integer + value + 9 + tooltip + + + PRIM_BUMP_STUCCO + + type + integer + value + 15 + tooltip + + + PRIM_BUMP_SUCTION + + type + integer + value + 16 + tooltip + + + PRIM_BUMP_TILE + + type + integer + value + 8 + tooltip + + + PRIM_BUMP_WEAVE + + type + integer + value + 17 + tooltip + + + PRIM_BUMP_WOOD + + type + integer + value + 3 + tooltip + + + PRIM_CAST_SHADOWS + + deprecated + true + type + integer + value + 24 + tooltip + + + PRIM_COLOR + + type + integer + value + 18 + tooltip + + + PRIM_DESC + + type + integer + value + 28 + tooltip + + + PRIM_FLEXIBLE + + type + integer + value + 21 + tooltip + + + PRIM_FULLBRIGHT + + type + integer + value + 20 + tooltip + + + PRIM_GLOW + + type + integer + value + 25 + tooltip + PRIM_GLOW is used to get or set the glow status of the face. + + PRIM_HOLE_CIRCLE + + type + integer + value + 0x10 + tooltip + + + PRIM_HOLE_DEFAULT + + type + integer + value + 0x00 + tooltip + + + PRIM_HOLE_SQUARE + + type + integer + value + 0x20 + tooltip + + + PRIM_HOLE_TRIANGLE + + type + integer + value + 0x30 + tooltip + + + PRIM_LINK_TARGET + + type + integer + value + 34 + tooltip + + + PRIM_MATERIAL + + type + integer + value + 2 + tooltip + + + PRIM_MATERIAL_FLESH + + type + integer + value + 4 + tooltip + + + PRIM_MATERIAL_GLASS + + type + integer + value + 2 + tooltip + + + PRIM_MATERIAL_LIGHT + + type + integer + value + 7 + tooltip + + + PRIM_MATERIAL_METAL + + type + integer + value + 1 + tooltip + + + PRIM_MATERIAL_PLASTIC + + type + integer + value + 5 + tooltip + + + PRIM_MATERIAL_RUBBER + + type + integer + value + 6 + tooltip + + + PRIM_MATERIAL_STONE + + type + integer + value + 0 + tooltip + + + PRIM_MATERIAL_WOOD + + type + integer + value + 3 + tooltip + + + PRIM_MEDIA_ALT_IMAGE_ENABLE + + type + integer + value + 0 + tooltip + Boolean. Gets/Sets the default image state (the image that the user sees before a piece of media is active) for the chosen face. The default image is specified by Second Life's server for that media type. + + PRIM_MEDIA_AUTO_LOOP + + type + integer + value + 4 + tooltip + Boolean. Gets/Sets whether auto-looping is enabled. + + PRIM_MEDIA_AUTO_PLAY + + type + integer + value + 5 + tooltip + Boolean. Gets/Sets whether the media auto-plays when a Resident can view it. + + PRIM_MEDIA_AUTO_SCALE + + type + integer + value + 6 + tooltip + Boolean. Gets/Sets whether auto-scaling is enabled. Auto-scaling forces the media to the full size of the texture. + + PRIM_MEDIA_AUTO_ZOOM + + type + integer + value + 7 + tooltip + Boolean. Gets/Sets whether clicking the media triggers auto-zoom and auto-focus on the media. + + PRIM_MEDIA_CONTROLS + + type + integer + value + 1 + tooltip + Integer. Gets/Sets the style of controls. Can be either PRIM_MEDIA_CONTROLS_STANDARD or PRIM_MEDIA_CONTROLS_MINI. + + PRIM_MEDIA_CONTROLS_MINI + + type + integer + value + 1 + tooltip + Mini web navigation controls; does not include an address bar. + + PRIM_MEDIA_CONTROLS_STANDARD + + type + integer + value + 0 + tooltip + Standard web navigation controls. + + PRIM_MEDIA_CURRENT_URL + + type + integer + value + 2 + tooltip + String. Gets/Sets the current url displayed on the chosen face. Changing this URL causes navigation. 1024 characters Maximum. + + PRIM_MEDIA_FIRST_CLICK_INTERACT + + type + integer + value + 8 + tooltip + Boolean. Gets/Sets whether the first click interaction is enabled. + + PRIM_MEDIA_HEIGHT_PIXELS + + type + integer + value + 10 + tooltip + Integer. Gets/Sets the height of the media in pixels. + + PRIM_MEDIA_HOME_URL + + type + integer + value + 3 + tooltip + String. Gets/Sets the home URL for the chosen face. 1024 characters maximum. + + PRIM_MEDIA_MAX_HEIGHT_PIXELS + + type + integer + value + 2048 + tooltip + + + PRIM_MEDIA_MAX_URL_LENGTH + + type + integer + value + 1024 + tooltip + + + PRIM_MEDIA_MAX_WHITELIST_COUNT + + type + integer + value + 64 + tooltip + + + PRIM_MEDIA_MAX_WHITELIST_SIZE + + type + integer + value + 1024 + tooltip + + + PRIM_MEDIA_MAX_WIDTH_PIXELS + + type + integer + value + 2048 + tooltip + + + PRIM_MEDIA_PARAM_MAX + + type + integer + value + 14 + tooltip + + + PRIM_MEDIA_PERM_ANYONE + + type + integer + value + 4 + tooltip + + + PRIM_MEDIA_PERM_GROUP + + type + integer + value + 2 + tooltip + + + PRIM_MEDIA_PERM_NONE + + type + integer + value + 0 + tooltip + + + PRIM_MEDIA_PERM_OWNER + + type + integer + value + 1 + tooltip + + + PRIM_MEDIA_PERMS_CONTROL + + type + integer + value + 14 + tooltip + Integer. Gets/Sets the permissions mask that control who can see the media control bar above the object:: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER + + PRIM_MEDIA_PERMS_INTERACT + + type + integer + value + 13 + tooltip + Integer. Gets/Sets the permissions mask that control who can interact with the object: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER + + PRIM_MEDIA_WHITELIST + + type + integer + value + 12 + tooltip + String. Gets/Sets the white-list as a string of escaped, comma-separated URLs. This string can hold up to 64 URLs or 1024 characters, whichever comes first. + + PRIM_MEDIA_WHITELIST_ENABLE + + type + integer + value + 11 + tooltip + Boolean. Gets/Sets whether navigation is restricted to URLs in PRIM_MEDIA_WHITELIST. + + PRIM_MEDIA_WIDTH_PIXELS + + type + integer + value + 9 + tooltip + Integer. Gets/Sets the width of the media in pixels. + + PRIM_NAME + + type + integer + value + 27 + tooltip + + + PRIM_NORMAL + + type + integer + value + 37 + tooltip + Prim parameter for materials using integer face, string texture, vector repeats, vector offsets, float rotation_in_radians + + PRIM_OMEGA + + type + integer + value + 32 + tooltip + + + PRIM_PHANTOM + + type + integer + value + 5 + tooltip + + + PRIM_PHYSICS + + type + integer + value + 3 + tooltip + + + PRIM_PHYSICS_SHAPE_CONVEX + + type + integer + value + 2 + tooltip + Use the convex hull of the prim shape for physics (this is the default for mesh objects). + + PRIM_PHYSICS_SHAPE_NONE + + type + integer + value + 1 + tooltip + Ignore this prim in the physics shape. NB: This cannot be applied to the root prim. + + PRIM_PHYSICS_SHAPE_PRIM + + type + integer + value + 0 + tooltip + Use the normal prim shape for physics (this is the default for all non-mesh objects). + + PRIM_PHYSICS_SHAPE_TYPE + + type + integer + value + 30 + tooltip + Allows you to set the physics shape type of a prim via lsl. Permitted values are: + PRIM_PHYSICS_SHAPE_NONE, PRIM_PHYSICS_SHAPE_PRIM, PRIM_PHYSICS_SHAPE_CONVEX + + PRIM_POINT_LIGHT + + type + integer + value + 23 + tooltip + + + PRIM_POS_LOCAL + + type + integer + value + 33 + tooltip + + + PRIM_POSITION + + type + integer + value + 6 + tooltip + + + PRIM_ROT_LOCAL + + type + integer + value + 29 + tooltip + + + PRIM_ROTATION + + type + integer + value + 8 + tooltip + + + PRIM_SCULPT_FLAG_INVERT + + type + integer + value + 64 + tooltip + Render inside out (inverts the normals). + + PRIM_SCULPT_FLAG_MIRROR + + type + integer + value + 128 + tooltip + Render an X axis mirror of the sculpty. + + PRIM_SCULPT_TYPE_CYLINDER + + type + integer + value + 4 + tooltip + + + PRIM_SCULPT_TYPE_MASK + + type + integer + value + 7 + tooltip + + + PRIM_SCULPT_TYPE_PLANE + + type + integer + value + 3 + tooltip + + + PRIM_SCULPT_TYPE_SPHERE + + type + integer + value + 1 + tooltip + + + PRIM_SCULPT_TYPE_TORUS + + type + integer + value + 2 + tooltip + + + PRIM_SHINY_HIGH + + type + integer + value + 3 + tooltip + + + PRIM_SHINY_LOW + + type + integer + value + 1 + tooltip + + + PRIM_SHINY_MEDIUM + + type + integer + value + 2 + tooltip + + + PRIM_SHINY_NONE + + type + integer + value + 0 + tooltip + + + PRIM_SIZE + + type + integer + value + 7 + tooltip + + + PRIM_SLICE + + type + integer + value + 35 + tooltip + + + PRIM_SPECULAR + + type + integer + value + 36 + tooltip + Prim parameter for materials using integer face, string texture, vector repeats, vector offsets, float rotation_in_radians, vector color, integer glossy, integer environment + + PRIM_TEMP_ON_REZ + + type + integer + value + 4 + tooltip + + + PRIM_TEXGEN + + type + integer + value + 22 + tooltip + + + PRIM_TEXGEN_DEFAULT + + type + integer + value + 0 + tooltip + + + PRIM_TEXGEN_PLANAR + + type + integer + value + 1 + tooltip + + + PRIM_TEXT + + type + integer + value + 26 + tooltip + + + PRIM_TEXTURE + + type + integer + value + 17 + tooltip + + + PRIM_TYPE + + type + integer + value + 9 + tooltip + + + PRIM_TYPE_BOX + + type + integer + value + 0 + tooltip + + + PRIM_TYPE_CYLINDER + + type + integer + value + 1 + tooltip + + + PRIM_TYPE_PRISM + + type + integer + value + 2 + tooltip + + + PRIM_TYPE_RING + + type + integer + value + 6 + tooltip + + + PRIM_TYPE_SCULPT + + type + integer + value + 7 + tooltip + + + PRIM_TYPE_SPHERE + + type + integer + value + 3 + tooltip + + + PRIM_TYPE_TORUS + + type + integer + value + 4 + tooltip + + + PRIM_TYPE_TUBE + + type + integer + value + 5 + tooltip + + + PROFILE_NONE + + type + integer + value + 0 + tooltip + Disables profiling + + PROFILE_SCRIPT_MEMORY + + type + integer + value + 1 + tooltip + Enables memory profiling + + PSYS_PART_BF_DEST_COLOR + + type + integer + value + 2 + tooltip + + + PSYS_PART_BF_ONE + + type + integer + value + 0 + tooltip + + + PSYS_PART_BF_ONE_MINUS_DEST_COLOR + + type + integer + value + 4 + tooltip + + + PSYS_PART_BF_ONE_MINUS_SOURCE_COLOR + + type + integer + value + 5 + tooltip + + + PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA + + type + integer + value + 9 + tooltip + + + PSYS_PART_BF_SOURCE_ALPHA + + type + integer + value + 7 + tooltip + + + PSYS_PART_BF_SOURCE_COLOR + + type + integer + value + 3 + tooltip + + + PSYS_PART_BF_ZERO + + type + integer + value + 1 + tooltip + + + PSYS_PART_BLEND_FUNC_DEST + + type + integer + value + 25 + tooltip + + + PSYS_PART_BLEND_FUNC_SOURCE + + type + integer + value + 24 + tooltip + + + PSYS_PART_BOUNCE_MASK + + type + integer + value + 0x4 + tooltip + Particles bounce off of a plane at the objects Z height. + + PSYS_PART_EMISSIVE_MASK + + type + integer + value + 0x100 + tooltip + The particle glows. + + PSYS_PART_END_ALPHA + + type + integer + value + 4 + tooltip + A float which determines the ending alpha of the object. + + PSYS_PART_END_COLOR + + type + integer + value + 3 + tooltip + A vector <r, g, b> which determines the ending color of the object. + + PSYS_PART_END_GLOW + + type + integer + value + 27 + tooltip + + + PSYS_PART_END_SCALE + + type + integer + value + 6 + tooltip + A vector <sx, sy, z>, which is the ending size of the particle billboard in meters (z is ignored). + + PSYS_PART_FLAGS + + type + integer + value + 0 + tooltip + Each particle that is emitted by the particle system is simulated based on the following flags. To use multiple flags, bitwise or (|) them together. + + PSYS_PART_FOLLOW_SRC_MASK + + type + integer + value + 0x10 + tooltip + The particle position is relative to the source objects position. + + PSYS_PART_FOLLOW_VELOCITY_MASK + + type + integer + value + 0x20 + tooltip + The particle orientation is rotated so the vertical axis faces towards the particle velocity. + + PSYS_PART_INTERP_COLOR_MASK + + type + integer + value + 0x1 + tooltip + Interpolate both the color and alpha from the start value to the end value. + + PSYS_PART_INTERP_SCALE_MASK + + type + integer + value + 0x2 + tooltip + Interpolate the particle scale from the start value to the end value. + + PSYS_PART_MAX_AGE + + type + integer + value + 7 + tooltip + Age in seconds of a particle at which it dies. + + PSYS_PART_RIBBON_MASK + + type + integer + value + 0x400 + tooltip + + + PSYS_PART_START_ALPHA + + type + integer + value + 2 + tooltip + A float which determines the starting alpha of the object. + + PSYS_PART_START_COLOR + + type + integer + value + 1 + tooltip + A vector <r.r, g.g, b.b> which determines the starting color of the object. + + PSYS_PART_START_GLOW + + type + integer + value + 26 + tooltip + + + PSYS_PART_START_SCALE + + type + integer + value + 5 + tooltip + A vector <sx, sy, z>, which is the starting size of the particle billboard in meters (z is ignored). + + PSYS_PART_TARGET_LINEAR_MASK + + type + integer + value + 0x80 + tooltip + + + PSYS_PART_TARGET_POS_MASK + + type + integer + value + 0x40 + tooltip + The particle heads towards the location of the target object as defined by PSYS_SRC_TARGET_KEY. + + PSYS_PART_WIND_MASK + + type + integer + value + 0x8 + tooltip + Particles have their velocity damped towards the wind velocity. + + PSYS_SRC_ACCEL + + type + integer + value + 8 + tooltip + A vector <x, y, z> which is the acceleration to apply on particles. + + PSYS_SRC_ANGLE_BEGIN + + type + integer + value + 22 + tooltip + Area in radians specifying where particles will NOT be created (for ANGLE patterns) + + PSYS_SRC_ANGLE_END + + type + integer + value + 23 + tooltip + Area in radians filled with particles (for ANGLE patterns) (if lower than PSYS_SRC_ANGLE_BEGIN, acts as PSYS_SRC_ANGLE_BEGIN itself, and PSYS_SRC_ANGLE_BEGIN acts as PSYS_SRC_ANGLE_END). + + PSYS_SRC_BURST_PART_COUNT + + type + integer + value + 15 + tooltip + How many particles to release in a burst. + + PSYS_SRC_BURST_RADIUS + + type + integer + value + 16 + tooltip + What distance from the center of the object to create the particles. + + PSYS_SRC_BURST_RATE + + type + integer + value + 13 + tooltip + How often to release a particle burst (float seconds). + + PSYS_SRC_BURST_SPEED_MAX + + type + integer + value + 18 + tooltip + Maximum speed that a particle should be moving. + + PSYS_SRC_BURST_SPEED_MIN + + type + integer + value + 17 + tooltip + Minimum speed that a particle should be moving. + + PSYS_SRC_INNERANGLE + + type + integer + value + 10 + tooltip + Specifies the inner angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern. + The area specified will NOT have particles in it. + + PSYS_SRC_MAX_AGE + + type + integer + value + 19 + tooltip + How long this particle system should last, 0.0 means forever. + + PSYS_SRC_OMEGA + + type + integer + value + 21 + tooltip + Sets the angular velocity to rotate the axis that SRC_PATTERN_ANGLE and SRC_PATTERN_ANGLE_CONE use. + + PSYS_SRC_OUTERANGLE + + type + integer + value + 11 + tooltip + Specifies the outer angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern. + The area between the outer and inner angle will be filled with particles. + + PSYS_SRC_PATTERN + + type + integer + value + 9 + tooltip + The pattern which is used to generate particles. + Use one of the following values: PSYS_SRC_PATTERN Values. + + PSYS_SRC_PATTERN_ANGLE + + type + integer + value + 0x04 + tooltip + Shoot particles across a 2 dimensional area defined by the arc created from PSYS_SRC_OUTERANGLE. There will be an open area defined by PSYS_SRC_INNERANGLE within the larger arc. + + PSYS_SRC_PATTERN_ANGLE_CONE + + type + integer + value + 0x08 + tooltip + Shoot particles out in a 3 dimensional cone with an outer arc of PSYS_SRC_OUTERANGLE and an inner open area defined by PSYS_SRC_INNERANGLE. + + PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY + + type + integer + value + 0x10 + tooltip + + + PSYS_SRC_PATTERN_DROP + + type + integer + value + 0x01 + tooltip + Drop particles at the source position. + + PSYS_SRC_PATTERN_EXPLODE + + type + integer + value + 0x02 + tooltip + Shoot particles out in all directions, using the burst parameters. + + PSYS_SRC_TARGET_KEY + + type + integer + value + 20 + tooltip + The key of a target object to move towards if PSYS_PART_TARGET_POS_MASK is enabled. + + PSYS_SRC_TEXTURE + + type + integer + value + 12 + tooltip + An asset name for the texture to use for the particles. + + PU_EVADE_HIDDEN + + type + integer + value + 0x07 + tooltip + Triggered when an llEvade character thinks it has hidden from its pursuer. + + PU_EVADE_SPOTTED + + type + integer + value + 0x08 + tooltip + Triggered when an llEvade character switches from hiding to running + + PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED + + type + integer + value + 10 + tooltip + + + PU_FAILURE_INVALID_GOAL + + type + integer + value + 0x03 + tooltip + Goal is not on the navigation-mesh and cannot be reached. + + PU_FAILURE_INVALID_START + + type + integer + value + 0x02 + tooltip + Character cannot navigate from the current location - e.g., the character is off the navmesh or too high above it. + + PU_FAILURE_NO_NAVMESH + + type + integer + value + 0x09 + tooltip + This is a fatal error reported to a character when there is no navmesh for the region. This usually indicates a server failure and users should file a bug report and include the time and region in which they received this message. + + PU_FAILURE_NO_VALID_DESTINATION + + type + integer + value + 0x06 + tooltip + There is no good place for the character to go - e.g., it is patrolling and all the patrol points are now unreachable. + + PU_FAILURE_OTHER + + type + integer + value + 1000000 + tooltip + + + PU_FAILURE_PARCEL_UNREACHABLE + + type + integer + value + 11 + tooltip + + + PU_FAILURE_TARGET_GONE + + type + integer + value + 0x05 + tooltip + Target (for llPursue or llEvade) can no longer be tracked - e.g., it left the region or is an avatar that is now more than about 30m outside the region. + + PU_FAILURE_UNREACHABLE + + type + integer + value + 0x04 + tooltip + Goal is no longer reachable for some reason - e.g., an obstacle blocks the path. + + PU_GOAL_REACHED + + type + integer + value + 0x01 + tooltip + Character has reached the goal and will stop or choose a new goal (if wandering). + + PU_SLOWDOWN_DISTANCE_REACHED + + type + integer + value + 0x00 + tooltip + Character is near current goal. + + PUBLIC_CHANNEL + + type + integer + value + 0 + tooltip + PUBLIC_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the publicly heard chat channel. + + PURSUIT_FUZZ_FACTOR + + type + integer + value + 3 + tooltip + Selects a random destination near the offset. + + PURSUIT_GOAL_TOLERANCE + + type + integer + value + 5 + tooltip + + + PURSUIT_INTERCEPT + + type + integer + value + 4 + tooltip + Define whether the character attempts to predict the target's location. + + PURSUIT_OFFSET + + type + integer + value + 1 + tooltip + Go to a position offset from the target. + + RAD_TO_DEG + + type + float + value + 57.2957795 + tooltip + 57.2957795 - Number of degrees per radian. You can use this number to convert radians to degrees by multiplying the radians by this number. + + RC_DATA_FLAGS + + type + integer + value + 2 + tooltip + + + RC_DETECT_PHANTOM + + type + integer + value + 1 + tooltip + + + RC_GET_LINK_NUM + + type + integer + value + 4 + tooltip + + + RC_GET_NORMAL + + type + integer + value + 1 + tooltip + + + RC_GET_ROOT_KEY + + type + integer + value + 2 + tooltip + + + RC_MAX_HITS + + type + integer + value + 3 + tooltip + + + RC_REJECT_AGENTS + + type + integer + value + 1 + tooltip + + + RC_REJECT_LAND + + type + integer + value + 8 + tooltip + + + RC_REJECT_NONPHYSICAL + + type + integer + value + 4 + tooltip + + + RC_REJECT_PHYSICAL + + type + integer + value + 2 + tooltip + + + RC_REJECT_TYPES + + type + integer + value + 0 + tooltip + + + RCERR_CAST_TIME_EXCEEDED + + type + integer + value + -3 + tooltip + + + RCERR_SIM_PERF_LOW + + type + integer + value + -2 + tooltip + + + RCERR_UNKNOWN + + type + integer + value + -1 + tooltip + + + REGION_FLAG_ALLOW_DAMAGE + + type + integer + value + 0x1 + tooltip + + + REGION_FLAG_ALLOW_DIRECT_TELEPORT + + type + integer + value + 0x100000 + tooltip + + + REGION_FLAG_BLOCK_FLY + + type + integer + value + 0x80000 + tooltip + + + REGION_FLAG_BLOCK_FLYOVER + + type + integer + value + 0x8000000 + tooltip + + + REGION_FLAG_BLOCK_TERRAFORM + + type + integer + value + 0x40 + tooltip + + + REGION_FLAG_DISABLE_COLLISIONS + + type + integer + value + 0x1000 + tooltip + + + REGION_FLAG_DISABLE_PHYSICS + + type + integer + value + 0x4000 + tooltip + + + REGION_FLAG_FIXED_SUN + + type + integer + value + 0x10 + tooltip + + + REGION_FLAG_RESTRICT_PUSHOBJECT + + type + integer + value + 0x400000 + tooltip + + + REGION_FLAG_SANDBOX + + type + integer + value + 0x100 + tooltip + + + REMOTE_DATA_CHANNEL + + type + integer + value + 1 + tooltip + + + REMOTE_DATA_REPLY + + type + integer + value + 3 + tooltip + + + REMOTE_DATA_REQUEST + + type + integer + value + 2 + tooltip + + + REQUIRE_LINE_OF_SIGHT + + type + integer + value + 2 + tooltip + Define whether the character needs a line-of-sight to give chase. + + RESTITUTION + + type + integer + value + 4 + tooltip + Used with llSetPhysicsMaterial to enable the density value. Must be between 0.0 and 1.0 + + REVERSE + + type + integer + value + 0x4 + tooltip + Play animation in reverse direction. + + ROTATE + + type + integer + value + 0x20 + tooltip + Animate texture rotation. + + SCALE + + type + integer + value + 0x40 + tooltip + Animate the texture scale. + + SCRIPTED + + type + integer + value + 0x8 + tooltip + Scripted in-world objects. + + SIM_STAT_PCT_CHARS_STEPPED + + type + integer + value + 0 + tooltip + Returns the % of pathfinding characters skipped each frame, averaged over the last minute.\nThe returned value corresponds to the "Characters Updated" stat in the viewer's Statistics Bar. + + SMOOTH + + type + integer + value + 0x10 + tooltip + Slide in the X direction, instead of playing separate frames. + + SQRT2 + + type + float + value + 1.41421356 + tooltip + 1.41421356 - The square root of 2. + + STATUS_BLOCK_GRAB + + type + integer + value + 0x40 + tooltip + Controls whether the object can be grabbed.\nA grab is the default action when in third person, and is available as the hand tool in build mode. This is useful for physical objects that you don't want other people to be able to trivially disturb. The default is FALSE + + STATUS_BLOCK_GRAB_OBJECT + + type + integer + value + 0x400 + tooltip + Prevent click-and-drag movement on all prims in the object. + + STATUS_BOUNDS_ERROR + + type + integer + value + 1002 + tooltip + Argument(s) passed to function had a bounds error. + + STATUS_CAST_SHADOWS + + type + integer + value + 0x200 + tooltip + + + STATUS_DIE_AT_EDGE + + type + integer + value + 0x80 + tooltip + Controls whether the object is returned to the owners inventory if it wanders off the edge of the world.\nIt is useful to set this status TRUE for things like bullets or rockets. The default is TRUE + + STATUS_INTERNAL_ERROR + + type + integer + value + 1999 + tooltip + An internal error occurred. + + STATUS_MALFORMED_PARAMS + + type + integer + value + 1000 + tooltip + Function was called with malformed parameters. + + STATUS_NOT_FOUND + + type + integer + value + 1003 + tooltip + Object or other item was not found. + + STATUS_NOT_SUPPORTED + + type + integer + value + 1004 + tooltip + Feature not supported. + + STATUS_OK + + type + integer + value + 0 + tooltip + Result of function call was a success. + + STATUS_PHANTOM + + type + integer + value + 0x10 + tooltip + Controls/indicates whether the object collides or not.\nSetting the value to TRUE makes the object non-colliding with all objects. It is a good idea to use this for most objects that move or rotate, but are non-physical. It is also useful for simulating volumetric lighting. The default is FALSE. + + STATUS_PHYSICS + + type + integer + value + 0x1 + tooltip + Controls/indicates whether the object moves physically.\nThis controls the same flag that the UI check-box for Physical controls. The default is FALSE. + + STATUS_RETURN_AT_EDGE + + type + integer + value + 0x100 + tooltip + + + STATUS_ROTATE_X + + type + integer + value + 0x2 + tooltip + + + STATUS_ROTATE_Y + + type + integer + value + 0x4 + tooltip + + + STATUS_ROTATE_Z + + type + integer + value + 0x8 + tooltip + Controls/indicates whether the object can physically rotate around + the specific axis or not. This flag has no meaning + for non-physical objects. Set the value to FALSE + if you want to disable rotation around that axis. The + default is TRUE for a physical object. + A useful example to think about when visualizing + the effect is a sit-and-spin device. They spin around the + Z axis (up) but not around the X or Y axis. + + STATUS_SANDBOX + + type + integer + value + 0x20 + tooltip + Controls/indicates whether the object can cross region boundaries + and move more than 20 meters from its creation + point. The default if FALSE. + + STATUS_TYPE_MISMATCH + + type + integer + value + 1001 + tooltip + Argument(s) passed to function had a type mismatch. + + STATUS_WHITELIST_FAILED + + type + integer + value + 2001 + tooltip + Whitelist Failed. + + STRING_TRIM + + type + integer + value + 0x03 + tooltip + + + STRING_TRIM_HEAD + + type + integer + value + 0x01 + tooltip + + + STRING_TRIM_TAIL + + type + integer + value + 0x02 + tooltip + + + TEXTURE_BLANK + + type + string + value + 5748decc-f629-461c-9a36-a35a221fe21f + tooltip + + + TEXTURE_DEFAULT + + type + string + value + 89556747-24cb-43ed-920b-47caed15465f + tooltip + + + TEXTURE_MEDIA + + type + string + value + 8b5fec65-8d8d-9dc5-cda8-8fdf2716e361 + tooltip + + + TEXTURE_PLYWOOD + + type + string + value + 89556747-24cb-43ed-920b-47caed15465f + tooltip + + + TEXTURE_TRANSPARENT + + type + string + value + 8dcd4a48-2d37-4909-9f78-f7a9eb4ef903 + tooltip + + + TOUCH_INVALID_FACE + + type + integer + value + 0xFFFFFFFF + tooltip + + + TOUCH_INVALID_TEXCOORD + + type + vector + value + <-1.0, -1.0, 0.0> + tooltip + + + TOUCH_INVALID_VECTOR + + type + vector + value + <0.0, 0.0, 0.0> + tooltip + + + TRAVERSAL_TYPE + + type + integer + value + 7 + tooltip + One of TRAVERSAL_TYPE_FAST, TRAVERSAL_TYPE_SLOW, and TRAVERSAL_TYPE_NONE. + + TRAVERSAL_TYPE_FAST + + type + integer + value + 1 + tooltip + + + TRAVERSAL_TYPE_NONE + + type + integer + value + 2 + tooltip + + + TRAVERSAL_TYPE_SLOW + + type + integer + value + 0 + tooltip + + + TRUE + + type + integer + value + 1 + tooltip + An integer constant for boolean comparisons. Has the value '1'. + + TWO_PI + + type + float + value + 6.28318530 + tooltip + 6.28318530 - The radians of a circle. + + TYPE_FLOAT + + type + integer + value + 2 + tooltip + The list entry is a float. + + TYPE_INTEGER + + type + integer + value + 1 + tooltip + The list entry is an integer. + + TYPE_INVALID + + type + integer + value + 0 + tooltip + The list entry is invalid. + + TYPE_KEY + + type + integer + value + 4 + tooltip + The list entry is a key. + + TYPE_ROTATION + + type + integer + value + 6 + tooltip + The list entry is a rotation. + + TYPE_STRING + + type + integer + value + 3 + tooltip + The list entry is a string. + + TYPE_VECTOR + + type + integer + value + 5 + tooltip + The list entry is a vector. + + URL_REQUEST_DENIED + + type + string + value + URL_REQUEST_DENIED + tooltip + + + URL_REQUEST_GRANTED + + type + string + value + URL_REQUEST_GRANTED + tooltip + + + VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY + + type + integer + value + 32 + tooltip + A slider between minimum (0.0) and maximum (1.0) deflection of angular orientation. That is, its a simple scalar for modulating the strength of angular deflection such that the vehicles preferred axis of motion points toward its real velocity. + + VEHICLE_ANGULAR_DEFLECTION_TIMESCALE + + type + integer + value + 33 + tooltip + The time-scale for exponential success of linear deflection deflection. Its another way to specify the strength of the vehicles tendency to reorient itself so that its preferred axis of motion agrees with its true velocity. + + VEHICLE_ANGULAR_FRICTION_TIMESCALE + + type + integer + value + 17 + tooltip + A vector of timescales for exponential decay of the vehicles angular velocity about its preferred axes of motion (at, left, up). + Range = [0.07, inf) seconds for each element of the vector. + + VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE + + type + integer + value + 35 + tooltip + The timescale for exponential decay of the angular motors magnitude. + + VEHICLE_ANGULAR_MOTOR_DIRECTION + + type + integer + value + 19 + tooltip + The direction and magnitude (in preferred frame) of the vehicles angular motor.The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor. + + VEHICLE_ANGULAR_MOTOR_TIMESCALE + + type + integer + value + 34 + tooltip + The timescale for exponential approach to full angular motor velocity. + + VEHICLE_BANKING_EFFICIENCY + + type + integer + value + 38 + tooltip + A slider between anti (-1.0), none (0.0), and maxmum (1.0) banking strength. + + VEHICLE_BANKING_MIX + + type + integer + value + 39 + tooltip + A slider between static (0.0) and dynamic (1.0) banking. "Static" means the banking scales only with the angle of roll, whereas "dynamic" is a term that also scales with the vehicles linear speed. + + VEHICLE_BANKING_TIMESCALE + + type + integer + value + 40 + tooltip + The timescale for banking to exponentially approach its maximum effect. This is another way to scale the strength of the banking effect, however it affects the term that is proportional to the difference between what the banking behavior is trying to do, and what the vehicle is actually doing. + + VEHICLE_BUOYANCY + + type + integer + value + 27 + tooltip + A slider between minimum (0.0) and maximum anti-gravity (1.0). + + VEHICLE_FLAG_CAMERA_DECOUPLED + + type + integer + value + 0x200 + tooltip + + + VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT + + type + integer + value + 0x10 + tooltip + Hover at global height. + + VEHICLE_FLAG_HOVER_TERRAIN_ONLY + + type + integer + value + 0x8 + tooltip + Ignore water height when hovering. + + VEHICLE_FLAG_HOVER_UP_ONLY + + type + integer + value + 0x20 + tooltip + Hover does not push down. Use this flag for hovering vehicles that should be able to jump above their hover height. + + VEHICLE_FLAG_HOVER_WATER_ONLY + + type + integer + value + 0x4 + tooltip + Ignore terrain height when hovering. + + VEHICLE_FLAG_LIMIT_MOTOR_UP + + type + integer + value + 0x40 + tooltip + Prevents ground vehicles from motoring into the sky. + + VEHICLE_FLAG_LIMIT_ROLL_ONLY + + type + integer + value + 0x2 + tooltip + For vehicles with vertical attractor that want to be able to climb/dive, for instance, aeroplanes that want to use the banking feature. + + VEHICLE_FLAG_MOUSELOOK_BANK + + type + integer + value + 0x100 + tooltip + + + VEHICLE_FLAG_MOUSELOOK_STEER + + type + integer + value + 0x80 + tooltip + + + VEHICLE_FLAG_NO_DEFLECTION_UP + + type + integer + value + 0x1 + tooltip + This flag prevents linear deflection parallel to world z-axis. This is useful for preventing ground vehicles with large linear deflection, like bumper cars, from climbing their linear deflection into the sky. + + VEHICLE_FLAG_NO_FLY_UP + + deprecated + true + type + integer + value + 0x1 + tooltip + Old, changed to VEHICLE_FLAG_NO_DEFLECTION_UP + + VEHICLE_HOVER_EFFICIENCY + + type + integer + value + 25 + tooltip + A slider between minimum (0.0 = bouncy) and maximum (1.0 = fast as possible) damped motion of the hover behavior. + + VEHICLE_HOVER_HEIGHT + + type + integer + value + 24 + tooltip + The height (above the terrain or water, or global) at which the vehicle will try to hover. + + VEHICLE_HOVER_TIMESCALE + + type + integer + value + 26 + tooltip + Period of time (in seconds) for the vehicle to achieve its hover height. + + VEHICLE_LINEAR_DEFLECTION_EFFICIENCY + + type + integer + value + 28 + tooltip + A slider between minimum (0.0) and maximum (1.0) deflection of linear velocity. That is, its a simple scalar for modulating the strength of linear deflection. + + VEHICLE_LINEAR_DEFLECTION_TIMESCALE + + type + integer + value + 29 + tooltip + The timescale for exponential success of linear deflection deflection. It is another way to specify how much time it takes for the vehicles linear velocity to be redirected to its preferred axis of motion. + + VEHICLE_LINEAR_FRICTION_TIMESCALE + + type + integer + value + 16 + tooltip + A vector of timescales for exponential decay of the vehicles linear velocity along its preferred axes of motion (at, left, up). + Range = [0.07, inf) seconds for each element of the vector. + + VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE + + type + integer + value + 31 + tooltip + The timescale for exponential decay of the linear motors magnitude. + + VEHICLE_LINEAR_MOTOR_DIRECTION + + type + integer + value + 18 + tooltip + The direction and magnitude (in preferred frame) of the vehicles linear motor. The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor. + Range of magnitude = [0, 30] meters/second. + + VEHICLE_LINEAR_MOTOR_OFFSET + + type + integer + value + 20 + tooltip + + + VEHICLE_LINEAR_MOTOR_TIMESCALE + + type + integer + value + 30 + tooltip + The timescale for exponential approach to full linear motor velocity. + + VEHICLE_REFERENCE_FRAME + + type + integer + value + 44 + tooltip + A rotation of the vehicles preferred axes of motion and orientation (at, left, up) with respect to the vehicles local frame (x, y, z). + + VEHICLE_TYPE_AIRPLANE + + type + integer + value + 4 + tooltip + Uses linear deflection for lift, no hover, and banking to turn.\nSee http://wiki.secondlife.com/wiki/VEHICLE_TYPE_AIRPLANE + + VEHICLE_TYPE_BALLOON + + type + integer + value + 5 + tooltip + Hover, and friction, but no deflection.\nSee http://wiki.secondlife.com/wiki/VEHICLE_TYPE_BALLOON + + VEHICLE_TYPE_BOAT + + type + integer + value + 3 + tooltip + Hovers over water with lots of friction and some anglar deflection.\nSee http://wiki.secondlife.com/wiki/VEHICLE_TYPE_BOAT + + VEHICLE_TYPE_CAR + + type + integer + value + 2 + tooltip + Another vehicle that bounces along the ground but needs the motors to be driven from external controls or timer events.\nSee http://wiki.secondlife.com/wiki/VEHICLE_TYPE_CAR + + VEHICLE_TYPE_NONE + + type + integer + value + 0 + tooltip + + + VEHICLE_TYPE_SLED + + type + integer + value + 1 + tooltip + Simple vehicle that bumps along the ground, and likes to move along its local x-axis.\nSee http://wiki.secondlife.com/wiki/VEHICLE_TYPE_SLED + + VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY + + type + integer + value + 36 + tooltip + A slider between minimum (0.0 = wobbly) and maximum (1.0 = firm as possible) stability of the vehicle to keep itself upright. + + VEHICLE_VERTICAL_ATTRACTION_TIMESCALE + + type + integer + value + 37 + tooltip + The period of wobble, or timescale for exponential approach, of the vehicle to rotate such that its preferred "up" axis is oriented along the worlds "up" axis. + + VERTICAL + + type + integer + value + 0 + tooltip + + + WANDER_PAUSE_AT_WAYPOINTS + + type + integer + value + 0 + tooltip + + + XP_ERROR_EXPERIENCES_DISABLED + + type + integer + value + 2 + tooltip + The region currently has experiences disabled. + + XP_ERROR_EXPERIENCE_DISABLED + + type + integer + value + 8 + tooltip + The experience owner has temporarily disabled the experience. + + XP_ERROR_EXPERIENCE_SUSPENDED + + type + integer + value + 9 + tooltip + The experience has been suspended by Linden Customer Support. + + XP_ERROR_INVALID_EXPERIENCE + + type + integer + value + 7 + tooltip + The script is associated with an experience that no longer exists. + + XP_ERROR_INVALID_PARAMETERS + + type + integer + value + 3 + tooltip + One of the string arguments was too big to fit in the key-value store. + + XP_ERROR_KEY_NOT_FOUND + + type + integer + value + 14 + tooltip + The requested key does not exist. + + XP_ERROR_MATURITY_EXCEEDED + + type + integer + value + 16 + tooltip + The content rating of the experience exceeds that of the region. + + XP_ERROR_NONE + + type + integer + value + 0 + tooltip + No error was detected. + + XP_ERROR_NOT_FOUND + + type + integer + value + 6 + tooltip + The sim was unable to verify the validity of the experience. Retrying after a short wait is advised. + + XP_ERROR_NOT_PERMITTED + + type + integer + value + 4 + tooltip + This experience is not allowed to run by the requested agent. + + XP_ERROR_NOT_PERMITTED_LAND + + type + integer + value + 17 + tooltip + This experience is not allowed to run on the current region. + + XP_ERROR_NO_EXPERIENCE + + type + integer + value + 5 + tooltip + This script is not associated with an experience. + + XP_ERROR_QUOTA_EXCEEDED + + type + integer + value + 11 + tooltip + An attempted write data to the key-value store failed due to the data quota being met. + + XP_ERROR_RETRY_UPDATE + + type + integer + value + 15 + tooltip + A checked update failed due to an out of date request. + + XP_ERROR_STORAGE_EXCEPTION + + type + integer + value + 13 + tooltip + Unable to communicate with the key-value store. + + XP_ERROR_STORE_DISABLED + + type + integer + value + 12 + tooltip + The key-value store is currently disabled on this region. + + XP_ERROR_THROTTLED + + type + integer + value + 1 + tooltip + The call failed due to too many recent calls. + + XP_ERROR_UNKNOWN_ERROR + + type + integer + value + 10 + tooltip + Other unknown error. + + ZERO_ROTATION + + type + rotation + value + <0.0, 0.0, 0.0, 1.0> + tooltip + + + ZERO_VECTOR + + type + vector + value + <0.0, 0.0, 0.0> + tooltip + + + default + + tooltip + All scripts must have a default state, which is the first state entered when the script starts.\nIf another state is defined before the default state, the compiler will report a syntax error. + + + events + + at_rot_target + + arguments + + + TargetNumber + + type + integer + tooltip + + + + + TargetRotation + + type + rotation + tooltip + + + + + CurrentRotation + + type + rotation + tooltip + + + + + tooltip + This event is triggered when a script comes within a defined angle of a target rotation. The range and rotation, are set by a call to llRotTarget. + + at_target + + arguments + + + TargetNumber + + type + integer + tooltip + + + + + TargetPosition + + type + vector + tooltip + + + + + CurrentPosition + + type + vector + tooltip + + + + + tooltip + This event is triggered when the scripted object comes within a defined range of the target position, defined by the llTarget function call. + + attach + + arguments + + + AvatarID + + type + key + tooltip + + + + + tooltip + This event is triggered whenever an object is attached or detached from an avatar. If it is attached, the key of the avatar it is attached to is passed in, otherwise NULL_KEY is. + + changed + + arguments + + + Changed + + type + integer + tooltip + + + + + tooltip + Triggered when various events change the object. The change argument will be a bit-field of CHANGED_* constants. + + collision + + arguments + + + NumberOfCollisions + + type + integer + tooltip + + + + + tooltip + This event is raised while another object, or avatar, is colliding with the object the script is attached to. + The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* functions. + + collision_end + + arguments + + + NumberOfCollisions + + type + integer + tooltip + + + + + tooltip + This event is raised when another object, or avatar, stops colliding with the object the script is attached to. + The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions. + + collision_start + + arguments + + + NumberOfCollisions + + type + integer + tooltip + + + + + tooltip + This event is raised when another object, or avatar, starts colliding with the object the script is attached to. + The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions. + + control + + arguments + + + AvatarID + + type + key + tooltip + + + + + Levels + + type + integer + tooltip + + + + + Edges + + type + integer + tooltip + + + + + tooltip + Once a script has the ability to grab control inputs from the avatar, this event will be used to pass the commands into the script. + The levels and edges are bit-fields of control constants. + + dataserver + + arguments + + + RequestID + + type + key + tooltip + + + + + Data + + type + string + tooltip + + + + + tooltip + This event is triggered when the requested data is returned to the script. + Data may be requested by the llRequestAgentData, llRequestInventoryData, and llGetNotecardLine function calls, for example. + + email + + arguments + + + Time + + type + string + tooltip + + + + + Address + + type + string + tooltip + + + + + Subject + + type + string + tooltip + + + + + Body + + type + string + tooltip + + + + + NumberRemaining + + type + integer + tooltip + + + + + tooltip + This event is triggered when an email sent to this script arrives. + The number remaining tells how many more emails are known to be still pending. + + experience_permissions + + arguments + + + agent_id + + type + key + tooltip + ID of the agent approving permission for the Experience. + + + + + experience_permissions_denied + + arguments + + + agent_id + + type + key + tooltip + ID of the agent denying permission for the Experience. + + + + Reason + + type + integer + tooltip + One of the XP_ERROR_... constants describing the reason why the Experience permissions were denied for the agent. + + + + tooltip + Describes why the Experience permissions were denied for the agent. + + http_request + + arguments + + + HTTPRequestID + + type + key + tooltip + + + + + HTTPMethod + + type + string + tooltip + + + + + Body + + type + string + tooltip + + + + + tooltip + Triggered when task receives an HTTP request. + + http_response + + arguments + + + HTTPRequestID + + type + key + tooltip + + + + + Status + + type + integer + tooltip + + + + + Metadata + + type + list + tooltip + + + + + Body + + type + string + tooltip + + + + + tooltip + This event handler is invoked when an HTTP response is received for a pending llHTTPRequest request or if a pending request fails or times out. + + land_collision + + arguments + + + Position + + type + vector + tooltip + + + + + tooltip + This event is raised when the object the script is attached to is colliding with the ground. + + land_collision_end + + arguments + + + Position + + type + vector + tooltip + + + + + tooltip + This event is raised when the object the script is attached to stops colliding with the ground. + + land_collision_start + + arguments + + + Position + + type + vector + tooltip + + + + + tooltip + This event is raised when the object the script is attached to begins to collide with the ground. + + link_message + + arguments + + + SendersLink + + type + integer + tooltip + + + + + Value + + type + integer + tooltip + + + + + Text + + type + string + tooltip + + + + + ID + + type + key + tooltip + + + + + tooltip + Triggered when object receives a link message via llMessageLinked function call. + + listen + + arguments + + + Channel + + type + integer + tooltip + + + + + Name + + type + string + tooltip + + + + + ID + + type + key + tooltip + + + + + Text + + type + string + tooltip + + + + + tooltip + This event is raised whenever a chat message matching the constraints set in the llListen command is received. The name and ID of the speaker, as well as the message, are passed in as parameters. + Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 through 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen on those channels. + + money + + arguments + + + Payer + + type + key + tooltip + + + + + Amount + + type + integer + tooltip + + + + + tooltip + This event is triggered when a resident has given an amount of Linden dollars to the object. + + moving_end + + arguments + + tooltip + Triggered whenever an object with this script stops moving. + + moving_start + + arguments + + tooltip + Triggered whenever an object with this script starts moving. + + no_sensor + + arguments + + tooltip + This event is raised when sensors are active, via the llSensor function call, but are not sensing anything. + + not_at_rot_target + + arguments + + tooltip + When a target is set via the llRotTarget function call, but the script is outside the specified angle this event is raised. + + not_at_target + + arguments + + tooltip + When a target is set via the llTarget library call, but the script is outside the specified range this event is raised. + + object_rez + + arguments + + + RezzedObjectsID + + type + key + tooltip + + + + + tooltip + Triggered when an object rezzes another object from its inventory via the llRezObject, or similar, functions. The id is the globally unique key for the object rezzed. + + on_rez + + arguments + + + StartParameter + + type + integer + tooltip + + + + + tooltip + Triggered whenever an object is rezzed from inventory or by another object. The start parameter is passed in from the llRezObject call, or zero if from inventory. + + path_update + + arguments + + + Type + + type + integer + tooltip + + + + + Reserved + + type + list + tooltip + + + + + tooltip + This event is called to inform the script of changes within the object's path-finding status. + + remote_data + + arguments + + + EventType + + type + integer + tooltip + + + + + ChannelID + + type + key + tooltip + + + + + MessageID + + type + key + tooltip + + + + + Sender + + type + string + tooltip + + + + + Data + + type + integer + tooltip + + + + + Data + + type + string + tooltip + + + + + tooltip + Triggered by various XML-RPC calls with event_type specifying the type of data. + + run_time_permissions + + arguments + + + PermissionFlags + + type + integer + tooltip + + + + + tooltip + Scripts need permission from either the owner or the avatar they wish to act on before they may perform certain functions, such as debiting money from their owners account, triggering an animation on an avatar, or capturing control inputs. The llRequestPermissions library function is used to request these permissions and the various permissions integer constants can be supplied. + The integer returned to this event handler contains the current set of permissions flags, so if permissions equal 0 then no permissions are set. + + sensor + + arguments + + + NumberDetected + + type + integer + tooltip + + + + + tooltip + This event is raised whenever objects matching the constraints of the llSensor command are detected. + The number of detected objects is passed to the script in the parameter. Information on those objects may be gathered via the llDetected* functions. + + state_entry + + arguments + + tooltip + The state_entry event occurs whenever a new state is entered, including at program start, and is always the first event handled. + + state_exit + + arguments + + tooltip + The state_exit event occurs whenever the state command is used to transition to another state. It is handled before the new states state_entry event. + + timer + + arguments + + tooltip + This event is raised at regular intervals set by the llSetTimerEvent library function. + + touch + + arguments + + + NumberOfTouches + + type + integer + tooltip + + + + + tooltip + This event is raised while a user is touching the object the script is attached to. + The number of touching objects is passed to the script in the parameter. + Information on those objects may be gathered via the llDetected* library functions. + + touch_end + + arguments + + + NumberOfTouches + + type + integer + tooltip + + + + + tooltip + This event is raised when a user stops touching the object the script is attached to. The number of touches is passed to the script in the parameter. + Information on those objects may be gathered via the llDetected* library functions. + + touch_start + + arguments + + + NumberOfTouches + + type + integer + tooltip + + + + + tooltip + This event is raised when a user first touches the object the script is attached to. The number of touches is passed to the script in the parameter. + Information on those objects may be gathered via the llDetected() library functions. + + transaction_result + + arguments + + + RequestID + + type + key + tooltip + + + + + Success + + type + integer + tooltip + + + + + Message + + type + string + tooltip + + + + + tooltip + Triggered by llTransferMoney() function. + + + functions + + llAbs + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + Value + + type + integer + tooltip + An integer value. + + + + tooltip + Returns the absolute (positive) version of Value. + + llAcos + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + Value + + type + float + tooltip + A floating-point value. + + + + tooltip + Returns the arc-cosine of Value, in radians. + + llAddToLandBanList + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + ID + + type + key + tooltip + Agent UUID to add to ban-list. + + + + Hours + + type + float + tooltip + Period, in hours, to ban the avatar for. + + + + tooltip + Add avatar ID to the parcel ban list for the specified number of Hours.\nA value of 0 for Hours will add the agent indefinitely.\nThe smallest value that Hours will accept is 0.01; anything smaller will be seen as 0.\nWhen values that small are used, it seems the function bans in approximately 30 second increments (Probably 36 second increments, as 0.01 of an hour is 36 seconds).\nResidents teleporting to a parcel where they are banned will be redirected to a neighbouring parcel. + + llAddToLandPassList + + energy + 10.0 + sleep + 0.1 + return + void + arguments + + + ID + + type + key + tooltip + Agent UUID to add to pass-list. + + + + Hours + + type + float + tooltip + Period, in hours, to allow the avatar for. + + + + tooltip + Add avatar ID to the land pass list, for a duration of Hours. + + llAdjustSoundVolume + + energy + 10.0 + sleep + 0.1 + return + void + arguments + + + Volume + + type + float + tooltip + The volume to set. + + + + tooltip + Adjusts the volume (0.0 - 1.0) of the currently playing attached sound.\nThis function has no effect on sounds started with llTriggerSound. + + llAgentInExperience + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + AgentID + + type + key + tooltip + + + + + tooltip + + Returns TRUE if the agent is in the Experience and the Experience can run in the current location. + + + llAllowInventoryDrop + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Flag + + type + integer + tooltip + Boolean, If TRUE allows anyone to drop inventory on prim, FALSE revokes. + + + + tooltip + If Flag == TRUE, users without object modify permissions can still drop inventory items into the object. + + llAngleBetween + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + Rot1 + + type + rotation + tooltip + First rotation. + + + + Rot2 + + type + rotation + tooltip + Second rotation. + + + + tooltip + Returns the angle, in radians, between rotations Rot1 and Rot2. + + llApplyImpulse + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Force + + type + vector + tooltip + Amount of impulse force to apply. + + + + Local + + type + integer + tooltip + Boolean, if TRUE, force is treated as a local directional vector instead of region directional vector. + + + + tooltip + Applies impulse to the object.\nIf Local == TRUE, apply the Force in local coordinates; otherwise, apply the Force in global coordinates.\nThis function only works on physical objects. + + llApplyRotationalImpulse + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Force + + type + vector + tooltip + Amount of impulse force to apply. + + + + Local + + type + integer + tooltip + Boolean, if TRUE, uses local axis, if FALSE, uses region axis. + + + + tooltip + Applies rotational impulse to the object.\nIf Local == TRUE, apply the Force in local coordinates; otherwise, apply the Force in global coordinates.\nThis function only works on physical objects. + + llAsin + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + Value + + type + float + tooltip + A floating-point value. + + + + tooltip + Returns the arc-sine, in radians, of Value. + + llAtan2 + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + y + + type + float + tooltip + A floating-point value. + + + + x + + type + float + tooltip + A floating-point value. + + + + tooltip + Returns the arc-tangent2 of y, x. + + llAttachToAvatar + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + AttachmentPoint + + type + integer + tooltip + + + + + tooltip + Attach to avatar at point AttachmentPoint.\nRequires the PERMISSION_ATTACH runtime permission. + + llAttachToAvatarTemp + + energy + 0 + sleep + 0 + return + void + arguments + + + AttachPoint + + type + integer + tooltip + Valid attachment point or ATTACH_* constant. + + + + tooltip + Follows the same convention as llAttachToAvatar, with the exception that the object will not create new inventory for the user, and will disappear on detach or disconnect. + + llAvatarOnLinkSitTarget + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + + LinkNumber + + type + integer + tooltip + Link number (0: unlinked, 1: root prim, >1: child prims) or a LINK_* flag. + + + + tooltip + If an avatar is sitting on the link's sit target, return the avatar's key, NULL_KEY otherwise.\nReturns a key that is the UUID of the user seated on the specified link's prim. + + llAvatarOnSitTarget + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + tooltip + If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.\nThis only will detect avatars sitting on sit targets defined with llSitTarget. + + llAxes2Rot + + energy + 10.0 + sleep + 0.0 + return + rotation + arguments + + + Forward + + type + vector + tooltip + Forward/Back part of rotation. + + + + Left + + type + vector + tooltip + Left/Right part of rotation. + + + + Up + + type + vector + tooltip + Up/Down part of rotation. + + + + tooltip + Returns the rotation represented by coordinate axes Forward, Left, and Up. + + llAxisAngle2Rot + + energy + 10.0 + sleep + 0.0 + return + rotation + arguments + + + Axis + + type + vector + tooltip + Axis. + + + + Angle + + type + float + tooltip + Angle in radians. + + + + tooltip + Returns the rotation that is a generated Angle about Axis. + + llBase64ToInteger + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + Text + + type + string + tooltip + + + + + tooltip + Returns an integer that is the Text, Base64 decoded as a big endian integer.\nReturns zero if Text is longer then 8 characters. If Text contains fewer then 6 characters, the return value is unpredictable. + + llBase64ToString + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + Text + + type + string + tooltip + + + + + tooltip + Converts a Base64 string to a conventional string.\nIf the conversion creates any unprintable characters, they are converted to question marks. + + llBreakAllLinks + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + tooltip + De-links all prims in the link set (requires permission PERMISSION_CHANGE_LINKS be set). + + llBreakLink + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + LinkNumber + + type + integer + tooltip + + + + + tooltip + De-links the prim with the given link number (requires permission PERMISSION_CHANGE_LINKS be set). + + llCastRay + + energy + + sleep + + return + list + arguments + + + Start + + type + vector + tooltip + + + + + End + + type + vector + tooltip + + + + + Options + + type + list + tooltip + + + + + tooltip + Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.\nReports collision data for intersections with objects.\nReturn value: [UUID_1, {link_number_1}, hit_position_1, {hit_normal_1}, UUID_2, {link_number_2}, hit_position_2, {hit_normal_2}, ... , status_code] where {} indicates optional data. + + llCeil + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + Value + + type + float + tooltip + + + + + tooltip + Returns smallest integer value >= Value. + + llClearCameraParams + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + tooltip + Resets all camera parameters to default values and turns off scripted camera control. + + llClearLinkMedia + + energy + 0.0 + sleep + 0.0 + return + integer + arguments + + + Link + + type + integer + tooltip + + + + + Face + + type + integer + tooltip + + + + + tooltip + Clears (deletes) the media and all parameters from the given Face on the linked prim.\nReturns an integer that is a STATUS_* flag, which details the success/failure of the operation. + + llClearPrimMedia + + energy + 10.0 + sleep + 0.1 + return + integer + arguments + + + Face + + type + integer + tooltip + Number of side to clear. + + + + tooltip + Clears (deletes) the media and all parameters from the given Face.\nReturns an integer that is a STATUS_* flag which details the success/failure of the operation. + + llCloseRemoteDataChannel + + energy + 10.0 + sleep + 1.0 + return + void + arguments + + + ChannelID + + type + key + tooltip + + + + + tooltip + Closes the specified XML-RPC channel. + + llCloud + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + Offset + + type + vector + tooltip + + + + + tooltip + Returns the cloud density at the object's position + Offset. + + llCollisionFilter + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + ObjectName + + type + string + tooltip + + + + + ObjectID + + type + key + tooltip + + + + + Accept + + type + integer + tooltip + If TRUE, only accept collisions with ObjectName name AND ObjectID (either is optional), otherwise with objects not ObjectName AND ObjectID. + + + + tooltip + Specify an empty string or NULL_KEY for Accept, to not filter on the corresponding parameter. + + llCollisionSound + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + ImpactSound + + type + string + tooltip + + + + + ImpactVolume + + type + float + tooltip + + + + + tooltip + Suppress default collision sounds, replace default impact sounds with ImpactSound.\nThe ImpactSound must be in the object inventory.\nSupply an empty string to suppress collision sounds. + + llCollisionSprite + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + ImpactSprite + + type + string + tooltip + + + + + tooltip + Suppress default collision sprites, replace default impact sprite with ImpactSprite; found in the object inventory (empty string to just suppress). + + llCos + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + Theta + + type + float + tooltip + + + + + tooltip + Returns the cosine of Theta (Theta in radians). + + llCreateCharacter + + energy + + sleep + + return + void + arguments + + + Options + + type + list + tooltip + + + + + tooltip + Convert link-set to AI/Physics character.\nCreates a path-finding entity, known as a "character", from the object containing the script. Required to activate use of path-finding functions.\nOptions is a list of key/value pairs. + + llCreateKeyValue + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + + Key + + type + string + tooltip + + + + + Value + + type + string + tooltip + + + + + tooltip + + Starts an asychronous transaction to create a key-value pair. Will fail with XP_ERROR_STORAGE_EXCEPTION if the key already exists. The dataserver callback will be executed with the key returned from this call and a string describing the result. The result is a two element commma-delimited list. The first item is an integer specifying if the transaction succeeded (1) or not (0). In the failure case, the second item will be an integer corresponding to one of the XP_ERROR_... constants. In the success case the second item will be the value passed to the function. + + + llCreateLink + + energy + 10.0 + sleep + 1.0 + return + void + arguments + + + TargetPrim + + type + key + tooltip + Object UUID that is in the same region. + + + + Parent + + type + integer + tooltip + If FALSE, then TargetPrim becomes the root. If TRUE, then the script's object becomes the root. + + + + tooltip + Attempt to link the object the script is in, to target (requires permission PERMISSION_CHANGE_LINKS be set).\nRequires permission PERMISSION_CHANGE_LINKS be set. + + llCSV2List + + energy + 10.0 + sleep + 0.0 + return + list + arguments + + + Text + + type + string + tooltip + + + + + tooltip + Create a list from a string of comma separated values specified in Text. + + llDataSizeKeyValue + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + tooltip + + Starts an asychronous transaction the request the used and total amount of data allocated for the Experience. The dataserver callback will be executed with the key returned from this call and a string describing the result. The result is commma-delimited list. The first item is an integer specifying if the transaction succeeded (1) or not (0). In the failure case, the second item will be an integer corresponding to one of the XP_ERROR_... constants. In the success case the second item will be the the amount in use and the third item will be the total available. + + + llDeleteCharacter + + energy + + sleep + + return + void + arguments + + tooltip + Convert link-set from AI/Physics character to Physics object.\nConvert the current link-set back to a standard object, removing all path-finding properties. + + llDeleteKeyValue + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + + Key + + type + string + tooltip + + + + + tooltip + + Starts an asychronous transaction to delete a key-value pair. The dataserver callback will be executed with the key returned from this call and a string describing the result. The result is a two element commma-delimited list. The first item is an integer specifying if the transaction succeeded (1) or not (0). In the failure case, the second item will be an integer corresponding to one of the XP_ERROR_... constants. In the success case the second item will be the value associated with the key. + + + llDeleteSubList + + energy + 10.0 + sleep + 0.0 + return + list + arguments + + + Source + + type + list + tooltip + + + + + Start + + type + integer + tooltip + + + + + End + + type + integer + tooltip + + + + + tooltip + Removes the slice from start to end and returns the remainder of the list.\nRemove a slice from the list and return the remainder, start and end are inclusive.\nUsing negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would delete the entire list.\nIf Start is larger than End the list deleted is the exclusion of the entries; so 6, 4 would delete the entire list except for the 5th. list entry. + + llDeleteSubString + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + Source + + type + string + tooltip + + + + + Start + + type + integer + tooltip + + + + + End + + type + integer + tooltip + + + + + tooltip + Removes the indicated sub-string and returns the result.\nStart and End are inclusive.\nUsing negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would delete the entire string.\nIf Start is larger than End, the sub-string is the exclusion of the entries; so 6, 4 would delete the entire string except for the 5th. character. + + llDetachFromAvatar + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + tooltip + Remove the object containing the script from the avatar. + + llDetectedGrab + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + Number + + type + integer + tooltip + + + + + tooltip + Returns the grab offset of a user touching the object.\nReturns <0.0, 0.0, 0.0> if Number is not a valid object. + + llDetectedGroup + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + Number + + type + integer + tooltip + + + + + tooltip + Returns TRUE if detected object or agent Number has the same user group active as this object.\nIt will return FALSE if the object or agent is in the group, but the group is not active. + + llDetectedKey + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + + Number + + type + integer + tooltip + + + + + tooltip + Returns the key of detected object or avatar number.\nReturns NULL_KEY if Number is not a valid index. + + llDetectedLinkNumber + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + Number + + type + integer + tooltip + + + + + tooltip + Returns the link position of the triggered event for touches and collisions only.\n0 for a non-linked object, 1 for the root of a linked object, 2 for the first child, etc. + + llDetectedName + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + Number + + type + integer + tooltip + + + + + tooltip + Returns the name of detected object or avatar number.\nReturns the name of detected object number.\nReturns empty string if Number is not a valid index. + + llDetectedOwner + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + + Number + + type + integer + tooltip + + + + + tooltip + Returns the key of detected object's owner.\nReturns invalid key if Number is not a valid index. + + llDetectedPos + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + Number + + type + integer + tooltip + + + + + tooltip + Returns the position of detected object or avatar number.\nReturns <0.0, 0.0, 0.0> if Number is not a valid index. + + llDetectedRot + + energy + 10.0 + sleep + 0.0 + return + rotation + arguments + + + Number + + type + integer + tooltip + + + + + tooltip + Returns the rotation of detected object or avatar number.\nReturns <0.0, 0.0, 0.0, 1.0> if Number is not a valid offset. + + llDetectedTouchBinormal + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + Index + + type + integer + tooltip + Index of detection information + + + + tooltip + Returns the surface bi-normal for a triggered touch event.\nReturns a vector that is the surface bi-normal (tangent to the surface) where the touch event was triggered. + + llDetectedTouchFace + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + Index + + type + integer + tooltip + Index of detection information + + + + tooltip + Returns the index of the face where the avatar clicked in a triggered touch event. + + llDetectedTouchNormal + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + Index + + type + integer + tooltip + Index of detection information + + + + tooltip + Returns the surface normal for a triggered touch event.\nReturns a vector that is the surface normal (perpendicular to the surface) where the touch event was triggered. + + llDetectedTouchPos + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + Index + + type + integer + tooltip + Index of detected information + + + + tooltip + Returns the position, in region coordinates, where the object was touched in a triggered touch event.\nUnless it is a HUD, in which case it returns the position relative to the attach point. + + llDetectedTouchST + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + Index + + type + integer + tooltip + Index of detection information + + + + tooltip + Returns a vector that is the surface coordinates where the prim was touched.\nThe X and Y vector positions contain the horizontal (S) and vertical (T) face coordinates respectively.\nEach component is in the interval [0.0, 1.0].\nTOUCH_INVALID_TEXCOORD is returned if the surface coordinates cannot be determined (e.g. when the viewer does not support this function). + + llDetectedTouchUV + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + Index + + type + integer + tooltip + Index of detection information + + + + tooltip + Returns a vector that is the texture coordinates for where the prim was touched.\nThe X and Y vector positions contain the U and V face coordinates respectively.\nTOUCH_INVALID_TEXCOORD is returned if the touch UV coordinates cannot be determined (e.g. when the viewer does not support this function). + + llDetectedType + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + Number + + type + integer + tooltip + + + + + tooltip + Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object.\nReturns 0 if number is not a valid index.\nNote that number is a bit-field, so comparisons need to be a bitwise checked. e.g.:\ninteger iType = llDetectedType(0);\n{\n // ...do stuff with the agent\n} + + llDetectedVel + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + Number + + type + integer + tooltip + + + + + tooltip + Returns the velocity of the detected object Number.\nReturns<0.0, 0.0, 0.0> if Number is not a valid offset. + + llDialog + + energy + 10.0 + sleep + 0.1 + return + void + arguments + + + AvatarID + + type + key + tooltip + + + + + Text + + type + string + tooltip + + + + + Buttons + + type + list + tooltip + + + + + Channel + + type + integer + tooltip + + + + + tooltip + Shows a dialog box on the avatar's screen with the message.\n + Up to 12 strings in the list form buttons.\n + If a button is clicked, the name is chatted on Channel.\nOpens a "notify box" in the given avatars screen displaying the message.\n + Up to twelve buttons can be specified in a list of strings. When the user clicks a button, the name of the button is said on the specified channel.\n + Channels work just like llSay(), so channel 0 can be heard by everyone.\n + The chat originates at the object's position, not the avatar's position, even though it is said as the avatar (uses avatar's UUID and Name etc.).\n + Examples:\n + llDialog(who, "Are you a boy or a girl?", [ "Boy", "Girl" ], -4913);\n + llDialog(who, "This shows only an OK button.", [], -192);\n + llDialog(who, "This chats so you can 'hear' it.", ["Hooray"], 0); + + llDie + + energy + 0.0 + sleep + 0.0 + return + void + arguments + + tooltip + Delete the object which holds the script. + + llDumpList2String + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + Source + + type + list + tooltip + + + + + Separator + + type + string + tooltip + + + + + tooltip + Returns the list as a single string, using Separator between the entries.\nWrite the list out as a single string, using Separator between values. + + llEdgeOfWorld + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + Position + + type + vector + tooltip + + + + + Direction + + type + vector + tooltip + + + + + tooltip + Checks to see whether the border hit by Direction from Position is the edge of the world (has no neighboring region).\nReturns TRUE if the line along Direction from Position hits the edge of the world in the current simulator, returns FALSE if that edge crosses into another simulator. + + llEjectFromLand + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + AvatarID + + type + key + tooltip + + + + + tooltip + Ejects AvatarID from land that you own.\nEjects AvatarID from land that the object owner (group or resident) owns. + + llEmail + + energy + 10.0 + sleep + 20.0 + return + void + arguments + + + Address + + type + string + tooltip + + + + + Subject + + type + string + tooltip + + + + + Text + + type + string + tooltip + + + + + tooltip + Sends email to Address with Subject and Message.\nSends an email to Address with Subject and Message. + + llEscapeURL + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + URL + + type + string + tooltip + + + + + tooltip + Returns an escaped/encoded version of url, replacing spaces with %20 etc.\nReturns the string that is the URL-escaped version of URL (replacing spaces with %20, etc.).\n + This function returns the UTF-8 encoded escape codes for selected characters. + + llEuler2Rot + + energy + 10.0 + sleep + 0.0 + return + rotation + arguments + + + Vector + + type + vector + tooltip + + + + + tooltip + Returns the rotation representation of the Euler angles.\nReturns the rotation represented by the Euler Angle. + + llEvade + + energy + + sleep + + return + void + arguments + + + TargetID + + type + key + tooltip + Agent or object to evade. + + + + Options + + type + list + tooltip + No options yet. + + + + tooltip + Evade a specified target.\nCharacters will (roughly) try to hide from their pursuers if there is a good hiding spot along their fleeing path. Hiding means no direct line of sight from the head of the character (centre of the top of its physics bounding box) to the head of its pursuer and no direct path between the two on the navigation-mesh. + + llExecCharacterCmd + + energy + + sleep + + return + void + arguments + + + Command + + type + integer + tooltip + Command to send. + + + + Options + + type + list + tooltip + Height for CHARACTER_CMD_JUMP. + + + + tooltip + Execute a character command.\nSend a command to the path system.\nCurrently only supports stopping the current path-finding operation or causing the character to jump. + + llFabs + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + Value + + type + float + tooltip + + + + + tooltip + Returns the positive version of Value.\nReturns the absolute value of Value. + + llFleeFrom + + energy + + sleep + + return + void + arguments + + + Source + + type + vector + tooltip + Global coordinate from which to flee. + + + + Distance + + type + float + tooltip + Distance in meters to flee from the source. + + + + Options + + type + list + tooltip + No options available at this time. + + + + tooltip + Flee from a point.\nDirects a character (llCreateCharacter) to keep away from a defined position in the region or adjacent regions. + + llFloor + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + Value + + type + float + tooltip + + + + + tooltip + Returns largest integer value <= Value. + + llForceMouselook + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Enable + + type + integer + tooltip + Boolean, if TRUE when an avatar sits on the prim, the avatar will be forced into mouse-look mode.\nFALSE is the default setting and will undo a previously set TRUE or do nothing. + + + + tooltip + If Enable is TRUE any avatar that sits on this object is forced into mouse-look mode.\nAfter calling this function with Enable set to TRUE, any agent sitting down on the prim will be forced into mouse-look.\nJust like llSitTarget, this changes a permanent property of the prim (not the object) and needs to be reset by calling this function with Enable set to FALSE in order to disable it. + + llFrand + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + Magnitude + + type + float + tooltip + + + + + tooltip + Returns a pseudo random number in the range [0, Magnitude] or [Magnitude, 0].\nReturns a pseudo-random number between [0, Magnitude]. + + llGenerateKey + + energy + 0 + sleep + 0 + return + key + arguments + + tooltip + Generates a key (SHA-1 hash) using UUID generation to create a unique key.\nAs the UUID produced is versioned, it should never return a value of NULL_KEY.\nThe specific UUID version is an implementation detail that has changed in the past and may change again in the future. Do not depend upon the UUID that is returned to be version 5 SHA-1 hash. + + llGetAccel + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + tooltip + Returns the acceleration of the object relative to the region's axes.\nGets the acceleration of the object. + + llGetAgentInfo + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + AvatarID + + type + key + tooltip + + + + + tooltip + Returns an integer bit-field containing the agent information about id.\n + Returns AGENT_FLYING, AGENT_ATTACHMENTS, AGENT_SCRIPTED, AGENT_SITTING, AGENT_ON_OBJECT, AGENT_MOUSELOOK, AGENT_AWAY, AGENT_BUSY, AGENT_TYPING, AGENT_CROUCHING, AGENT_ALWAYS_RUN, AGENT_WALKING and/or AGENT_IN_AIR.\nReturns information about the given agent ID as a bit-field of agent info constants. + + llGetAgentLanguage + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + AvatarID + + type + key + tooltip + + + + + tooltip + Returns the language code of the preferred interface language of the avatar.\nReturns a string that is the language code of the preferred interface language of the resident. + + llGetAgentList + + energy + 10.0 + sleep + 0.0 + return + list + arguments + + + Scope + + type + integer + tooltip + The scope (region, parcel, parcel same owner) to return agents for. + + + + Options + + type + list + tooltip + List of options to apply. Current unused. + + + + tooltip + Requests a list of agents currently in the region, limited by the scope parameter.\nReturns a list [key UUID-0, key UUID-1, ..., key UUID-n] or [string error_msg] - returns avatar keys for all agents in the region limited to the area(s) specified by scope + + llGetAgentSize + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + AvatarID + + type + key + tooltip + + + + + tooltip + If the avatar is in the same region, returns the size of the bounding box of the requested avatar by id, otherwise returns ZERO_VECTOR.\nIf the agent is in the same region as the object, returns the size of the avatar. + + llGetAlpha + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + Face + + type + integer + tooltip + + + + + tooltip + Returns the alpha value of Face.\nReturns the 'alpha' of the given face. If face is ALL_SIDES the value returned is the mean average of all faces. + + llGetAndResetTime + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + tooltip + Returns the script time in seconds and then resets the script timer to zero.\nGets the time in seconds since starting and resets the time to zero. + + llGetAnimation + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + AvatarID + + type + key + tooltip + + + + + tooltip + Returns the name of the currently playing locomotion animation for the avatar id.\nReturns the currently playing animation for the specified avatar ID. + + llGetAnimationList + + energy + 10.0 + sleep + 0.0 + return + list + arguments + + + AvatarID + + type + key + tooltip + + + + + tooltip + Returns a list of keys of playing animations for an avatar.\nReturns a list of keys of all playing animations for the specified avatar ID. + + llGetAnimationOverride + + energy + 0 + sleep + 0 + return + string + arguments + + + AnimationState + + type + string + tooltip + + + + + tooltip + Returns a string that is the name of the animation that is used for the specified animation state\nTo use this function the script must obtain either the PERMISSION_OVERRIDE_ANIMATIONS or PERMISSION_TRIGGER_ANIMATION permission (automatically granted to attached objects). + + llGetAttached + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + tooltip + Returns the object's attachment point, or 0 if not attached. + + llGetAttachedList + + energy + 10.0 + sleep + 0.0 + return + list + arguments + + + ID + + type + key + tooltip + Avatar to get attachments + + + + tooltip + Returns a list of keys of all visible (not HUD) attachments on the avatar identified by the ID argument + + llGetBoundingBox + + energy + 10.0 + sleep + 0.0 + return + list + arguments + + + ID + + type + key + tooltip + + + + + tooltip + Returns the bounding box around the object (including any linked prims) relative to its root prim, as a list in the format [ (vector) min_corner, (vector) max_corner ]. + + llGetCameraPos + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + tooltip + Returns the current camera position for the agent the task has permissions for.\nReturns the position of the camera, of the user that granted the script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_VECTOR. + + llGetCameraRot + + energy + 10.0 + sleep + 0.0 + return + rotation + arguments + + tooltip + Returns the current camera orientation for the agent the task has permissions for. If no user has granted the PERMISSION_TRACK_CAMERA permission, returns ZERO_ROTATION. + + llGetCenterOfMass + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + tooltip + Returns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass). + + llGetClosestNavPoint + + energy + + sleep + + return + list + arguments + + + Point + + type + vector + tooltip + A point in region-local space. + + + + Options + + type + list + tooltip + No options at this time. + + + + tooltip + Get the closest navigable point to the point provided.\nThe function accepts a point in region-local space (like all the other path-finding methods) and returns either an empty list or a list containing a single vector which is the closest point on the navigation-mesh to the point provided. + + llGetColor + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + Face + + type + integer + tooltip + + + + + tooltip + Returns the color on Face.\nReturns the color of Face as a vector of red, green, and blue values between 0 and 1. If face is ALL_SIDES the color returned is the mean average of each channel. + + llGetCreator + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + tooltip + Returns a key for the creator of the prim.\nReturns the key of the object's original creator. Similar to llGetOwner. + + llGetDate + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + tooltip + Returns the current date in the UTC time zone in the format YYYY-MM-DD.\nReturns the current UTC date as YYYY-MM-DD. + + llGetDisplayName + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + AvatarID + + type + key + tooltip + Avatar UUID that is in the same region, or is otherwise known to the region. + + + + tooltip + Returns the display name of an avatar, if the avatar is connected to the current region, or if the name has been cached. Otherwise, returns an empty string. Use llRequestDisplayName if the avatar may be absent from the region. + + llGetEnergy + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + tooltip + Returns how much energy is in the object as a percentage of maximum. + + llGetEnv + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + DataRequest + + type + string + tooltip + The type of data to request. Any other string will cause an empty string to be returned. + + + + tooltip + Returns a string with the requested data about the region. + + llGetExperienceDetails + + energy + 10.0 + sleep + 0.0 + return + list + arguments + + + ExperienceID + + type + key + tooltip + May be NULL_KEY to retrieve the details for the script's Experience + + + + tooltip + + Returns a list with the following Experience properties: [Experience Name, Owner ID, Group ID, Experience ID, State, State Message]. State is an integer corresponding to one of the constants XP_ERROR_... and State Message is the string returned by llGetExperienceErrorMessage for that integer. + + + llGetExperienceErrorMessage + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + Error + + type + integer + tooltip + An Experience error code to translate. + + + + tooltip + + Returns a string describing the error code passed or the string corresponding with XP_ERROR_UNKNOWN_ERROR if the value is not a valid Experience error code. + + + llGetForce + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + tooltip + Returns the force (if the script is physical).\nReturns the current force if the script is physical. + + llGetFreeMemory + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + tooltip + Returns the number of free bytes of memory the script can use.\nReturns the available free space for the current script. This is inaccurate with LSO. + + llGetFreeURLs + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + tooltip + Returns the number of available URLs for the current script.\nReturns an integer that is the number of available URLs. + + llGetGeometricCenter + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + tooltip + Returns the vector that is the geometric center of the object relative to the root prim. + + llGetGMTclock + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + tooltip + Returns the time in seconds since midnight GMT.\nGets the time in seconds since midnight in GMT/UTC. + + llGetHTTPHeader + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + HTTPRequestID + + type + key + tooltip + A valid HTTP request key + + + + Header + + type + string + tooltip + Header value name + + + + tooltip + Returns the value for header for request_id.\nReturns a string that is the value of the Header for HTTPRequestID. + + llGetInventoryCreator + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + + InventoryItem + + type + string + tooltip + + + + + tooltip + Returns a key for the creator of the inventory item.\nThis function returns the UUID of the creator of item. If item is not found in inventory, the object says "No item named 'name'". + + llGetInventoryKey + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + + InventoryItem + + type + string + tooltip + + + + + tooltip + Returns the key that is the UUID of the inventory named.\nReturns the key of the inventory named. + + llGetInventoryName + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + InventoryType + + type + integer + tooltip + Inventory item type + + + + Index + + type + integer + tooltip + Index number of inventory item. + + + + tooltip + Returns the name of the inventory item of a given type, specified by index number.\nUse the inventory constants INVENTORY_* to specify the type. + + llGetInventoryNumber + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + InventoryType + + type + integer + tooltip + Inventory item type + + + + tooltip + Returns the quantity of items of a given type (INVENTORY_* flag) in the prim's inventory.\nUse the inventory constants INVENTORY_* to specify the type. + + llGetInventoryPermMask + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + InventoryItem + + type + string + tooltip + Inventory item name. + + + + BitMask + + type + integer + tooltip + MASK_BASE, MASK_OWNER, MASK_GROUP, MASK_EVERYONE or MASK_NEXT + + + + tooltip + Returns the requested permission mask for the inventory item.\nReturns the requested permission mask for the inventory item defined by InventoryItem. If item is not in the object's inventory, llGetInventoryPermMask returns FALSE and causes the object to say "No item named '<item>'", where "<item>" is item. + + llGetInventoryType + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + InventoryItem + + type + string + tooltip + + + + + tooltip + Returns the type of the named inventory item.\nLike all inventory functions, llGetInventoryType is case-sensitive. + + llGetKey + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + tooltip + Returns the key of the prim the script is attached to.\nGet the key for the object which has this script. + + llGetLandOwnerAt + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + + Position + + type + vector + tooltip + + + + + tooltip + Returns the key of the land owner, returns NULL_KEY if public.\nReturns the key of the land owner at Position, or NULL_KEY if public. + + llGetLinkKey + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + + LinkNumber + + type + integer + tooltip + + + + + tooltip + Returns the key of the linked prim LinkNumber.\nReturns the key of LinkNumber in the link set. + + llGetLinkMedia + + energy + 0.0 + sleep + 0.0 + return + list + arguments + + + LinkNumber + + type + integer + tooltip + Link number (0: unlinked, 1: root prim, >1: child prims) or a LINK_* flag + + + + Face + + type + integer + tooltip + The prim's side number + + + + Parameters + + type + list + tooltip + A list of PRIM_* property constants to return values of. + + + + tooltip + Get the media parameters for a particular face on linked prim, given the desired list of parameter names. Returns a list of values in the order requested. Returns an empty list if no media exists on the face. + + llGetLinkName + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + LinkNumber + + type + integer + tooltip + + + + + tooltip + Returns the name of LinkNumber in a link set.\nReturns the name of LinkNumber the link set. + + llGetLinkNumber + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + tooltip + Returns the link number of the prim containing the script (0 means not linked, 1 the prim is the root, 2 the prim is the first child, etc.).\nReturns the link number of the prim containing the script. 0 means no link, 1 the root, 2 for first child, etc. + + llGetLinkNumberOfSides + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + LinkNumber + + type + integer + tooltip + Link number (0: unlinked, 1: root prim, >1: child prims) or a LINK_* flag. + + + + tooltip + Returns the number of sides of the specified linked prim.\nReturns an integer that is the number of faces (or sides) of the prim link. + + llGetLinkPrimitiveParams + + energy + 10.0 + sleep + 0.0 + return + list + arguments + + + LinkNumber + + type + integer + tooltip + Link number (0: unlinked, 1: root prim, >1: child prims) or a LINK_* flag. + + + + Parameters + + type + list + tooltip + PRIM_* flags. + + + + tooltip + Returns the list of primitive attributes requested in the Parameters list for LinkNumber.\nPRIM_* flags can be broken into three categories, face flags, prim flags, and object flags.\n* Supplying a prim or object flag will return that flags attributes.\n* Face flags require the user to also supply a face index parameter. + + llGetListEntryType + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + ListVariable + + type + list + tooltip + + + + + Index + + type + integer + tooltip + + + + + tooltip + Returns the type of the index entry in the list (TYPE_INTEGER, TYPE_FLOAT, TYPE_STRING, TYPE_KEY, TYPE_VECTOR, TYPE_ROTATION, or TYPE_INVALID if index is off list).\nReturns the type of the variable at Index in ListVariable. + + llGetListLength + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + ListVariable + + type + list + tooltip + + + + + tooltip + Returns the number of elements in the list.\nReturns the number of elements in ListVariable. + + llGetLocalPos + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + tooltip + Returns the position relative to the root.\nReturns the local position of a child object relative to the root. + + llGetLocalRot + + energy + 10.0 + sleep + 0.0 + return + rotation + arguments + + tooltip + Returns the rotation local to the root.\nReturns the local rotation of a child object relative to the root. + + llGetMass + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + tooltip + Returns the mass of object that the script is attached to.\nReturns the scripted object's mass. When called from a script in a link-set, the parent will return the sum of the link-set weights, while a child will return just its own mass. When called from a script inside an attachment, this function will return the mass of the avatar it's attached to, not its own. + + llGetMassMKS + + energy + + sleep + 0.0 + return + float + arguments + + tooltip + Acts as llGetMass(), except that the units of the value returned are Kg. + + llGetMaxScaleFactor + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + tooltip + Returns a float that is the largest scaling factor that can be used with llScaleByFactor to resize the object. This maximum is determined by the Linkability Rules and prim scale limits. + + llGetMemoryLimit + + energy + + sleep + 0.0 + return + integer + arguments + + tooltip + Get the maximum memory a script can use, in bytes. + + llGetMinScaleFactor + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + tooltip + Returns a float that is the smallest scaling factor that can be used with llScaleByFactor to resize the object. This minimum is determined by the prim scale limits. + + llGetNextEmail + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Address + + type + string + tooltip + + + + + Subject + + type + string + tooltip + + + + + tooltip + Fetch the next queued email with that matches the given address and/or subject, via the email event.\nIf the parameters are blank, they are not used for filtering. + + llGetNotecardLine + + energy + 10.0 + sleep + 0.1 + return + key + arguments + + + NotecardName + + type + string + tooltip + + + + + LineNumber + + type + integer + tooltip + + + + + tooltip + Returns LineNumber from NotecardName via the dataserver event. The line index starts at zero.\nIf the requested line is passed the end of the note-card the dataserver event will return the constant EOF string.\nThe key returned by this function is a unique identifier which will be supplied to the dataserver event in the requested parameter. + + llGetNumberOfNotecardLines + + energy + 10.0 + sleep + 0.1 + return + key + arguments + + + NotecardName + + type + string + tooltip + + + + + tooltip + Returns the number of lines contained within a notecard via the dataserver event.\nThe key returned by this function is a query ID for identifying the dataserver reply. + + llGetNumberOfPrims + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + tooltip + Returns the number of prims in a link set the script is attached to.\nReturns the number of prims in (and avatars seated on) the object the script is in. + + llGetNumberOfSides + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + tooltip + Returns the number of faces (or sides) of the prim.\nReturns the number of sides of the prim which has the script. + + llGetObjectDesc + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + tooltip + Returns the description of the prim the script is attached to.\nReturns the description of the scripted object/prim. You can set the description using llSetObjectDesc. + + llGetObjectDetails + + energy + 10.0 + sleep + 0.0 + return + list + arguments + + + ID + + type + key + tooltip + Prim or avatar UUID that is in the same region. + + + + Parameters + + type + list + tooltip + List of OBJECT_* flags. + + + + tooltip + Returns a list of object details specified in the Parameters list for the object or avatar in the region with key ID.\nParameters are specified by the OBJECT_* constants. + + llGetObjectMass + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + ID + + type + key + tooltip + + + + + tooltip + Returns the mass of the avatar or object in the region.\nGets the mass of the object or avatar corresponding to ID. + + llGetObjectName + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + tooltip + Returns the name of the prim which the script is attached to.\nReturns the name of the prim (not object) which contains the script. + + llGetObjectPermMask + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + Category + + type + integer + tooltip + Category is one of MASK_BASE, MASK_OWNER, MASK_GROUP, MASK_EVERYONE, or MASK_NEXT + + + + tooltip + Returns the permission mask of the requested category for the object. + + llGetObjectPrimCount + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + ObjectID + + type + key + tooltip + + + + + tooltip + Returns the total number of prims for an object in the region.\nReturns the prim count for any object id in the same region. + + llGetOmega + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + tooltip + Returns the rotation velocity in radians per second.\nReturns a vector that is the rotation velocity of the object in radians per second. + + llGetOwner + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + tooltip + Returns the object owner's UUID.\nReturns the key for the owner of the object. + + llGetOwnerKey + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + + ObjectID + + type + key + tooltip + + + + + tooltip + Returns the owner of ObjectID.\nReturns the key for the owner of object ObjectID. + + llGetParcelDetails + + energy + 10.0 + sleep + 0.0 + return + list + arguments + + + Position + + type + vector + tooltip + Location within the region. + + + + ParcelDetails + + type + list + tooltip + List of details requested for the specified parcel location. + + + + tooltip + Returns a list of parcel details specified in the ParcelDetails list for the parcel at Position.\nParameters is one or more of: PARCEL_DETAILS_NAME, _DESC, _OWNER, _GROUP, _AREA, _ID, _SEE_AVATARS.\nReturns a list that is the parcel details specified in ParcelDetails (in the same order) for the parcel at Position. + + llGetParcelFlags + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + Position + + type + vector + tooltip + + + + + tooltip + Returns a mask of the parcel flags (PARCEL_FLAG_*) for the parcel that includes the point Position.\nReturns a bit-field specifying the parcel flags (PARCEL_FLAG_*) for the parcel at Position. + + llGetParcelMaxPrims + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + Position + + type + vector + tooltip + Region coordinates (z is ignored) of parcel. + + + + SimWide + + type + integer + tooltip + Boolean. If FALSE then the return is the maximum prims supported by the parcel. If TRUE then it is the combined number of prims on all parcels in the region owned by the specified parcel's owner. + + + + tooltip + Returns the maximum number of prims allowed on the parcel at Position for a given scope.\nThe scope may be set to an individual parcel or the combined resources of all parcels with the same ownership in the region. + + llGetParcelMusicURL + + energy + + sleep + + return + string + arguments + + tooltip + Gets the streaming audio URL for the parcel object is on.\nThe object owner, avatar or group, must also be the land owner. + + llGetParcelPrimCount + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + Position + + type + vector + tooltip + Region coordinates of parcel to query. + + + + Category + + type + integer + tooltip + A PARCEL_COUNT_* flag. + + + + SimWide + + type + integer + tooltip + Boolean. If FALSE then the return is the maximum prims supported by the parcel. If TRUE then it is the combined number of prims on all parcels in the region owned by the specified parcel's owner. + + + + tooltip + Returns the number of prims on the parcel at Position of the given category.\nCategories: PARCEL_COUNT_TOTAL, _OWNER, _GROUP, _OTHER, _SELECTED, _TEMP.\nReturns the number of prims used on the parcel at Position which are in Category.\nIf SimWide is TRUE, it returns the total number of objects for all parcels with matching ownership in the category specified.\nIf SimWide is FALSE, it returns the number of objects on this specific parcel in the category specified + + llGetParcelPrimOwners + + energy + 10.0 + sleep + 2.0 + return + list + arguments + + + Position + + type + vector + tooltip + + + + + tooltip + Returns a list of up to 100 residents who own objects on the parcel at Position, with per-owner land impact totals.\nRequires owner-like permissions for the parcel, and for the script owner to be present in the region.\nThe list is formatted as [ key agentKey1, integer agentLI1, key agentKey2, integer agentLI2, ... ], sorted by agent key.\nThe integers are the combined land impacts of the objects owned by the corresponding agents. + + llGetPermissions + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + tooltip + Returns an integer bitmask of the permissions that have been granted to the script. Individual permissions can be determined using a bit-wise "and" operation against the PERMISSION_* constants + + llGetPermissionsKey + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + tooltip + Returns the key of the avatar that last granted or declined permissions to the script.\nReturns NULL_KEY if permissions were never granted or declined. + + llGetPhysicsMaterial + + energy + + sleep + + return + list + arguments + + tooltip + Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density]. + + llGetPos + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + tooltip + Returns the position of the task in region coordinates.\nReturns the vector position of the task in region coordinates. + + llGetPrimitiveParams + + energy + 10.0 + sleep + 0.2 + return + list + arguments + + + Parameters + + type + list + tooltip + PRIM_* flags and face parameters + + + + tooltip + Returns the primitive parameters specified in the parameters list.\nReturns primitive parameters specified in the Parameters list. + + llGetPrimMediaParams + + energy + 10.0 + sleep + 0.1 + return + list + arguments + + + Face + + type + integer + tooltip + face number + + + + Parameters + + type + list + tooltip + One or more PRIM_MEDIA_* flags + + + + tooltip + Returns the media parameters for a particular face on an object, given the desired list of parameter names, in the order requested. Returns an empty list if no media exists on the face. + + llGetRegionAgentCount + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + tooltip + Returns the number of avatars in the region.\nReturns an integer that is the number of avatars in the region. + + llGetRegionCorner + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + tooltip + Returns a vector, in meters, that is the global location of the south-west corner of the region which the object is in.\nReturns the Region-Corner of the simulator containing the task. The region-corner is a vector (values in meters) representing distance from the first region. + + llGetRegionFlags + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + tooltip + Returns the region flags (REGION_FLAG_*) for the region the object is in.\nReturns a bit-field specifying the region flags (REGION_FLAG_*) for the region the object is in. + + llGetRegionFPS + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + tooltip + Returns the mean region frames per second. + + llGetRegionName + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + tooltip + Returns the current region name. + + llGetRegionTimeDilation + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + tooltip + Returns the current time dilation as a float between 0.0 (full dilation) and 1.0 (no dilation).\nReturns the current time dilation as a float between 0.0 and 1.0. + + llGetRootPosition + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + tooltip + Returns the position (in region coordinates) of the root prim of the object which the script is attached to.\nThis is used to allow a child prim to determine where the root is. + + llGetRootRotation + + energy + 10.0 + sleep + 0.0 + return + rotation + arguments + + tooltip + Returns the rotation (relative to the region) of the root prim of the object which the script is attached to.\nGets the global rotation of the root object of the object script is attached to. + + llGetRot + + energy + 10.0 + sleep + 0.0 + return + rotation + arguments + + tooltip + Returns the rotation relative to the region's axes.\nReturns the rotation. + + llGetScale + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + tooltip + Returns the scale of the prim.\nReturns a vector that is the scale (dimensions) of the prim. + + llGetScriptName + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + tooltip + Returns the name of the script that this function is used in.\nReturns the name of this script. + + llGetScriptState + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + ScriptName + + type + string + tooltip + + + + + tooltip + Returns TRUE if the script named is running.\nReturns TRUE if ScriptName is running. + + llGetSimStats + + energy + 0 + sleep + 0 + return + float + arguments + + + StatType + + type + integer + tooltip + Statistic type. Currently only SIM_STAT_PCT_CHARS_STEPPED is supported. + + + + tooltip + Returns a float that is the requested statistic. + + llGetSimulatorHostname + + energy + 10.0 + sleep + 10.0 + return + string + arguments + + tooltip + Returns the host-name of the machine which the script is running on.\nFor example, "sim225.agni.lindenlab.com". + + llGetSPMaxMemory + + energy + + sleep + 0.0 + return + integer + arguments + + tooltip + Returns the maximum used memory for the current script. Only valid after using PROFILE_SCRIPT_MEMORY. Non-mono scripts always use 16k.\nReturns the integer of the most bytes used while llScriptProfiler was last active. + + llGetStartParameter + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + tooltip + Returns an integer that is the script rez parameter.\nIf the object was rezzed by an agent, this function returns 0. + + llGetStaticPath + + energy + 10.0 + sleep + 0.0 + return + list + arguments + + + Start + + type + vector + tooltip + Starting position. + + + + End + + type + vector + tooltip + Ending position. + + + + Radius + + type + float + tooltip + Radius of the character that the path is for, between 0.125m and 5.0m. + + + + Parameters + + type + list + tooltip + Currently only accepts the parameter CHARACTER_TYPE; the options are identical to those used for llCreateCharacter. The default value is CHARACTER_TYPE_NONE. + + + + tooltip + + + llGetStatus + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + StatusFlag + + type + integer + tooltip + A STATUS_* flag + + + + tooltip + Returns boolean value of the specified status (e.g. STATUS_PHANTOM) of the object the script is attached to. + + llGetSubString + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + String + + type + string + tooltip + + + + + Start + + type + integer + tooltip + + + + + End + + type + integer + tooltip + + + + + tooltip + Returns a sub-string from String, in a range specified by the Start and End indicies (inclusive).\nUsing negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would capture the entire string.\nIf Start is greater than End, the sub string is the exclusion of the entries. + + llGetSunDirection + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + tooltip + Returns a normalized vector of the direction of the sun in the region.\nReturns the sun's direction on the simulator. + + llGetTexture + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + Face + + type + integer + tooltip + + + + + tooltip + Returns a string that is the texture on face (the inventory name if it is a texture in the prim's inventory, otherwise the key).\nReturns the texture of a face, if it is found in object inventory, its key otherwise. + + llGetTextureOffset + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + Face + + type + integer + tooltip + + + + + tooltip + Returns the texture offset of face in the x and y components of a vector. + + llGetTextureRot + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + Face + + type + integer + tooltip + + + + + tooltip + Returns the texture rotation of side. + + llGetTextureScale + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + Face + + type + integer + tooltip + + + + + tooltip + Returns the texture scale of side in the x and y components of a vector.\nReturns the texture scale of a side in the x and y components of a vector. + + llGetTime + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + tooltip + Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime. + + llGetTimeOfDay + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + tooltip + Returns the time in seconds since Second Life midnight or since region up-time, whichever is smaller.\nThe Second Life day cycle is 4 hours. + + llGetTimestamp + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + tooltip + Returns a time-stamp (UTC time zone) in the format: YYYY-MM-DDThh:mm:ss.ff..fZ. + + llGetTorque + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + tooltip + Returns the torque (if the script is physical).\nReturns a vector that is the torque (if the script is physical). + + llGetUnixTime + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + tooltip + Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock. + + llGetUsedMemory + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + tooltip + Returns the current used memory for the current script. Non-mono scripts always use 16K.\nReturns the integer of the number of bytes of memory currently in use by the script. Non-mono scripts always use 16K. + + llGetUsername + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + AvatarID + + type + key + tooltip + + + + + tooltip + Returns the username of an avatar, if the avatar is connected to the current region, or if the name has been cached. Otherwise, returns an empty string. Use llRequestUsername if the avatar may be absent from the region. + + llGetVel + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + tooltip + Returns the velocity of the object.\nReturns a vector that is the velocity of the object. + + llGetWallclock + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + tooltip + Returns the time in seconds since midnight California Pacific time (PST/PDT).\nReturns the time in seconds since simulator's time-zone midnight (Pacific Time). + + llGiveInventory + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + TargetID + + type + key + tooltip + + + + + InventoryItem + + type + string + tooltip + + + + + tooltip + Give InventoryItem to destination represented by TargetID, as permitted by the permissions system.\nTargetID may be any agent or an object in the same region. + + llGiveInventoryList + + energy + 10.0 + sleep + 3.0 + return + void + arguments + + + TargetID + + type + key + tooltip + + + + + FolderName + + type + string + tooltip + + + + + InventoryItems + + type + list + tooltip + + + + + tooltip + Give InventoryItems to destination (represented by TargetID) as a new folder of items, as permitted by the permissions system.\nTargetID may be any agent or an object in the same region. If TargetID is an object, the items are passed directly to the object inventory (no folder is created). + + llGiveMoney + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + AvatarID + + type + key + tooltip + + + + + Amount + + type + integer + tooltip + + + + + tooltip + Transfers Amount of L$ from script owner to AvatarID.\nThis call will silently fail if PERMISSION_DEBIT has not been granted. + + llGodLikeRezObject + + god-mode + true + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + InventoryItemID + + type + key + tooltip + + + + + Position + + type + vector + tooltip + + + + + tooltip + Rez directly off of a UUID if owner has god-bit set. + + llGround + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + Offset + + type + vector + tooltip + + + + + tooltip + Returns the ground height at the object position + offset.\nReturns the ground height at the object's position + Offset. + + llGroundContour + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + Offset + + type + vector + tooltip + + + + + tooltip + Returns the ground contour direction below the object position + Offset.\nReturns the ground contour at the object's position + Offset. + + llGroundNormal + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + Offset + + type + vector + tooltip + + + + + tooltip + Returns the ground normal below the object position + offset.\nReturns the ground contour at the object's position + Offset. + + llGroundRepel + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Height + + type + float + tooltip + Distance above the ground. + + + + Water + + type + integer + tooltip + Boolean, if TRUE then hover above water too. + + + + Tau + + type + float + tooltip + Seconds to critically damp in. + + + + tooltip + Critically damps to height if within height * 0.5 of level (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to fHeight if within fHeight * 0.5 of ground or water level.\n + The height is above ground level if iWater is FALSE or above the higher of land and water if iWater is TRUE.\n + Do not use with vehicles. Only works in physics-enabled objects. + + llGroundSlope + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + Offset + + type + vector + tooltip + + + + + tooltip + Returns the ground slope below the object position + Offset.\nReturns the ground slope at the object position + Offset. + + llHTTPRequest + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + + URL + + type + string + tooltip + A valid HTTP/HTTPS URL. + + + + Parameters + + type + list + tooltip + Configuration parameters, specified as HTTP_* flag-value pairs. + + + + Body + + type + string + tooltip + Contents of the request. + + + + tooltip + Sends an HTTP request to the specified URL with the Body of the request and Parameters.\nReturns a key that is a handle identifying the HTTP request made. + + llHTTPResponse + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + HTTPRequestID + + type + key + tooltip + A valid HTTP request key. + + + + Status + + type + integer + tooltip + HTTP Status (200, 400, 404, etc.). + + + + Body + + type + string + tooltip + Contents of the response. + + + + tooltip + Responds to an incoming HTTP request which was triggerd by an http_request event within the script. HTTPRequestID specifies the request to respond to (this ID is supplied in the http_request event handler). Status and Body specify the status code and message to respond with. + + llInsertString + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + TargetVariable + + type + string + tooltip + + + + + Position + + type + integer + tooltip + + + + + SourceVariable + + type + string + tooltip + + + + + tooltip + Inserts SourceVariable into TargetVariable at Position, and returns the result.\nInserts SourceVariable into TargetVariable at Position and returns the result. Note this does not alter TargetVariable. + + llInstantMessage + + energy + 10.0 + sleep + 2.0 + return + void + arguments + + + AvatarID + + type + key + tooltip + + + + + Text + + type + string + tooltip + + + + + tooltip + IMs Text to the user identified.\nSend Text to the user as an instant message. + + llIntegerToBase64 + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + Value + + type + integer + tooltip + + + + + tooltip + Returns a string that is a Base64 big endian encode of Value.\nEncodes the Value as an 8-character Base64 string. + + llJson2List + + energy + 0.0 + sleep + 0.0 + return + list + arguments + + + JSON + + type + string + tooltip + + + + + tooltip + Converts the top level of the JSON string to a list. + + llJsonGetValue + + energy + 0.0 + sleep + 0.0 + return + string + arguments + + + JSON + + type + string + tooltip + + + + + Specifiers + + type + list + tooltip + + + + + tooltip + Gets the value indicated by Specifiers from the JSON string. + + llJsonSetValue + + energy + 0.0 + sleep + 0.0 + return + string + arguments + + + JSON + + type + string + tooltip + + + + + Specifiers + + type + list + tooltip + + + + + Value + + type + string + tooltip + + + + + tooltip + Returns a new JSON string that is the JSON given with the Value indicated by Specifiers set to Value. + + llJsonValueType + + energy + 0.0 + sleep + 0.0 + return + string + arguments + + + JSON + + type + string + tooltip + + + + + Specifiers + + type + list + tooltip + + + + + tooltip + Returns the type constant (JSON_*) for the value in JSON indicated by Specifiers. + + llKey2Name + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + ID + + type + key + tooltip + Avatar or rezzed prim UUID. + + + + tooltip + Returns the name of the prim or avatar specified by ID. The ID must be a valid rezzed prim or avatar key in the current simulator, otherwise an empty string is returned.\nFor avatars, the returned name is the legacy name + + llKeyCountKeyValue + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + tooltip + + Starts an asychronous transaction the request the number of keys in the data store. The dataserver callback will be executed with the key returned from this call and a string describing the result. The result is commma-delimited list. The first item is an integer specifying if the transaction succeeded (1) or not (0). In the failure case, the second item will be an integer corresponding to one of the XP_ERROR_... constants. In the success case the second item will the the number of keys in the system. + + + llKeysKeyValue + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + + First + + type + integer + tooltip + Index of the first key to return. + + + + Count + + type + integer + tooltip + The number of keys to return. + + + + tooltip + + Starts an asychronous transaction the request a number of keys from the data store. The dataserver callback will be executed with the key returned from this call and a string describing the result. The result is commma-delimited list. The first item is an integer specifying if the transaction succeeded (1) or not (0). In the failure case, the second item will be an integer corresponding to one of the XP_ERROR_... constants. The error XP_ERROR_KEY_NOT_FOUND is returned if First is greater than or equal to the number of keys in the data store. In the success case the subsequent items will be the keys requested. The number of keys returned may be less than requested if the return value is too large or if there is not enough keys remaining. The order keys are returned is not guaranteed but is stable between subsequent calls as long as no keys are added or removed. Because the keys are returned in a comma-delimited list it is not recommended to use commas in key names if this function is used. + + + llLinkParticleSystem + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + LinkNumber + + type + integer + tooltip + Link number (0: unlinked, 1: root prim, >1: child prims) or a LINK_* flag + + + + Rules + + type + list + tooltip + Particle system rules list in the format [ rule1, data1, rule2, data2 . . . ruleN, dataN ] + + + + tooltip + Creates a particle system in prim LinkNumber based on Rules. An empty list removes a particle system from object.\nList format is [ rule-1, data-1, rule-2, data-2 ... rule-n, data-n ].\nThis is identical to llParticleSystem except that it applies to a specified linked prim and not just the prim the script is in. + + llLinkSitTarget + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + LinkNumber + + type + integer + tooltip + Link number (0: unlinked, 1: root prim, >1: child prims) or a LINK_* flag of the prim. + + + + Offset + + type + vector + tooltip + Position for the sit target, relative to the prim's position. + + + + Rotation + + type + rotation + tooltip + Rotation (relative to the prim's rotation) for the avatar. + + + + tooltip + Set the sit location for the linked prim(s). If Offset == <0,0,0> clear it.\nSet the sit location for the linked prim(s). The sit location is relative to the prim's position and rotation. + + llList2CSV + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + ListVariable + + type + list + tooltip + + + + + tooltip + Creates a string of comma separated values from the list.\nCreate a string of comma separated values from the specified list. + + llList2Float + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + ListVariable + + type + list + tooltip + + + + + Index + + type + integer + tooltip + + + + + tooltip + Copies the float at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a float, then zero is returned. + + llList2Integer + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + ListVariable + + type + list + tooltip + + + + + Index + + type + integer + tooltip + + + + + tooltip + Copies the integer at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to an integer, then zero is returned. + + llList2Json + + energy + 0 + sleep + 0 + return + string + arguments + + + JsonType + + type + string + tooltip + Type is JSON_ARRAY or JSON_OBJECT. + + + + Values + + type + list + tooltip + List of values to convert. + + + + tooltip + Converts either a strided list of key:value pairs to a JSON_OBJECT, or a list of values to a JSON_ARRAY. + + llList2Key + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + + ListVariable + + type + list + tooltip + + + + + Index + + type + integer + tooltip + + + + + tooltip + Copies the key at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a key, then null string is returned. + + llList2List + + energy + 10.0 + sleep + 0.0 + return + list + arguments + + + ListVariable + + type + list + tooltip + + + + + Start + + type + integer + tooltip + + + + + End + + type + integer + tooltip + + + + + tooltip + Returns a subset of entries from ListVariable, in a range specified by the Start and End indicies (inclusive).\nUsing negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would capture the entire string.\nIf Start is greater than End, the sub string is the exclusion of the entries. + + llList2ListStrided + + energy + 10.0 + sleep + 0.0 + return + list + arguments + + + ListVariable + + type + list + tooltip + + + + + Start + + type + integer + tooltip + + + + + End + + type + integer + tooltip + + + + + Stride + + type + integer + tooltip + + + + + tooltip + Copies the strided slice of the list from Start to End.\nReturns a copy of the strided slice of the specified list from Start to End. + + llList2Rot + + energy + 10.0 + sleep + 0.0 + return + rotation + arguments + + + ListVariable + + type + list + tooltip + + + + + Index + + type + integer + tooltip + + + + + tooltip + Copies the rotation at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to rotation, thenZERO_ROTATION is returned. + + llList2String + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + ListVariable + + type + list + tooltip + + + + + Index + + type + integer + tooltip + + + + + tooltip + Copies the string at Index in the list.\nReturns the value at Index in the specified list as a string. If Index describes a location not in the list then null string is returned. + + llList2Vector + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + ListVariable + + type + list + tooltip + + + + + Index + + type + integer + tooltip + + + + + tooltip + Copies the vector at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a vector, then ZERO_VECTOR is returned. + + llListen + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + Channel + + type + integer + tooltip + + + + + SpeakersName + + type + string + tooltip + + + + + SpeakersID + + type + key + tooltip + + + + + Text + + type + string + tooltip + + + + + tooltip + Creates a listen callback for Text on Channel from SpeakersName and SpeakersID (SpeakersName, SpeakersID, and/or Text can be empty) and returns an identifier that can be used to deactivate or remove the listen.\nNon-empty values for SpeakersName, SpeakersID, and Text will filter the results accordingly, while empty strings and NULL_KEY will not filter the results, for string and key parameters respectively.\nPUBLIC_CHANNEL is the public chat channel that all avatars see as chat text. DEBUG_CHANNEL is the script debug channel, and is also visible to nearby avatars. All other channels are are not sent to avatars, but may be used to communicate with scripts. + + llListenControl + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + ChannelHandle + + type + integer + tooltip + + + + + Active + + type + integer + tooltip + + + + + tooltip + Makes a listen event callback active or inactive. Pass in the value returned from llListen to the iChannelHandle parameter to specify which listener you are controlling.\nUse boolean values to specify Active + + llListenRemove + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + ChannelHandle + + type + integer + tooltip + + + + + tooltip + Removes a listen event callback. Pass in the value returned from llListen to the iChannelHandle parameter to specify which listener to remove. + + llListFindList + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + ListVariable + + type + list + tooltip + + + + + Find + + type + list + tooltip + + + + + tooltip + Returns the index of the first instance of Find in ListVariable. Returns -1 if not found.\nReturns the position of the first instance of the Find list in the ListVariable. Returns -1 if not found. + + llListInsertList + + energy + 10.0 + sleep + 0.0 + return + list + arguments + + + Target + + type + list + tooltip + + + + + ListVariable + + type + list + tooltip + + + + + Position + + type + integer + tooltip + + + + + tooltip + Returns a list that contains all the elements from Target but with the elements from ListVariable inserted at Position start.\nReturns a new list, created by inserting ListVariable into the Target list at Position. Note this does not alter the Target. + + llListRandomize + + energy + 10.0 + sleep + 0.0 + return + list + arguments + + + ListVariable + + type + list + tooltip + + + + + Stride + + type + integer + tooltip + + + + + tooltip + Returns a version of the input ListVariable which has been randomized by blocks of size Stride.\nIf the remainder from the length of the list, divided by the stride is non-zero, this function does not randomize the list. + + llListReplaceList + + energy + 10.0 + sleep + 0.0 + return + list + arguments + + + Target + + type + list + tooltip + + + + + ListVariable + + type + list + tooltip + + + + + Start + + type + integer + tooltip + + + + + End + + type + integer + tooltip + + + + + tooltip + Returns a list that is Target with Start through End removed and ListVariable inserted at Start.\nReturns a list replacing the slice of the Target list from Start to End with the specified ListVariable. Start and End are inclusive, so 0, 1 would replace the first two entries and 0, 0 would replace only the first list entry. + + llListSort + + energy + 10.0 + sleep + 0.0 + return + list + arguments + + + ListVariable + + type + list + tooltip + List to sort. + + + + Stride + + type + integer + tooltip + Stride length. + + + + Ascending + + type + integer + tooltip + Boolean. TRUE = result in ascending order, FALSE = result in descending order. + + + + tooltip + Returns the specified list, sorted into blocks of stride in ascending order (if Ascending is TRUE, otherwise descending). Note that sort only works if the first entry of each block is the same datatype. + + llListStatistics + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + Operation + + type + integer + tooltip + One of LIST_STAT_* values + + + + ListVariable + + type + list + tooltip + Variable to analyze. + + + + tooltip + Performs a statistical aggregate function, specified by a LIST_STAT_* constant, on ListVariables.\nThis function allows a script to perform a statistical operation as defined by operation on a list composed of integers and floats. + + llLoadURL + + energy + 10.0 + sleep + 0.1 + return + void + arguments + + + AvatarID + + type + key + tooltip + + + + + Text + + type + string + tooltip + + + + + URL + + type + string + tooltip + + + + + tooltip + Shows dialog to avatar AvatarID offering to load web page at URL. If user clicks yes, launches their web browser.\nllLoadURL displays a dialogue box to the user, offering to load the specified web page using the default web browser. + + llLog + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + Value + + type + float + tooltip + + + + + tooltip + Returns the natural logarithm of Value. Returns zero if Value <= 0.\nReturns the base e (natural) logarithm of the specified Value. + + llLog10 + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + Value + + type + float + tooltip + + + + + tooltip + Returns the base 10 logarithm of Value. Returns zero if Value <= 0.\nReturns the base 10 (common) logarithm of the specified Value. + + llLookAt + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Target + + type + vector + tooltip + + + + + Strength + + type + float + tooltip + + + + + Damping + + type + float + tooltip + + + + + tooltip + Cause object name to point its forward axis towards Target, at a force controlled by Strength and Damping.\nGood Strength values are around half the mass of the object and good Damping values are less than 1/10th of the Strength.\nAsymmetrical shapes require smaller Damping. A Strength of 0.0 cancels the look at. + + llLoopSound + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Sound + + type + string + tooltip + + + + + Volume + + type + float + tooltip + + + + + tooltip + Plays specified Sound, looping indefinitely, at Volume (0.0 - 1.0).\nOnly one sound may be attached to an object at a time.\nA second call to llLoopSound with the same key will not restart the sound, but the new volume will be used. This allows control over the volume of already playing sounds.\nSetting the volume to 0 is not the same as calling llStopSound; a sound with 0 volume will continue to loop.\nTo restart the sound from the beginning, call llStopSound before calling llLoopSound again. + + llLoopSoundMaster + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Sound + + type + string + tooltip + + + + + Volume + + type + float + tooltip + + + + + tooltip + Plays attached Sound, looping at volume (0.0 - 1.0), and declares it a sync master.\nBehaviour is identical to llLoopSound, with the addition of marking the source as a "Sync Master", causing "Slave" sounds to sync to it. If there are multiple masters within a viewers interest area, the most audible one (a function of both distance and volume) will win out as the master.\nThe use of multiple masters within a small area is unlikely to produce the desired effect. + + llLoopSoundSlave + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Sound + + type + string + tooltip + + + + + Volume + + type + float + tooltip + + + + + tooltip + Plays attached sound looping at volume (0.0 - 1.0), synced to most audible sync master.\nBehaviour is identical to llLoopSound, unless there is a "Sync Master" present.\nIf a Sync Master is already playing the Slave sound will begin playing from the same point the master is in its loop synchronizing the loop points of both sounds.\nIf a Sync Master is started when the Slave is already playing, the Slave will skip to the correct position to sync with the Master. + + llMakeExplosion + + deprecated + true + energy + 10.0 + sleep + 0.1 + return + void + arguments + + + Particles + + type + integer + tooltip + + + + + Scale + + type + float + tooltip + + + + + Velocity + + type + float + tooltip + + + + + Lifetime + + type + float + tooltip + + + + + Arc + + type + float + tooltip + + + + + Texture + + type + string + tooltip + + + + + Offset + + type + vector + tooltip + + + + + tooltip + Make a round explosion of particles. Deprecated: Use llParticleSystem instead.\nMake a round explosion of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead. + + llMakeFire + + deprecated + true + energy + 10.0 + sleep + 0.1 + return + void + arguments + + + Particles + + type + integer + tooltip + + + + + Scale + + type + float + tooltip + + + + + Velocity + + type + float + tooltip + + + + + Lifetime + + type + float + tooltip + + + + + Arc + + type + float + tooltip + + + + + Texture + + type + string + tooltip + + + + + Offset + + type + vector + tooltip + + + + + tooltip + Make fire like particles. Deprecated: Use llParticleSystem instead.\nMake fire particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead. + + llMakeFountain + + deprecated + true + energy + 10.0 + sleep + 0.1 + return + void + arguments + + + Particles + + type + integer + tooltip + + + + + Scale + + type + float + tooltip + + + + + Velocity + + type + float + tooltip + + + + + Lifetime + + type + float + tooltip + + + + + Arc + + type + float + tooltip + + + + + Bounce + + type + integer + tooltip + + + + + Texture + + type + string + tooltip + + + + + Offset + + type + vector + tooltip + + + + + Bounce_Offset + + type + float + tooltip + + + + + tooltip + Make a fountain of particles. Deprecated: Use llParticleSystem instead.\nMake a fountain of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead. + + llMakeSmoke + + deprecated + true + energy + 10.0 + sleep + 0.1 + return + void + arguments + + + Particles + + type + integer + tooltip + + + + + Scale + + type + float + tooltip + + + + + Velocity + + type + float + tooltip + + + + + Lifetime + + type + float + tooltip + + + + + Arc + + type + float + tooltip + + + + + Texture + + type + string + tooltip + + + + + Offset + + type + vector + tooltip + + + + + tooltip + Make smoke like particles. Deprecated: Use llParticleSystem instead.\nMake smoky particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead. + + llManageEstateAccess + + energy + + sleep + + return + integer + arguments + + + Action + + type + integer + tooltip + One of the ESTATE_ACCESS_ALLOWED_* actions. + + + + AvatarID + + type + key + tooltip + UUID of the avatar or group to act upon. + + + + tooltip + Adds or removes agents from the estate's agent access or ban lists, or groups to the estate's group access list. Action is one of the ESTATE_ACCESS_ALLOWED_* operations to perform.\nReturns an integer representing a boolean, TRUE if the call was successful; FALSE if throttled, invalid action, invalid or null id or object owner is not allowed to manage the estate.\nThe object owner is notified of any changes, unless PERMISSION_SILENT_ESTATE_MANAGEMENT has been granted to the script. + + llMapDestination + + energy + 10.0 + sleep + 1.0 + return + void + arguments + + + RegionName + + type + string + tooltip + + + + + Position + + type + vector + tooltip + + + + + Direction + + type + vector + tooltip + + + + + tooltip + Opens world map for avatar who touched is is wearing the script, centred on RegionName with Position highlighted. Only works for scripts attached to avatar, or during touch events.\nDirection currently has no effect. + + llMD5String + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + Text + + type + string + tooltip + + + + + Nonce + + type + integer + tooltip + + + + + tooltip + Returns a string of 32 hex characters that is an RSA Data Security Inc., MD5 Message-Digest Algorithm of Text with Nonce used as the salt.\nReturns a 32-character hex string. (128-bit in binary.) + + llMessageLinked + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + LinkNumber + + type + integer + tooltip + + + + + Number + + type + integer + tooltip + + + + + Text + + type + string + tooltip + + + + + ID + + type + key + tooltip + + + + + tooltip + Sends Number, Text, and ID to members of the link set identified by LinkNumber.\nLinkNumber is either a linked number (available through llGetLinkNumber) or a LINK_* constant. + + llMinEventDelay + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Delay + + type + float + tooltip + + + + + tooltip + Set the minimum time between events being handled. + + llModifyLand + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Action + + type + integer + tooltip + LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE or LAND_REVERT + + + + Area + + type + integer + tooltip + 0, 1, 2 (2m x 2m, 4m x 4m, or 8m x 8m) + + + + tooltip + Modify land with action (LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE, LAND_REVERT) on size (0, 1, 2, corresponding to 2m x 2m, 4m x 4m, 8m x 8m). + + llModPow + + energy + 10.0 + sleep + 1.0 + return + integer + arguments + + + Value + + type + integer + tooltip + + + + + Power + + type + integer + tooltip + + + + + Modulus + + type + integer + tooltip + + + + + tooltip + Returns a Value raised to the Power, mod Modulus. ((a**b)%c) b is capped at 0xFFFF (16 bits).\nReturns (Value ^ Power) % Modulus. (Value raised to the Power, Modulus). Value is capped at 0xFFFF (16 bits). + + llMoveToTarget + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Target + + type + vector + tooltip + + + + + Tau + + type + float + tooltip + + + + + tooltip + Critically damp to Target in Tau seconds (if the script is physical).\nCritically damp to position target in tau-seconds if the script is physical. Good tau-values are greater than 0.2. A tau of 0.0 stops the critical damping. + + llNavigateTo + + energy + + sleep + + return + void + arguments + + + Location + + type + vector + tooltip + Region coordinates for the character to navigate to. + + + + Options + + type + list + tooltip + List of parameters to control the type of path-finding used. Currently only FORCE_DIRECT_PATH supported. + + + + tooltip + Navigate to destination.\nDirects an object to travel to a defined position in the region or adjacent regions. + + llOffsetTexture + + energy + 10.0 + sleep + 0.2 + return + void + arguments + + + OffsetS + + type + float + tooltip + + + + + OffsetT + + type + float + tooltip + + + + + Face + + type + integer + tooltip + + + + + tooltip + Sets the texture S and T offsets for the chosen Face.\nIf Face is ALL_SIDES this function sets the texture offsets for all faces. + + llOpenRemoteDataChannel + + deprecated + true + energy + 10.0 + sleep + 1.0 + return + void + arguments + + tooltip + Requests a channel to listen for XML-RPC calls. (Deprecated: XML-RPC should not be used. Use http-in instead.)\nWill trigger a remote_data event with type = REMOTE_DATA_CHANNEL and a channel ID (key) once it is available.\nThis channel ID must be referenced in the XML-RPC call to the script (from the internet) -- so the key must somehow get to the external XML-RPC client. + + llOverMyLand + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + ID + + type + key + tooltip + + + + + tooltip + Returns TRUE if id ID over land owned by the script owner, otherwise FALSE.\nReturns TRUE if key ID is over land owned by the object owner, FALSE otherwise. + + llOwnerSay + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Text + + type + string + tooltip + + + + + tooltip + says Text to owner only (if owner is in region).\nSays Text to the owner of the object running the script, if the owner has been within the object's simulator since logging into Second Life, regardless of where they may be in-world. + + llParcelMediaCommandList + + energy + 10.0 + sleep + 2.0 + return + void + arguments + + + CommandList + + type + list + tooltip + A list of PARCEL_MEDIA_COMMAND_* flags and their parameters + + + + tooltip + Controls the playback of multimedia resources on a parcel or for an agent, via one or more PARCEL_MEDIA_COMMAND_* arguments specified in CommandList. + + llParcelMediaQuery + + energy + 10.0 + sleep + 2.0 + return + list + arguments + + + QueryList + + type + list + tooltip + + + + + tooltip + Queries the media properties of the parcel containing the script, via one or more PARCEL_MEDIA_COMMAND_* arguments specified in CommandList.\nThis function will only work if the script is contained within an object owned by the land-owner (or if the land is owned by a group, only if the object has been deeded to the group). + + llParseString2List + + energy + 10.0 + sleep + 0.0 + return + list + arguments + + + Text + + type + string + tooltip + + + + + Separators + + type + list + tooltip + + + + + Spacers + + type + list + tooltip + + + + + tooltip + Converts Text into a list, discarding Separators, keeping Spacers (Separators and Spacers must be lists of strings, maximum of 8 each).\nSeparators and Spacers are lists of strings with a maximum of 8 entries each. + + llParseStringKeepNulls + + energy + 10.0 + sleep + 0.0 + return + list + arguments + + + Text + + type + string + tooltip + + + + + Separators + + type + list + tooltip + + + + + Spacers + + type + list + tooltip + + + + + tooltip + Breaks Text into a list, discarding separators, keeping spacers, keeping any null values generated. (separators and spacers must be lists of strings, maximum of 8 each).\nllParseStringKeepNulls works almost exactly like llParseString2List, except that if a null is found it will add a null-string instead of discarding it like llParseString2List does. + + llParticleSystem + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Parameters + + type + list + tooltip + + + + + tooltip + Creates a particle system in the prim the script is attached to, based on Parameters. An empty list removes a particle system from object.\nList format is [ rule-1, data-1, rule-2, data-2 ... rule-n, data-n ]. + + llPassCollisions + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Pass + + type + integer + tooltip + Boolean, if TRUE, collisions are passed from children on to parents. + + + + tooltip + Configures how collision events are passed to scripts in the linkset.\nIf Pass == TRUE, collisions involving collision-handling scripted child prims are also passed on to the root prim. If Pass == FALSE (default behavior), such collisions will only trigger events in the affected child prim. + + llPassTouches + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Pass + + type + integer + tooltip + Boolean, if TRUE, touches are passed from children on to parents. + + + + tooltip + Configures how touch events are passed to scripts in the linkset.\nIf Pass == TRUE, touches involving touch-handling scripted child prims are also passed on to the root prim. If Pass == FALSE (default behavior), such touches will only trigger events in the affected child prim. + + llPatrolPoints + + energy + + sleep + + return + void + arguments + + + Points + + type + list + tooltip + A list of vectors for the character to travel through sequentially. The list must contain at least two entries. + + + + Options + + type + list + tooltip + No options available at this time. + + + + tooltip + Patrol a list of points.\nSets the points for a character (llCreateCharacter) to patrol along. + + llPlaySound + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Sound + + type + string + tooltip + + + + + Volume + + type + float + tooltip + + + + + tooltip + Plays Sound once, at Volume (0.0 - 1.0) and attached to the object.\nOnly one sound may be attached to an object at a time, and attaching a new sound or calling llStopSound will stop the previously attached sound.\nA second call to llPlaySound with the same sound will not restart the sound, but the new volume will be used, which allows control over the volume of already playing sounds.\nTo restart the sound from the beginning, call llStopSound before calling llPlaySound again. + + llPlaySoundSlave + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Sound + + type + string + tooltip + + + + + Volume + + type + float + tooltip + + + + + tooltip + Plays attached Sound once, at Volume (0.0 - 1.0), synced to next loop of most audible sync master.\nBehaviour is identical to llPlaySound, unless there is a "Sync Master" present. If a Sync Master is already playing, the Slave sound will not be played until the Master hits its loop point and returns to the beginning.\nllPlaySoundSlave will play the sound exactly once; if it is desired to have the sound play every time the Master loops, either use llLoopSoundSlave with extra silence padded on the end of the sound or ensure that llPlaySoundSlave is called at least once per loop of the Master. + + llPow + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + Value + + type + float + tooltip + + + + + Exponent + + type + float + tooltip + + + + + tooltip + Returns the Value raised to the power Exponent, or returns 0 and triggers Math Error for imaginary results.\nReturns the Value raised to the Exponent. + + llPreloadSound + + energy + 10.0 + sleep + 1.0 + return + void + arguments + + + Sound + + type + string + tooltip + + + + + tooltip + Causes nearby viewers to preload the Sound from the object's inventory.\nThis is intended to prevent delays in starting new sounds when called upon. + + llPursue + + energy + + sleep + + return + void + arguments + + + TargetID + + type + key + tooltip + Agent or object to pursue. + + + + Options + + type + list + tooltip + Parameters for pursuit. + + + + tooltip + Chase after a target.\nCauses the character (llCharacter) to pursue the target defined by TargetID. + + llPushObject + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + ObjectID + + type + key + tooltip + + + + + Impulse + + type + vector + tooltip + + + + + AngularImpulse + + type + vector + tooltip + + + + + Local + + type + integer + tooltip + + + + + tooltip + Applies Impulse and AngularImpulse to ObjectID.\nApplies the supplied impulse and angular impulse to the object specified. + + llReadKeyValue + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + + Key + + type + string + tooltip + + + + + tooltip + + Starts an asychronous transaction to retrieve the value associated with the key given. Will fail with XP_ERROR_KEY_NOT_FOUND if the key does not exist. The dataserver callback will be executed with the key returned from this call and a string describing the result. The result is a two element commma-delimited list. The first item is an integer specifying if the transaction succeeded (1) or not (0). In the failure case, the second item will be an integer corresponding to one of the XP_ERROR_... constants. In the success case the second item will be the value associated with the key. + + + llRefreshPrimURL + + energy + 10.0 + sleep + 20.0 + return + void + arguments + + tooltip + Reloads the web page shown on the sides of the object. + + llRegionSay + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Channel + + type + integer + tooltip + Any integer value except zero. + + + + Text + + type + string + tooltip + Message to be transmitted. + + + + tooltip + Broadcasts Text to entire region on Channel (except for channel 0). + + llRegionSayTo + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + TargetID + + type + key + tooltip + Avatar or object to say to. + + + + Channel + + type + integer + tooltip + Output channel, any integer value. + + + + Text + + type + string + tooltip + Message to be transmitted. + + + + tooltip + Says Text, on Channel, to avatar or object indicated by TargetID (if within region).\nIf TargetID is an avatar and Channel is nonzero, Text can be heard by any attachment on the avatar. + + llReleaseCamera + + deprecated + true + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + AvatarID + + type + key + tooltip + + + + + tooltip + Return camera to agent.\nDeprecated: Use llClearCameraParams instead. + + llReleaseControls + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + tooltip + Stop taking inputs.\nStop taking inputs from the avatar. + + llReleaseURL + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + URL + + type + string + tooltip + URL to release. + + + + tooltip + Releases the specified URL, which was previously obtained using llRequestURL. Once released, the URL will no longer be usable. + + llRemoteDataReply + + deprecated + true + energy + 10.0 + sleep + 3.0 + return + void + arguments + + + ChannelID + + type + key + tooltip + + + + + MessageID + + type + key + tooltip + + + + + sData + + type + string + tooltip + String data to send + + + + iData + + type + integer + tooltip + Integer data to send + + + + tooltip + Send an XML-RPC reply to MessageID on ChannelID with payload of string sData and integer iData. Deprecated: Use HTTP functions/events instead.\nThe size of sData is limited to 254 characters. + + llRemoteDataSetRegion + + deprecated + true + energy + 10.0 + sleep + 0.0 + return + void + arguments + + tooltip + Deprecated: Use HTTP functions/events instead.\nIf an object using remote data channels changes regions, you must call this function to re-register the remote data channels.\nYou do not need to make this call if you don't change regions. + + llRemoteLoadScriptPin + + energy + 10.0 + sleep + 3.0 + return + void + arguments + + + ObjectID + + type + key + tooltip + Target prim to attempt copying into. + + + + ScriptName + + type + string + tooltip + Name of the script in current inventory to copy. + + + + PIN + + type + integer + tooltip + Integer set on target prim as a Personal Information Number code. + + + + Running + + type + integer + tooltip + If the script should be set running in the target prim. + + + + StartParameter + + type + integer + tooltip + Integer. Parameter passed to the script if set to be running. + + + + tooltip + If the owner of the object containing this script can modify the object identified by the specified object key, and if the PIN matches the PIN previously set using llSetRemoteScriptAccessPin (on the target prim), then the script will be copied into target. Running is a boolean specifying whether the script should be enabled once copied into the target object. + + llRemoveFromLandBanList + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + AvatarID + + type + key + tooltip + + + + + tooltip + Remove avatar from the land ban list.\nRemove specified avatar from the land parcel ban list. + + llRemoveFromLandPassList + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + AvatarID + + type + key + tooltip + + + + + tooltip + Remove avatar from the land pass list.\nRemove specified avatar from the land parcel pass list. + + llRemoveInventory + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + InventoryItem + + type + string + tooltip + + + + + tooltip + Remove the named inventory item.\nRemove the named inventory item from the object inventory. + + llRemoveVehicleFlags + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Vehiclelags + + type + integer + tooltip + + + + + tooltip + Removes the enabled bits in 'flags'.\nSets the vehicle flags to FALSE. Valid parameters can be found in the vehicle flags constants section. + + llRequestAgentData + + energy + 10.0 + sleep + 0.1 + return + key + arguments + + + AvatarID + + type + key + tooltip + + + + + Data + + type + integer + tooltip + + + + + tooltip + Requests data about AvatarID. When data is available the dataserver event will be raised.\nThis function requests data about an avatar. If and when the information is collected, the dataserver event is triggered with the key returned from this function passed in the requested parameter. See the agent data constants (DATA_*) for details about valid values of data and what each will return in the dataserver event. + + llRequestDisplayName + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + + AvatarID + + type + key + tooltip + Avatar UUID + + + + tooltip + Requests the display name of the agent. When the display name is available the dataserver event will be raised.\nThe avatar identified does not need to be in the same region or online at the time of the request.\nReturns a key that is used to identify the dataserver event when it is raised. + + llRequestExperiencePermissions + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + AgentID + + type + key + tooltip + + + + + unused + + type + string + tooltip + Not used, should be "" + + + + tooltip + + Ask the agent for permission to participate in an experience. This request is similar to llRequestPermissions with the following permissions: PERMISSION_TAKE_CONTROLS, PERMISSION_TRIGGER_ANIMATION, PERMISSION_ATTACH, PERMISSION_TRACK_CAMERA, PERMISSION_CONTROL_CAMERA and PERMISSION_TELEPORT. However, unlike llRequestPermissions the decision to allow or block the request is persistent and applies to all scripts using the experience grid wide. Subsequent calls to llRequestExperiencePermissions from scripts in the experience will receive the same response automatically with no user interaction. One of experience_permissions or experience_permissions_denied will be generated in response to this call. Outstanding permission requests will be lost if the script is derezzed, moved to another region or reset. + + + llRequestInventoryData + + energy + 10.0 + sleep + 1.0 + return + key + arguments + + + InventoryItem + + type + string + tooltip + + + + + tooltip + Requests data for the named InventoryItem.\nWhen data is available, the dataserver event will be raised with the key returned from this function in the requested parameter.\nThe only request currently implemented is to request data from landmarks, where the data returned is in the form "<float, float, float>" which can be cast to a vector. This position is in region local coordinates. + + llRequestPermissions + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + AvatarID + + type + key + tooltip + + + + + PermissionMask + + type + integer + tooltip + + + + + tooltip + Ask AvatarID to allow the script to perform certain actions, specified in the PermissionMask bitmask. PermissionMask should be one or more PERMISSION_* constants. Multiple permissions can be requested simultaneously by ORing the constants together. Many of the permissions requests can only go to object owner.\nThis call will not stop script execution. If the avatar grants the requested permissions, the run_time_permissions event will be called. + + llRequestSecureURL + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + tooltip + Requests one HTTPS:// (SSL) URL for use by this object. The http_request event is triggered with results.\nReturns a key that is the handle used for identifying the request in the http_request event. + + llRequestSimulatorData + + energy + 10.0 + sleep + 1.0 + return + key + arguments + + + RegionName + + type + string + tooltip + + + + + Data + + type + integer + tooltip + + + + + tooltip + Requests the specified Data about RegionName. When the specified data is available, the dataserver event is raised.\nData should use one of the DATA_SIM_* constants.\nReturns a dataserver query ID and triggers the dataserver event when data is found. + + llRequestURL + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + tooltip + Requests one HTTP:// URL for use by this script. The http_request event is triggered with the result of the request.\nReturns a key that is the handle used for identifying the result in the http_request event. + + llRequestUsername + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + + AvatarID + + type + key + tooltip + + + + + tooltip + Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.\nRequests the user-name of the identified agent. When the user-name is available the dataserver event is raised.\nThe agent identified does not need to be in the same region or online at the time of the request.\nReturns a key that is used to identify the dataserver event when it is raised. + + llResetAnimationOverride + + energy + 0 + sleep + 0 + return + void + arguments + + + AnimationState + + type + string + tooltip + + + + + tooltip + Resets the animation of the specified animation state to the default value.\nIf animation state equals "ALL", then all animation states are reset. + + llResetLandBanList + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + tooltip + Removes all residents from the land ban list. + + llResetLandPassList + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + tooltip + Removes all residents from the land access/pass list. + + llResetOtherScript + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + ScriptName + + type + string + tooltip + + + + + tooltip + Resets the named script. + + llResetScript + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + tooltip + Resets the script. + + llResetTime + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + tooltip + Sets the time to zero.\nSets the internal timer to zero. + + llReturnObjectsByID + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + ObjectIDs + + type + list + tooltip + List of object UUIDs to be returned. + + + + tooltip + Return objects using their UUIDs.\nRequires the PERMISSION_RETURN_OBJECTS permission and that the script owner owns the parcel the returned objects are in, or is an estate manager or region owner. + + llReturnObjectsByOwner + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + ID + + type + key + tooltip + Object owner's UUID. + + + + Scope + + type + integer + tooltip + + + + + tooltip + Return objects based upon their owner and a scope of parcel, parcel owner, or region.\nRequires the PERMISSION_RETURN_OBJECTS permission and that the script owner owns the parcel the returned objects are in, or is an estate manager or region owner. + + llRezAtRoot + + energy + 200.0 + sleep + 0.1 + return + void + arguments + + + InventoryItem + + type + string + tooltip + + + + + Position + + type + vector + tooltip + + + + + Velocity + + type + vector + tooltip + + + + + Rotation + + type + rotation + tooltip + + + + + StartParameter + + type + integer + tooltip + + + + + tooltip + Instantiate owner's InventoryItem at Position with Velocity, Rotation and with StartParameter. The last selected root object's location will be set to Position.\nCreates object's inventory item at the given Position, with Velocity, Rotation, and StartParameter. + + llRezObject + + energy + 200 + sleep + 0.1 + return + void + arguments + + + InventoryItem + + type + string + tooltip + + + + + Position + + type + vector + tooltip + + + + + Velocity + + type + vector + tooltip + + + + + Rotation + + type + rotation + tooltip + + + + + StartParameter + + type + integer + tooltip + + + + + tooltip + Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.\nCreates object's inventory item at Position with Velocity and Rotation supplied. The StartParameter value will be available to the newly created object in the on_rez event or through the llGetStartParameter function.\nThe Velocity parameter is ignored if the rezzed object is not physical. + + llRot2Angle + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + Rotation + + type + rotation + tooltip + + + + + tooltip + Returns the rotation angle represented by Rotation.\nReturns the angle represented by the Rotation. + + llRot2Axis + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + Rotation + + type + rotation + tooltip + + + + + tooltip + Returns the rotation axis represented by Rotation.\nReturns the axis represented by the Rotation. + + llRot2Euler + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + Rotation + + type + rotation + tooltip + + + + + tooltip + Returns the Euler representation (roll, pitch, yaw) of Rotation.\nReturns the Euler Angle representation of the Rotation. + + llRot2Fwd + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + Rotation + + type + rotation + tooltip + + + + + tooltip + Returns the forward vector defined by Rotation.\nReturns the forward axis represented by the Rotation. + + llRot2Left + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + Rotation + + type + rotation + tooltip + + + + + tooltip + Returns the left vector defined by Rotation.\nReturns the left axis represented by the Rotation. + + llRot2Up + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + Rotation + + type + rotation + tooltip + + + + + tooltip + Returns the up vector defined by Rotation.\nReturns the up axis represented by the Rotation. + + llRotateTexture + + energy + 10.0 + sleep + 0.2 + return + void + arguments + + + Radians + + type + float + tooltip + + + + + Face + + type + integer + tooltip + + + + + tooltip + Sets the texture rotation for the specified Face to angle Radians.\nIf Face is ALL_SIDES, rotates the texture of all sides. + + llRotBetween + + energy + 10.0 + sleep + 0.0 + return + rotation + arguments + + + Vector1 + + type + vector + tooltip + + + + + Vector2 + + type + vector + tooltip + + + + + tooltip + Returns the rotation to rotate Vector1 to Vector2.\nReturns the rotation needed to rotate Vector1 to Vector2. + + llRotLookAt + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Rotation + + type + rotation + tooltip + + + + + Strength + + type + float + tooltip + + + + + Damping + + type + float + tooltip + + + + + tooltip + Cause object to rotate to Rotation, with a force function defined by Strength and Damping parameters. Good strength values are around half the mass of the object and good damping values are less than 1/10th of the strength.\nAsymmetrical shapes require smaller damping.\nA strength of 0.0 cancels the look at. + + llRotTarget + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + Rotation + + type + rotation + tooltip + + + + + LeeWay + + type + float + tooltip + + + + + tooltip + Set rotations with error of LeeWay radians as a rotational target, and return an ID for the rotational target.\nThe returned number is a handle that can be used in at_rot_target and llRotTargetRemove. + + llRotTargetRemove + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Handle + + type + integer + tooltip + + + + + tooltip + Removes rotational target number.\nRemove rotational target indicated by the handle. + + llRound + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + Value + + type + float + tooltip + + + + + tooltip + Returns Value rounded to the nearest integer.\nReturns the Value rounded to the nearest integer. + + llSameGroup + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + ID + + type + key + tooltip + + + + + tooltip + Returns TRUE if avatar ID is in the same region and has the same active group, otherwise FALSE.\nReturns TRUE if the object or agent identified is in the same simulator and has the same active group as this object. Otherwise, returns FALSE. + + llSay + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Channel + + type + integer + tooltip + Channel to use to say text on. + + + + Text + + type + string + tooltip + Text to say. + + + + tooltip + Says Text on Channel.\nThis chat method has a range of 20m radius.\nPUBLIC_CHANNEL is the public chat channel that all avatars see as chat text. DEBUG_CHANNEL is the script debug channel, and is also visible to nearby avatars. All other channels are are not sent to avatars, but may be used to communicate with scripts. + + llScaleByFactor + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + ScalingFactor + + type + float + tooltip + The multiplier to be used with the prim sizes and their local positions. + + + + tooltip + Attempts to resize the entire object by ScalingFactor, maintaining the size-position ratios of the prims.\n\nResizing is subject to prim scale limits and linkability limits. This function can not resize the object if the linkset is physical, a pathfinding character, in a keyframed motion, or if resizing would cause the parcel to overflow.\nReturns a boolean (an integer) TRUE if it succeeds, FALSE if it fails. + + llScaleTexture + + energy + 10.0 + sleep + 0.2 + return + void + arguments + + + Horizontal + + type + float + tooltip + + + + + Vertical + + type + float + tooltip + + + + + Face + + type + integer + tooltip + + + + + tooltip + Sets the diffuse texture Horizontal and Vertical repeats on Face of the prim the script is attached to.\nIf Face == ALL_SIDES, all sides are set in one call.\nNegative values for horizontal and vertical will flip the texture. + + llScriptDanger + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + Position + + type + vector + tooltip + + + + + tooltip + Returns TRUE if Position is over public land, sandbox land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.\nReturns true if the position is over public land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts. + + llScriptProfiler + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + State + + type + integer + tooltip + PROFILE_NONE or PROFILE_SCRIPT_MEMORY flags to control the state. + + + + tooltip + Enables or disables script profiling options. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\nMay significantly reduce script performance. + + llSendRemoteData + + deprecated + true + energy + 10.0 + sleep + 3.0 + return + key + arguments + + + ChannelID + + type + key + tooltip + + + + + Destination + + type + string + tooltip + + + + + Value + + type + integer + tooltip + + + + + Text + + type + string + tooltip + + + + + tooltip + Deprecated: use HTTP functions and events instead.\nSends an XML-RPC request to Destination through ChannelID with payload of ChannelID (in a string), integer Value and string Text.\nReturns a key that is the message_id for the resulting remote_data events. + + llSensor + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Name + + type + string + tooltip + Object or avatar name. + + + + ID + + type + key + tooltip + Object or avatar UUID. + + + + Type + + type + integer + tooltip + Bit-field mask of AGENT, AGENT_BY_LEGACY_NAME, AGENT_BY_USERNAME, ACTIVE, PASSIVE, and/or SCRIPTED + + + + Range + + type + float + tooltip + Distance to scan. 0.0 - 96.0m. + + + + Arc + + type + float + tooltip + Angle, in radians, from the local x-axis of the prim to scan. + + + + tooltip + Performs a single scan for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector.\nSpecifying a blank Name, 0 Type, or NULL_KEY ID will prevent filtering results based on that parameter. A range of 0.0 does not perform a scan.\nResults are returned in the sensor and no_sensor events. + + llSensorRemove + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + tooltip + removes sensor.\nRemoves the sensor set by llSensorRepeat. + + llSensorRepeat + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Name + + type + string + tooltip + Object or avatar name. + + + + ID + + type + key + tooltip + Object or avatar UUID. + + + + Type + + type + integer + tooltip + Bit-field mask of AGENT, AGENT_BY_LEGACY_NAME, AGENT_BY_USERNAME, ACTIVE, PASSIVE, and/or SCRIPTED + + + + Range + + type + float + tooltip + Distance to scan. 0.0 - 96.0m. + + + + Arc + + type + float + tooltip + Angle, in radians, from the local x-axis of the prim to scan. + + + + Rate + + type + float + tooltip + Period, in seconds, between scans. + + + + tooltip + Initiates a periodic scan every Rate seconds, for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector.\nSpecifying a blank Name, 0 Type, or NULL_KEY ID will prevent filtering results based on that parameter. A range of 0.0 does not perform a scan.\nResults are returned in the sensor and no_sensor events. + + llSetAlpha + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Opacity + + type + float + tooltip + + + + + Face + + type + integer + tooltip + + + + + tooltip + Sets the alpha (opacity) of Face.\nSets the alpha (opacity) value for Face. If Face is ALL_SIDES, sets the alpha for all faces. The alpha value is interpreted as an opacity percentage (1.0 is fully opaque, and 0.2 is mostly transparent). This function will clamp alpha values less than 0.1 to 0.1 and greater than 1.0 to 1. + + llSetAngularVelocity + + energy + + sleep + 0.0 + return + void + arguments + + + AngVel + + type + vector + tooltip + The angular velocity to set the object to. + + + + Local + + type + integer + tooltip + If TRUE, the AngVel is treated as a local directional vector instead of a regional directional vector. + + + + tooltip + Sets an object's angular velocity to AngVel, in local coordinates if Local == TRUE (if the script is physical).\nHas no effect on non-physical objects. + + llSetAnimationOverride + + energy + 0 + sleep + 0 + return + void + arguments + + + AnimationState + + type + string + tooltip + + + + + AnimationName + + type + string + tooltip + + + + + tooltip + Sets the animation (in object inventory) that will play for the given animation state.\nTo use this function the script must obtain the PERMISSION_OVERRIDE_ANIMATIONS permission. + + llSetBuoyancy + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Buoyancy + + type + float + tooltip + + + + + tooltip + Set the tasks buoyancy (0 is none, < 1.0 sinks, 1.0 floats, > 1.0 rises).\nSet the object buoyancy. A value of 0 is none, less than 1.0 sinks, 1.0 floats, and greater than 1.0 rises. + + llSetCameraAtOffset + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Offset + + type + vector + tooltip + + + + + tooltip + Sets the camera used in this object, at offset, if an avatar sits on it.\nSets the offset that an avatar's camera will be moved to if the avatar sits on the object. + + llSetCameraEyeOffset + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Offset + + type + vector + tooltip + + + + + tooltip + Sets the camera eye offset used in this object if an avatar sits on it. + + llSetCameraParams + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Parameters + + type + list + tooltip + + + + + tooltip + Sets multiple camera parameters at once. List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ]. + + llSetClickAction + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Action + + type + integer + tooltip + A CLICK_ACTION_* flag + + + + tooltip + Sets the action performed when a prim is clicked upon. + + llSetColor + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Color + + type + vector + tooltip + + + + + Face + + type + integer + tooltip + + + + + tooltip + Sets the color, for the face.\nSets the color of the side specified. If Face is ALL_SIDES, sets the color on all faces. + + llSetContentType + + energy + + sleep + + return + void + arguments + + + HTTPRequestID + + type + key + tooltip + A valid http_request() key + + + + ContentType + + type + integer + tooltip + Media type to use with any following llHTTPResponse(HTTPRequestID, ...) + + + + tooltip + Set the media type of an LSL HTTP server response to ContentType.\nHTTPRequestID must be a valid http_request ID. ContentType must be one of the CONTENT_TYPE_* constants. + + llSetDamage + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Damage + + type + float + tooltip + + + + + tooltip + Sets the amount of damage that will be done to an avatar that this task hits. Task will be killed.\nSets the amount of damage that will be done to an avatar that this object hits. This object will be destroyed on damaging an avatar, and no collision event is triggered. + + llSetForce + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Force + + type + vector + tooltip + Directional force. + + + + Local + + type + integer + tooltip + Boolean, if TRUE uses local axis, if FALSE uses region axis. + + + + tooltip + Sets Force on object, in object-local coordinates if Local == TRUE (otherwise, the region reference frame is used).\nOnly works on physical objects. + + llSetForceAndTorque + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Force + + type + vector + tooltip + Directional force. + + + + Torque + + type + vector + tooltip + Torque force. + + + + Local + + type + integer + tooltip + Boolean, if TRUE uses local axis, if FALSE uses region axis. + + + + tooltip + Sets the Force and Torque of object, in object-local coordinates if Local == TRUE (otherwise, the region reference frame is used).\nOnly works on physical objects. + + llSetHoverHeight + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Height + + type + float + tooltip + Distance above the ground. + + + + Water + + type + integer + tooltip + Boolean, if TRUE then hover above water too. + + + + Tau + + type + float + tooltip + Seconds to critically damp in. + + + + tooltip + Critically damps a physical object to a Height (either above ground level or above the higher of land and water if water == TRUE).\nDo not use with vehicles. Use llStopHover to stop hovering. + + llSetInventoryPermMask + + god-mode + true + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + InventoryItem + + type + string + tooltip + An item in the prim's inventory + + + + PermissionFlag + + type + integer + tooltip + MASK_* flag + + + + PermissionMask + + type + integer + tooltip + Permission bit-field (PERM_* flags) + + + + tooltip + Sets the given permission mask to the new value on the inventory item. + + llSetKeyframedMotion + + energy + + sleep + + return + void + arguments + + + Keyframes + + type + list + tooltip + Strided keyframe list of the form: position, orientation, time. Each keyframe is interpreted relative to the previous transform of the object. + + + + Options + + type + list + tooltip + + + + + tooltip + Requests that a non-physical object be key-framed according to key-frame list.\nSpecify a list of times, positions, and orientations to be followed by an object. The object will be smoothly moved between key-frames by the simulator. Collisions with other non-physical or key-framed objects will be ignored (no script events will fire and collision processing will not occur). Collisions with physical objects will be computed and reported, but the key-framed object will be unaffected by those collisions.\nKeyframes is a strided list containing positional, rotational, and time data for each step in the motion. Options is a list containing optional arguments and parameters (specified by KFM_* constants). + + llSetLinkAlpha + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + LinkNumber + + type + integer + tooltip + + + + + Opacity + + type + float + tooltip + + + + + Face + + type + integer + tooltip + + + + + tooltip + If a prim exists in the link chain at LinkNumber, set Face to Opacity.\nSets the Face, on the linked prim specified, to the Opacity. + + llSetLinkCamera + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + LinkNumber + + type + integer + tooltip + Prim link number (0: unlinked, 1: root prim, >1: child prims) or a LINK_* flag + + + + EyeOffset + + type + vector + tooltip + Offset, relative to the object's centre and expressed in local coordinates, that the camera looks from. + + + + LookOffset + + type + vector + tooltip + Offset, relative to the object's centre and expressed in local coordinates, that the camera looks toward. + + + + tooltip + Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim. + + llSetLinkColor + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + LinkNumber + + type + integer + tooltip + Link number (0: unlinked, 1: root prim, >1: child prims) or a LINK_* flag. + + + + Color + + type + vector + tooltip + Color in RGB <R.R, G.G, B.B> + + + + Face + + type + integer + tooltip + Side number or ALL_SIDES. + + + + tooltip + If a task exists in the link chain at LinkNumber, set the Face to color.\nSets the color of the linked child's side, specified by LinkNumber. + + llSetLinkMedia + + energy + 0.0 + sleep + 0.0 + return + integer + arguments + + + Link + + type + integer + tooltip + Link number (0: unlinked, 1: root prim, >1: child prims). + + + + Face + + type + integer + tooltip + Face number. + + + + Parameters + + type + list + tooltip + A set of name/value pairs (in no particular order) + + + + tooltip + Set the media parameters for a particular face on linked prim, specified by Link. Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).\nMediaParameters is a set of name/value pairs in no particular order. Parameters not specified are unchanged, or if new media is added then set to the default specified. + + llSetLinkPrimitiveParams + + energy + 10.0 + sleep + 0.2 + return + void + arguments + + + LinkNumber + + type + integer + tooltip + Link number (0: unlinked, 1: root prim, >1: child prims) or a LINK_* flag + + + + Parameters + + type + list + tooltip + + + + + tooltip + Set primitive parameters for LinkNumber based on Parameters.\nSets the parameters (or properties) of any linked prim in one step. + + llSetLinkPrimitiveParamsFast + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + LinkNumber + + type + integer + tooltip + Link number (0: unlinked, 1: root prim, >1: child prims) or a LINK_* flag + + + + Parameters + + type + list + tooltip + + + + + tooltip + Set primitive parameters for LinkNumber based on Parameters, without a delay.\nSet parameters for link number, from the list of Parameters, with no built-in script sleep. This function is identical to llSetLinkPrimitiveParams, except without the delay. + + llSetLinkTexture + + energy + 10.0 + sleep + 0.2 + return + void + arguments + + + LinkNumber + + type + integer + tooltip + + + + + Texture + + type + string + tooltip + + + + + Face + + type + integer + tooltip + + + + + tooltip + Sets the Texture of Face on a linked prim, specified by LinkNumber. Texture may be a UUID or name of a texture in prim inventory. + + llSetLinkTextureAnim + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + LinkNumber + + type + integer + tooltip + Link number (0: unlinked, 1: root prim, >1: child prims) or a LINK_* flag to effect + + + + Mode + + type + integer + tooltip + Bitmask of animation options. + + + + Face + + type + integer + tooltip + Specifies which object face to animate or ALL_SIDES. + + + + SizeX + + type + integer + tooltip + Horizontal frames (ignored for ROTATE and SCALE). + + + + SizeY + + type + integer + tooltip + Vertical frames (ignored for ROTATE and SCALE). + + + + Start + + type + float + tooltip + Start position/frame number (or radians for ROTATE). + + + + Length + + type + float + tooltip + Specifies the animation duration, in frames (or radians for ROTATE). + + + + Rate + + type + float + tooltip + Specifies the animation playback rate, in frames per second (must be greater than zero). + + + + tooltip + Animates a texture on the prim specified by LinkNumber, by setting the texture scale and offset.\nMode is a bitmask of animation options.\nFace specifies which object face to animate.\nSizeX and SizeY specify the number of horizontal and vertical frames.Start specifes the animation start point.\nLength specifies the animation duration.\nRate specifies the animation playback rate. + + llSetLocalRot + + energy + 10.0 + sleep + 0.2 + return + void + arguments + + + Rotation + + type + rotation + tooltip + + + + + tooltip + Sets the rotation of a child prim relative to the root prim. + + llSetMemoryLimit + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + Limit + + type + integer + tooltip + The amount to reserve, which must be less than the allowed maximum (currently 64KB) and not already have been exceeded. + + + + tooltip + Requests Limit bytes to be reserved for this script.\nReturns TRUE or FALSE indicating whether the limit was set successfully.\nThis function has no effect if the script is running in the LSO VM. + + llSetObjectDesc + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Description + + type + string + tooltip + + + + + tooltip + Sets the description of the prim to Description.\nThe description field is limited to 127 characters. + + llSetObjectName + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Name + + type + string + tooltip + + + + + tooltip + Sets the prim's name to Name. + + llSetObjectPermMask + + god-mode + true + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + PermissionFlag + + type + integer + tooltip + MASK_* flag + + + + PermissionMask + + type + integer + tooltip + Permission bit-field (PERM_* flags) + + + + tooltip + Sets the specified PermissionFlag permission to the value specified by PermissionMask on the object the script is attached to. + + llSetParcelMusicURL + + energy + 10.0 + sleep + 2.0 + return + void + arguments + + + URL + + type + string + tooltip + + + + + tooltip + Sets the streaming audio URL for the parcel the object is on.\nThe object must be owned by the owner of the parcel; if the parcel is group owned the object must be owned by that group. + + llSetPayPrice + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Price + + type + integer + tooltip + The default price shown in the textu input field. + + + + QuickButtons + + type + list + tooltip + Specifies the 4 payment values shown in the payment dialog's buttons (or PAY_HIDE). + + + + tooltip + Sets the default amount when someone chooses to pay this object.\nPrice is the default price shown in the textu input field. QuickButtons specifies the 4 payment values shown in the payment dialog's buttons.\nInput field and buttons may be hidden with PAY_HIDE constant, and may be set to their default values using PAY_DEFAULT. + + llSetPhysicsMaterial + + energy + + sleep + + return + void + arguments + + + MaterialBits + + type + integer + tooltip + A bitmask specifying which of the parameters in the other arguments should be applied to the object. + + + + GravityMultiplier + + type + float + tooltip + + + + + Restitution + + type + float + tooltip + + + + + Friction + + type + float + tooltip + + + + + Density + + type + float + tooltip + + + + + tooltip + Sets the selected parameters of the object's physics behavior.\nMaterialBits is a bitmask specifying which of the parameters in the other arguments should be applied to the object. GravityMultiplier, Restitution, Friction, and Density are the possible parameters to manipulate. + + llSetPos + + energy + 10.0 + sleep + 0.2 + return + void + arguments + + + Position + + type + vector + tooltip + Region coordinates to move to (within 10m). + + + + tooltip + If the object is not physical, this function sets the position of the prim.\nIf the script is in a child prim, Position is treated as root relative and the link-set is adjusted.\nIf the prim is the root prim, the entire object is moved (up to 10m) to Position in region coordinates. + + llSetPrimitiveParams + + energy + 10.0 + sleep + 0.2 + return + void + arguments + + + Parameters + + type + list + tooltip + A list of changes. + + + + tooltip + This function changes the many properties (or "parameters") of a prim in one operation. Parameters is a list of changes. + + llSetPrimMediaParams + + energy + 10.0 + sleep + 1.0 + return + integer + arguments + + + Face + + type + integer + tooltip + Face number + + + + MediaParameters + + type + list + tooltip + A set of name/value pairs (in no particular order) + + + + tooltip + Sets the MediaParameters for a particular Face on the prim. Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).\nMediaParameters is a set of name/value pairs in no particular order. Parameters not specified are unchanged, or if new media is added then set to the default specified. + + llSetPrimURL + + deprecated + true + energy + 10.0 + sleep + 20.0 + return + void + arguments + + + URL + + type + string + tooltip + + + + + tooltip + Deprecated: Use llSetPrimMediaParams instead. + + llSetRegionPos + + energy + 0.0 + sleep + 0.0 + return + integer + arguments + + + Position + + type + vector + tooltip + Vector. The location to move to, in region coordinates. + + + + tooltip + Attempts to move the object so that the root prim is within 0.1m of Position.\nReturns an integer boolean, TRUE if the object is successfully placed within 0.1 m of Position, FALSE otherwise.\nPosition may be any location within the region or up to 10m across a region border.\nIf the position is below ground, it will be set to the ground level at that x,y location. + + llSetRemoteScriptAccessPin + + energy + 10.0 + sleep + 0.2 + return + void + arguments + + + PIN + + type + integer + tooltip + + + + + tooltip + If PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin() if it passes in the correct PIN. Othersise, llRemoteLoadScriptPin() is ignored. + + llSetRot + + energy + 10.0 + sleep + 0.2 + return + void + arguments + + + Rotation + + type + rotation + tooltip + + + + + tooltip + If the object is not physical, this function sets the rotation of the prim.\nIf the script is in a child prim, Rotation is treated as root relative and the link-set is adjusted.\nIf the prim is the root prim, the entire object is rotated to Rotation in the global reference frame. + + llSetScale + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Scale + + type + vector + tooltip + + + + + tooltip + Sets the prim's scale (size) to Scale. + + llSetScriptState + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + ScriptName + + type + string + tooltip + + + + + Running + + type + integer + tooltip + + + + + tooltip + Enable or disable the script Running state of Script in the prim. + + llSetSitText + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Text + + type + string + tooltip + + + + + tooltip + Displays Text rather than 'Sit' in the viewer's context menu. + + llSetSoundQueueing + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + QueueEnable + + type + integer + tooltip + Boolean, sound queuing: TRUE enables, FALSE disables (default). + + + + tooltip + Sets whether successive calls to llPlaySound, llLoopSound, etc., (attached sounds) interrupt the currently playing sound.\nThe default for objects is FALSE. Setting this value to TRUE will make the sound wait until the current playing sound reaches its end. The queue is one level deep. + + llSetSoundRadius + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Radius + + type + float + tooltip + Maximum distance that sounds can be heard. + + + + tooltip + Limits radius for audibility of scripted sounds (both attached and triggered) to distance Radius. + + llSetStatus + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Status + + type + integer + tooltip + + + + + Value + + type + integer + tooltip + + + + + tooltip + Sets object status specified in Status bitmask (e.g. STATUS_PHYSICS|STATUS_PHANTOM) to boolean Value.\nFor a full list of STATUS_* constants, see wiki documentation. + + llSetText + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Text + + type + string + tooltip + + + + + Color + + type + vector + tooltip + + + + + Opacity + + type + float + tooltip + + + + + tooltip + Causes Text to float above the prim, using the specified Color and Opacity. + + llSetTexture + + energy + 10.0 + sleep + 0.2 + return + void + arguments + + + Texture + + type + string + tooltip + + + + + Face + + type + integer + tooltip + + + + + tooltip + Applies Texture to Face of prim.\nTexture may be a UUID or name of a texture in prim inventory.\nIf Face is ALL_SIDES, set the texture on all faces. + + llSetTextureAnim + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Mode + + type + integer + tooltip + Mask of Mode flags. + + + + Face + + type + integer + tooltip + Face number or ALL_SIDES. + + + + SizeX + + type + integer + tooltip + Horizontal frames (ignored for ROTATE and SCALE). + + + + SizeY + + type + integer + tooltip + Vertical frames (ignored for ROTATE and SCALE). + + + + Start + + type + float + tooltip + Start position/frame number (or radians for ROTATE). + + + + Length + + type + float + tooltip + number of frames to display (or radians for ROTATE). + + + + Rate + + type + float + tooltip + Frames per second (must not greater than zero). + + + + tooltip + Animates a texture by setting the texture scale and offset.\nMode is a bitmask of animation options.\nFace specifies which object face to animate.\nSizeX and SizeY specify the number of horizontal and vertical frames.Start specifes the animation start point.\nLength specifies the animation duration.\nRate specifies the animation playback rate. + + llSetTimerEvent + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Rate + + type + float + tooltip + + + + + tooltip + Causes the timer event to be triggered every Rate seconds.\n Passing in 0.0 stops further timer events. + + llSetTorque + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Torque + + type + vector + tooltip + Torque force. + + + + Local + + type + integer + tooltip + Boolean, if TRUE uses local axis, if FALSE uses region axis. + + + + tooltip + Sets the Torque acting on the script's object, in object-local coordinates if Local == TRUE (otherwise, the region reference frame is used).\nOnly works on physical objects. + + llSetTouchText + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Text + + type + string + tooltip + + + + + tooltip + Displays Text in the viewer context menu that acts on a touch. + + llSetVehicleFlags + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Flags + + type + integer + tooltip + + + + + tooltip + Enables the vehicle flags specified in the Flags bitmask.\nValid parameters can be found in the wiki documentation. + + llSetVehicleFloatParam + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + ParameterName + + type + integer + tooltip + + + + + ParameterValue + + type + float + tooltip + + + + + tooltip + Sets a vehicle float parameter.\nValid parameters can be found in the wiki documentation. + + llSetVehicleRotationParam + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + ParameterName + + type + integer + tooltip + + + + + ParameterValue + + type + rotation + tooltip + + + + + tooltip + Sets a vehicle rotation parameter.\nValid parameters can be found in the wiki documentation. + + llSetVehicleType + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Type + + type + integer + tooltip + + + + + tooltip + Activates the vehicle action on the object with vehicle preset Type.\nValid Types and an explanation of their characteristics can be found in wiki documentation. + + llSetVehicleVectorParam + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + ParameterName + + type + integer + tooltip + + + + + ParameterValue + + type + vector + tooltip + + + + + tooltip + Sets a vehicle vector parameter.\nValid parameters can be found in the wiki documentation. + + llSetVelocity + + energy + + sleep + 0.0 + return + void + arguments + + + Velocity + + type + vector + tooltip + The velocity to apply. + + + + Local + + type + integer + tooltip + If TRUE, the Velocity is treated as a local directional vector instead of a regional directional vector. + + + + tooltip + If the object is physics-enabled, sets the object's linear velocity to Velocity.\nIf Local==TRUE, Velocity is treated as a local directional vector; otherwise, Velocity is treated as a global directional vector. + + llSHA1String + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + Text + + type + string + tooltip + + + + + tooltip + Returns a string of 40 hex characters that is the SHA1 security Hash of Text. + + llShout + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Channel + + type + integer + tooltip + + + + + Text + + type + string + tooltip + + + + + tooltip + Shouts Text on Channel.\nThis chat method has a range of 100m radius.\nPUBLIC_CHANNEL is the public chat channel that all avatars see as chat text. DEBUG_CHANNEL is the script debug channel, and is also visible to nearby avatars. All other channels are are not sent to avatars, but may be used to communicate with scripts. + + llSin + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + Theta + + type + float + tooltip + + + + + tooltip + Returns the sine of Theta (Theta in radians). + + llSitTarget + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Offset + + type + vector + tooltip + + + + + Rotation + + type + rotation + tooltip + + + + + tooltip + Set the sit location for this object. If offset == ZERO_VECTOR, clears the sit target. + + llSleep + + energy + 0 + sleep + 0.0 + return + void + arguments + + + Time + + type + float + tooltip + + + + + tooltip + Put script to sleep for Time seconds. + + llSound + + deprecated + true + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Sound + + type + string + tooltip + + + + + Volume + + type + float + tooltip + + + + + Queue + + type + integer + tooltip + + + + + Loop + + type + integer + tooltip + + + + + tooltip + Deprecated: Use llPlaySound instead.\nPlays Sound at Volume and specifies whether the sound should loop and/or be enqueued. + + llSoundPreload + + deprecated + true + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Sound + + type + string + tooltip + + + + + tooltip + Deprecated: Use llPreloadSound instead.\nPreloads a sound on viewers within range. + + llSqrt + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + Value + + type + float + tooltip + + + + + tooltip + Returns the square root of Value.\nTriggers a math runtime error for imaginary results (if Value < 0.0). + + llStartAnimation + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Animation + + type + string + tooltip + + + + + tooltip + This function plays the specified animation from playing on the avatar who received the script's most recent permissions request.\nAnimation may be an animation in task inventory or a built-in animation.\nRequires PERMISSION_TRIGGER_ANIMATION. + + llStopAnimation + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Animation + + type + string + tooltip + + + + + tooltip + This function stops the specified animation on the avatar who received the script's most recent permissions request.\nAnimation may be an animation in task inventory, a built-in animation, or the uuid of an animation.\nRequires PERMISSION_TRIGGER_ANIMATION. + + llStopHover + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + tooltip + Stop hovering to a height (due to llSetHoverHeight()). + + llStopLookAt + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + tooltip + Stop causing object to point at a target (due to llLookAt() or llRotLookAt()). + + llStopMoveToTarget + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + tooltip + Stops critically damped motion (due to llMoveToTarget()). + + llStopSound + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + tooltip + Stops playback of the currently attached sound. + + llStringLength + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + Text + + type + string + tooltip + + + + + tooltip + Returns an integer that is the number of characters in Text (not counting the null). + + llStringToBase64 + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + Text + + type + string + tooltip + + + + + tooltip + Returns the string Base64 representation of the input string. + + llStringTrim + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + Text + + type + string + tooltip + String to trim + + + + TrimType + + type + integer + tooltip + STRING_TRIM_HEAD, STRING_TRIM_TAIL, or STRING_TRIM. + + + + tooltip + Outputs a string, eliminating white-space from the start and/or end of the input string Text.\nValid options for TrimType:\nSTRING_TRIM_HEAD: trim all leading spaces in Text\nSTRING_TRIM_TAIL: trim all trailing spaces in Text\nSTRING_TRIM: trim all leading and trailing spaces in Text. + + llSubStringIndex + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + Text + + type + string + tooltip + + + + + Sequence + + type + string + tooltip + + + + + tooltip + Returns an integer that is the index in Text where string pattern Sequence first appears. Returns -1 if not found. + + llTakeCamera + + deprecated + true + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + AvatarID + + type + key + tooltip + + + + + tooltip + Deprecated: Use llSetCameraParams instead. + + llTakeControls + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Controls + + type + integer + tooltip + Bit-field of CONTROL_* flags. + + + + Accept + + type + integer + tooltip + Boolean, determines whether control events are generated. + + + + PassOn + + type + integer + tooltip + Boolean, determines whether controls are disabled. + + + + tooltip + Take controls from the agent the script has permissions for.\nIf (Accept == (Controls & input)), send input to the script. PassOn determines whether Controls also perform their normal functions.\nRequires the PERMISSION_TAKE_CONTROLS permission to run. + + llTan + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + Theta + + type + float + tooltip + + + + + tooltip + Returns the tangent of Theta (Theta in radians). + + llTarget + + energy + 10.0 + sleep + 0.0 + return + integer + arguments + + + Position + + type + vector + tooltip + + + + + Range + + type + float + tooltip + + + + + tooltip + This function is to have the script know when it has reached a position.\nIt registers a Position with a Range that triggers at_target and not_at_target events continuously until unregistered. + + llTargetOmega + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Axis + + type + vector + tooltip + + + + + SpinRate + + type + float + tooltip + + + + + Gain + + type + float + tooltip + + + + + tooltip + Attempt to spin at SpinRate with strength Gain on Axis.\nA spin rate of 0.0 cancels the spin. This function always works in object-local coordinates. + + llTargetRemove + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Target + + type + integer + tooltip + + + + + tooltip + Removes positional target Handle registered with llTarget. + + llTeleportAgent + + energy + 0 + sleep + 0 + return + void + arguments + + + AvatarID + + type + key + tooltip + UUID of avatar. + + + + LandmarkName + + type + string + tooltip + Name of landmark (in object contents), or empty string, to use. + + + + Position + + type + vector + tooltip + If no landmark was provided, the position within the current region to teleport the avatar to. + + + + LookAtPoint + + type + vector + tooltip + The position within the target region that the avatar should be turned to face upon arrival. + + + + tooltip + Requests a teleport of avatar to a landmark stored in the object's inventory. If no landmark is provided (an empty string), the avatar is teleported to the location position in the current region. In either case, the avatar is turned to face the position given by look_at in local coordinates.\nRequires the PERMISSION_TELEPORT permission. This function can only teleport the owner of the object. + + llTeleportAgentGlobalCoords + + energy + 0 + sleep + 0 + return + void + arguments + + + AvatarID + + type + key + tooltip + UUID of avatar. + + + + GlobalPosition + + type + vector + tooltip + Global coordinates of the destination region. Can be retrieved by using llRequestSimulatorData(region_name, DATA_SIM_POS). + + + + RegionPosition + + type + vector + tooltip + The position within the target region to teleport the avatar to, if no landmark was provided. + + + + LookAtPoint + + type + vector + tooltip + The position within the target region that the avatar should be turned to face upon arrival. + + + + tooltip + Teleports an agent to the RegionPosition local coordinates within a region which is specified by the GlobalPosition global coordinates. The agent lands facing the position defined by LookAtPoint local coordinates.\nRequires the PERMISSION_TELEPORT permission. This function can only teleport the owner of the object. + + llTeleportAgentHome + + energy + 100.0 + sleep + 5.0 + return + void + arguments + + + AvatarID + + type + key + tooltip + + + + + tooltip + Teleport agent over the owner's land to agent's home location. + + llTextBox + + energy + 10.0 + sleep + 1.0 + return + void + arguments + + + AvatarID + + type + key + tooltip + + + + + Text + + type + string + tooltip + + + + + Channel + + type + integer + tooltip + + + + + tooltip + Opens a dialog for the specified avatar with message Text, which contains a text box for input. Any text that is entered is said on the specified Channel (as if by the avatar) when the "OK" button is clicked. + + llToLower + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + Text + + type + string + tooltip + + + + + tooltip + Returns a string that is Text with all lower-case characters. + + llToUpper + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + Text + + type + string + tooltip + + + + + tooltip + Returns a string that is Text with all upper-case characters. + + llTransferLindenDollars + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + + AvatarID + + type + key + tooltip + + + + + Amount + + type + integer + tooltip + + + + + tooltip + Transfer Amount of linden dollars (L$) from script owner to AvatarID. Returns a key to a corresponding transaction_result event for the success of the transfer.\nAttempts to send the amount of money to the specified avatar, and trigger a transaction_result event identified by the returned key. + + llTriggerSound + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Sound + + type + string + tooltip + + + + + Volume + + type + float + tooltip + + + + + tooltip + Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object.\nThere is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function. + + llTriggerSoundLimited + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Sound + + type + string + tooltip + + + + + Volume + + type + float + tooltip + + + + + TNE + + type + vector + tooltip + + + + + BSW + + type + vector + tooltip + + + + + tooltip + Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object, limited to axis-aligned bounding box defined by vectors top-north-east (TNE) and bottom-south-west (BSW).\nThere is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function. + + llUnescapeURL + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + URL + + type + string + tooltip + + + + + tooltip + Returns the string that is the URL unescaped, replacing "%20" with spaces, etc., version of URL.\nThis function can output raw UTF-8 strings. + + llUnSit + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + AvatarID + + type + key + tooltip + + + + + tooltip + If agent identified by AvatarID is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up. + + llUpdateCharacter + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Options + + type + list + tooltip + Character configuration options. Takes the same constants as llCreateCharacter(). + + + + tooltip + Updates settings for a pathfinding character. + + llUpdateKeyValue + + energy + 10.0 + sleep + 0.0 + return + key + arguments + + + Key + + type + string + tooltip + + + + + Value + + type + string + tooltip + + + + + Checked + + type + integer + tooltip + + + + + OriginalValue + + type + string + tooltip + + + + + tooltip + + Starts an asychronous transaction to update the value associated with the key given. The dataserver callback will be executed with the key returned from this call and a string describing the result. The result is a two element commma-delimited list. The first item is an integer specifying if the transaction succeeded (1) or not (0). In the failure case, the second item will be an integer corresponding to one of the XP_ERROR_... constants. In the success case the second item will be the value associated with the key. If Checked is 1 the existing value in the data store must match the OriginalValue passed or XP_ERROR_RETRY_UPDATE will be returned. If Checked is 0 the key will be created if necessary. + + + llVecDist + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + Location1 + + type + vector + tooltip + + + + + Location2 + + type + vector + tooltip + + + + + tooltip + Returns the distance between Location1 and Location2. + + llVecMag + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + Vector + + type + vector + tooltip + + + + + tooltip + Returns the magnitude of the vector. + + llVecNorm + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + Vector + + type + vector + tooltip + + + + + tooltip + Returns normalized vector. + + llVolumeDetect + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + DetectEnabled + + type + integer + tooltip + TRUE enables, FALSE disables. + + + + tooltip + If DetectEnabled = TRUE, object becomes phantom but triggers collision_start and collision_end events when other objects start and stop interpenetrating.\nIf another object (including avatars) interpenetrates it, it will get a collision_start event.\nWhen an object stops interpenetrating, a collision_end event is generated. While the other is inter-penetrating, collision events are NOT generated. + + llWanderWithin + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Origin + + type + vector + tooltip + Central point to wander about. + + + + Area + + type + vector + tooltip + Half-extents of an area the character may wander within. (i.e., it can wander from the specified origin by up to +/-Distance.x in x, +/-Distance.y in y, etc.) + + + + Options + + type + list + tooltip + No options available at this time. + + + + tooltip + Wander within a specified volume.\nSets a character to wander about a central spot within a specified area. + + llWater + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + + Offset + + type + vector + tooltip + + + + + tooltip + Returns the water height below the object position + Offset. + + llWhisper + + energy + 10.0 + sleep + 0.0 + return + void + arguments + + + Channel + + type + integer + tooltip + + + + + Text + + type + string + tooltip + + + + + tooltip + Whispers Text on Channel.\nThis chat method has a range of 10m radius.\nPUBLIC_CHANNEL is the public chat channel that all avatars see as chat text. DEBUG_CHANNEL is the script debug channel, and is also visible to nearby avatars. All other channels are are not sent to avatars, but may be used to communicate with scripts. + + llWind + + energy + 10.0 + sleep + 0.0 + return + vector + arguments + + + Offset + + type + vector + tooltip + + + + + tooltip + Returns the wind velocity at the object position + Offset. + + llXorBase64 + + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + Text1 + + type + string + tooltip + + + + + Text2 + + type + string + tooltip + + + + + tooltip + Performs an exclusive OR on two Base64 strings and returns a Base64 string. Text2 repeats if it is shorter than Text1. + + llXorBase64Strings + + deprecated + true + energy + 10.0 + sleep + 0.3 + return + string + arguments + + + Text1 + + type + string + tooltip + + + + + Text2 + + type + string + tooltip + + + + + tooltip + Deprecated: Please use llXorBase64 instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string. Text2 repeats if it is shorter than Text1.\nRetained for backwards compatibility. + + llXorBase64StringsCorrect + + deprecated + true + energy + 10.0 + sleep + 0.0 + return + string + arguments + + + Text1 + + type + string + tooltip + + + + + Text2 + + type + string + tooltip + + + + + tooltip + Deprecated: Please use llXorBase64 instead.\nCorrectly (unless nulls are present) performs an exclusive OR on two Base64 strings and returns a Base64 string.\nText2 repeats if it is shorter than Text1. + + llGetMinScaleFactor + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + tooltip + Returns the smallest multiplicative uniform scale factor that can be successfully applied (via llScaleByFactor()) to the object without violating prim size or linkability rules. + + llGetMaxScaleFactor + + energy + 10.0 + sleep + 0.0 + return + float + arguments + + tooltip + Returns the largest multiplicative uniform scale factor that can be successfully applied (via llScaleByFactor()) to the object without violating prim size or linkability rules. + + + llsd-lsl-syntax-version + 2 + + diff --git a/LibreMetaverse/linden/llsd-lsl-syntax.rng b/LibreMetaverse/linden/llsd-lsl-syntax.rng new file mode 100644 index 0000000..aa92364 --- /dev/null +++ b/LibreMetaverse/linden/llsd-lsl-syntax.rng @@ -0,0 +1,390 @@ + + + + + + + + constants + + + + + + + + + + + + + + + + + + controls + + + + + + + + + + + + + + events + + + + + + + + + + + + + + + + + + functions + + + + + + + + + + energy + + + + + + god-mode + + + + + + + + + sleep + + + + + + + + + + + + llsd-lsl-syntax-version + + + + + + + + + types + + + + + + + + + + + + + + + + + + + deprecated + + + + + + + + + + name + + + + + + + + + + type + + + + + + + float + integer + key + list + rotation + string + vector + + + + + + value + + + + + + + float + + + + + + integer + + + + 0x[0-9A-Fa-f]+ + + + + + key + + [0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12} + + + + rotation + + + + + x + + + + + + y + + + + + + z + + + + + w + + + + + + + string + + + + + + + + + vector + + + + + + + + + + + + + + + + + + ([\-+]|)(1|0)\.\d+ + + + + + + + + + + + + + + + + + + + x + + + + + + y + + + + + + z + + + + + + + + + + + + + + tooltip + + + + + + + + arguments + + + + + [A-Z][A-Za-z0-9_]*|[a-z] + + + + + + + + + + + + + + + + + + float + + + integer + + + key + + + list + + + rotation + + + string + + + vector + + + + + + + + return + + + + float + + + integer + + + key + + + list + + + rotation + + + string + + + vector + + + void + + + + + \ No newline at end of file diff --git a/LibreMetaverse/linden/llsd.xsd b/LibreMetaverse/linden/llsd.xsd new file mode 100644 index 0000000..34612d9 --- /dev/null +++ b/LibreMetaverse/linden/llsd.xsd @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LibreMetaverse/linden/static_assets/00b48fa0-ac43-fadf-d061-6b726a24a90a.gesture b/LibreMetaverse/linden/static_assets/00b48fa0-ac43-fadf-d061-6b726a24a90a.gesture new file mode 100644 index 0000000..5218874 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/00b48fa0-ac43-fadf-d061-6b726a24a90a.gesture differ diff --git a/LibreMetaverse/linden/static_assets/0247dbfa-f37e-64ab-d09f-2678884c7f4a.gesture b/LibreMetaverse/linden/static_assets/0247dbfa-f37e-64ab-d09f-2678884c7f4a.gesture new file mode 100644 index 0000000..38f8a9a Binary files /dev/null and b/LibreMetaverse/linden/static_assets/0247dbfa-f37e-64ab-d09f-2678884c7f4a.gesture differ diff --git a/LibreMetaverse/linden/static_assets/02862ac0-a61d-94c2-5d11-5f5d319b1256.clothing b/LibreMetaverse/linden/static_assets/02862ac0-a61d-94c2-5d11-5f5d319b1256.clothing new file mode 100644 index 0000000..d38b5a6 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/02862ac0-a61d-94c2-5d11-5f5d319b1256.clothing @@ -0,0 +1,28 @@ +LLWearable version 22 +RASL SOCKS BROWN + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 7 +parameters 4 +617 1 +818 1 +819 1 +820 1 +textures 1 +12 301a3097-2858-7614-829d-c5859741246f diff --git a/LibreMetaverse/linden/static_assets/02c4eae7-b6a3-b4b0-44b0-b7b29d7f913f.clothing b/LibreMetaverse/linden/static_assets/02c4eae7-b6a3-b4b0-44b0-b7b29d7f913f.clothing new file mode 100644 index 0000000..56dc179 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/02c4eae7-b6a3-b4b0-44b0-b7b29d7f913f.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL F SHOP SHOES FOOTSHAPER + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id df110c10-72e6-40d6-8916-14b4b0366b18 + owner_id df110c10-72e6-40d6-8916-14b4b0366b18 + last_owner_id df110c10-72e6-40d6-8916-14b4b0366b18 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 6 +parameters 10 +198 1 +503 .17 +508 -1 +513 0 +514 .37 +616 .1 +654 .08 +812 1 +813 1 +817 1 +textures 1 +7 3ab7e2fa-9572-ef36-1a30-d855dbea4f92 diff --git a/LibreMetaverse/linden/static_assets/032ac149-dacd-e88a-5397-b9996b58f278.gesture b/LibreMetaverse/linden/static_assets/032ac149-dacd-e88a-5397-b9996b58f278.gesture new file mode 100644 index 0000000..35a5eaf Binary files /dev/null and b/LibreMetaverse/linden/static_assets/032ac149-dacd-e88a-5397-b9996b58f278.gesture differ diff --git a/LibreMetaverse/linden/static_assets/038fcec9-5ebd-8a8e-0e2e-6e71a0a1ac53.animatn b/LibreMetaverse/linden/static_assets/038fcec9-5ebd-8a8e-0e2e-6e71a0a1ac53.animatn new file mode 100644 index 0000000..7e742ca Binary files /dev/null and b/LibreMetaverse/linden/static_assets/038fcec9-5ebd-8a8e-0e2e-6e71a0a1ac53.animatn differ diff --git a/LibreMetaverse/linden/static_assets/0401dc30-0fdd-1fc3-3e51-c683fe117184.gesture b/LibreMetaverse/linden/static_assets/0401dc30-0fdd-1fc3-3e51-c683fe117184.gesture new file mode 100644 index 0000000..743188b Binary files /dev/null and b/LibreMetaverse/linden/static_assets/0401dc30-0fdd-1fc3-3e51-c683fe117184.gesture differ diff --git a/LibreMetaverse/linden/static_assets/04608b19-1668-399c-5790-b7df8d9dc9cf.gesture b/LibreMetaverse/linden/static_assets/04608b19-1668-399c-5790-b7df8d9dc9cf.gesture new file mode 100644 index 0000000..8a5329d Binary files /dev/null and b/LibreMetaverse/linden/static_assets/04608b19-1668-399c-5790-b7df8d9dc9cf.gesture differ diff --git a/LibreMetaverse/linden/static_assets/05ddbff8-aaa9-92a1-2b74-8fe77a29b445.animatn b/LibreMetaverse/linden/static_assets/05ddbff8-aaa9-92a1-2b74-8fe77a29b445.animatn new file mode 100644 index 0000000..ef5d535 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/05ddbff8-aaa9-92a1-2b74-8fe77a29b445.animatn differ diff --git a/LibreMetaverse/linden/static_assets/07d61cde-bc5b-f95f-f747-2e57eab4ef12.clothing b/LibreMetaverse/linden/static_assets/07d61cde-bc5b-f95f-f747-2e57eab4ef12.clothing new file mode 100644 index 0000000..10c8ad5 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/07d61cde-bc5b-f95f-f747-2e57eab4ef12.clothing @@ -0,0 +1,29 @@ +LLWearable version 22 +RASL F LEARN LEGGINGS + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 11 +parameters 5 +619 1 +624 1 +824 1 +825 1 +826 1 +textures 1 +17 6f5d29ce-548f-fdd0-b8e1-1f90a123b76e diff --git a/LibreMetaverse/linden/static_assets/0813d01a-d3d3-32a4-48a3-26b6e1e01e39.gesture b/LibreMetaverse/linden/static_assets/0813d01a-d3d3-32a4-48a3-26b6e1e01e39.gesture new file mode 100644 index 0000000..8d0cfc8 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/0813d01a-d3d3-32a4-48a3-26b6e1e01e39.gesture differ diff --git a/LibreMetaverse/linden/static_assets/0836b67f-7f7b-f37b-c00a-460dc1521f5a.animatn b/LibreMetaverse/linden/static_assets/0836b67f-7f7b-f37b-c00a-460dc1521f5a.animatn new file mode 100644 index 0000000..eaa64a5 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/0836b67f-7f7b-f37b-c00a-460dc1521f5a.animatn differ diff --git a/LibreMetaverse/linden/static_assets/08464f78-3a8e-2944-cba5-0c94aff3af29.animatn b/LibreMetaverse/linden/static_assets/08464f78-3a8e-2944-cba5-0c94aff3af29.animatn new file mode 100644 index 0000000..fdf5fc5 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/08464f78-3a8e-2944-cba5-0c94aff3af29.animatn differ diff --git a/LibreMetaverse/linden/static_assets/0a3336cf-3ad1-012a-91c2-5b5620aaaef3.gesture b/LibreMetaverse/linden/static_assets/0a3336cf-3ad1-012a-91c2-5b5620aaaef3.gesture new file mode 100644 index 0000000..b7e1dfb Binary files /dev/null and b/LibreMetaverse/linden/static_assets/0a3336cf-3ad1-012a-91c2-5b5620aaaef3.gesture differ diff --git a/LibreMetaverse/linden/static_assets/0a9fb970-8b44-9114-d3a9-bf69cfe804d6.animatn b/LibreMetaverse/linden/static_assets/0a9fb970-8b44-9114-d3a9-bf69cfe804d6.animatn new file mode 100644 index 0000000..cf8bcf4 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/0a9fb970-8b44-9114-d3a9-bf69cfe804d6.animatn differ diff --git a/LibreMetaverse/linden/static_assets/0b29c4fd-9c3c-3047-fcb4-addd3e42a289.clothing b/LibreMetaverse/linden/static_assets/0b29c4fd-9c3c-3047-fcb4-addd3e42a289.clothing new file mode 100644 index 0000000..b89fabd --- /dev/null +++ b/LibreMetaverse/linden/static_assets/0b29c4fd-9c3c-3047-fcb4-addd3e42a289.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL M EXPLORE TANK UP (WHITE) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 4 +parameters 10 +781 1 +800 1 +801 1 +802 1 +803 1 +804 1 +805 1 +828 0 +840 0 +868 0 +textures 1 +1 5ab7802c-a722-8cf0-66c6-6160efe4a130 diff --git a/LibreMetaverse/linden/static_assets/0c5f60ae-1a54-1ee8-398d-7ed278552132.bodypart b/LibreMetaverse/linden/static_assets/0c5f60ae-1a54-1ee8-398d-7ed278552132.bodypart new file mode 100644 index 0000000..58e0881 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/0c5f60ae-1a54-1ee8-398d-7ed278552132.bodypart @@ -0,0 +1,105 @@ +LLWearable version 22 +RASL M CREATE SHAPE (MIKO) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 0 +parameters 82 +1 .21 +2 -.21 +4 .26 +5 -.07 +6 .13 +7 -.04 +8 -.2 +10 .25 +11 .1 +12 .07 +13 .03 +14 .67 +15 -.2 +17 .14 +18 .5 +19 -.4 +20 -.04 +21 .26 +22 .02 +23 -.06 +24 -.1 +25 .53 +27 .43 +33 1.14 +34 -.02 +35 0 +36 -.9 +37 -.62 +38 .02 +80 1 +105 .5 +155 -.24 +157 .02 +185 -.6 +193 .65 +196 -1.07 +505 .61 +506 0 +507 0 +515 -1 +517 -.13 +518 -.19 +629 .43 +637 .03 +646 -.06 +647 .03 +649 .5 +650 .65 +652 .45 +653 .05 +656 0 +659 .62 +662 .5 +663 0 +664 0 +665 .08 +675 -.14 +676 -.4 +678 .41 +682 .59 +683 -.12 +684 0 +685 .19 +690 .41 +692 .36 +693 .2 +753 .65 +756 -.62 +758 -.54 +759 .45 +760 .11 +764 .44 +765 .29 +769 .47 +773 .43 +795 .23 +796 .21 +799 .52 +841 0 +842 -.24 +879 .08 +880 -.9 +textures 0 diff --git a/LibreMetaverse/linden/static_assets/0ce71257-7a07-257f-f023-fd68575a3a4e.gesture b/LibreMetaverse/linden/static_assets/0ce71257-7a07-257f-f023-fd68575a3a4e.gesture new file mode 100644 index 0000000..8712d24 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/0ce71257-7a07-257f-f023-fd68575a3a4e.gesture differ diff --git a/LibreMetaverse/linden/static_assets/0eb702e2-cc5a-9a88-56a5-661a55c0676a.animatn b/LibreMetaverse/linden/static_assets/0eb702e2-cc5a-9a88-56a5-661a55c0676a.animatn new file mode 100644 index 0000000..96f40f1 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/0eb702e2-cc5a-9a88-56a5-661a55c0676a.animatn differ diff --git a/LibreMetaverse/linden/static_assets/0eeb5ef7-10dd-4e4a-11a5-d053011fcdf2.gesture b/LibreMetaverse/linden/static_assets/0eeb5ef7-10dd-4e4a-11a5-d053011fcdf2.gesture new file mode 100644 index 0000000..514c7c3 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/0eeb5ef7-10dd-4e4a-11a5-d053011fcdf2.gesture differ diff --git a/LibreMetaverse/linden/static_assets/0f86e355-dd31-a61c-fdb0-3a96b9aad05f.animatn b/LibreMetaverse/linden/static_assets/0f86e355-dd31-a61c-fdb0-3a96b9aad05f.animatn new file mode 100644 index 0000000..05961c1 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/0f86e355-dd31-a61c-fdb0-3a96b9aad05f.animatn differ diff --git a/LibreMetaverse/linden/static_assets/11000694-3f41-adc2-606b-eee1d66f3724.animatn b/LibreMetaverse/linden/static_assets/11000694-3f41-adc2-606b-eee1d66f3724.animatn new file mode 100644 index 0000000..9489d96 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/11000694-3f41-adc2-606b-eee1d66f3724.animatn differ diff --git a/LibreMetaverse/linden/static_assets/1232da7c-3d5b-a11b-cbee-d574aedc2e59.bodypart b/LibreMetaverse/linden/static_assets/1232da7c-3d5b-a11b-cbee-d574aedc2e59.bodypart new file mode 100644 index 0000000..2077eb4 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/1232da7c-3d5b-a11b-cbee-d574aedc2e59.bodypart @@ -0,0 +1,105 @@ +LLWearable version 22 +RASL M SHOP SHAPE (REMY) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 0 +parameters 82 +1 .21 +2 -.27 +4 .29 +5 .22 +6 -.07 +7 -.14 +8 -.2 +10 1.2 +11 .5 +12 .46 +13 .28 +14 .56 +15 -.22 +17 -.05 +18 1.02 +19 -.45 +20 -.2 +21 .23 +22 .55 +23 -.12 +24 -.24 +25 -.11 +27 .43 +33 .93 +34 -.26 +35 .17 +36 -.68 +37 -.14 +38 -.12 +80 1 +105 .5 +155 -.53 +157 .03 +185 -.68 +193 .6 +196 -.95 +505 .31 +506 -.28 +507 0 +515 -1 +517 -.17 +518 -.08 +629 .37 +637 .06 +646 -.06 +647 -.11 +649 .5 +650 -.55 +652 .43 +653 .5 +656 0 +659 .55 +662 .5 +663 0 +664 0 +665 0 +675 -.08 +676 -.1 +678 .41 +682 .58 +683 -.11 +684 0 +685 .08 +690 .44 +692 .08 +693 .2 +753 .9 +756 -.78 +758 -.42 +759 .17 +760 .3 +764 .54 +765 .32 +769 .46 +773 .45 +795 .3 +796 .28 +799 .53 +841 0 +842 -.1 +879 .1 +880 -.95 +textures 0 diff --git a/LibreMetaverse/linden/static_assets/13b0d1c4-eb3c-9b89-2f13-9c0a714aab9f.clothing b/LibreMetaverse/linden/static_assets/13b0d1c4-eb3c-9b89-2f13-9c0a714aab9f.clothing new file mode 100644 index 0000000..8edf121 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/13b0d1c4-eb3c-9b89-2f13-9c0a714aab9f.clothing @@ -0,0 +1,33 @@ +LLWearable version 22 +RASL M SHOP SWEATER DOWN + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 5 +parameters 9 +625 0 +638 0 +806 1 +807 1 +808 1 +814 1 +815 .99 +816 .05 +869 0 +textures 1 +2 106c9f6c-dc86-85ef-84b8-767fc0caf7c4 diff --git a/LibreMetaverse/linden/static_assets/149739c0-f677-4b4c-1587-e44be72dd7ef.bodypart b/LibreMetaverse/linden/static_assets/149739c0-f677-4b4c-1587-e44be72dd7ef.bodypart new file mode 100644 index 0000000..07db755 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/149739c0-f677-4b4c-1587-e44be72dd7ef.bodypart @@ -0,0 +1,26 @@ +LLWearable version 22 +New Eyes + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id df110c10-72e6-40d6-8916-14b4b0366b18 + owner_id df110c10-72e6-40d6-8916-14b4b0366b18 + last_owner_id df110c10-72e6-40d6-8916-14b4b0366b18 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 3 +parameters 2 +98 1 +99 0 +textures 1 +3 07e1d75e-9312-ed2c-3c20-2d8a7e9109f0 diff --git a/LibreMetaverse/linden/static_assets/15468e00-3400-bb66-cecc-646d7c14458e.animatn b/LibreMetaverse/linden/static_assets/15468e00-3400-bb66-cecc-646d7c14458e.animatn new file mode 100644 index 0000000..232b2b8 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/15468e00-3400-bb66-cecc-646d7c14458e.animatn differ diff --git a/LibreMetaverse/linden/static_assets/159afee8-b7bf-c8fb-9c63-98276a1d6b28.gesture b/LibreMetaverse/linden/static_assets/159afee8-b7bf-c8fb-9c63-98276a1d6b28.gesture new file mode 100644 index 0000000..347aa6a Binary files /dev/null and b/LibreMetaverse/linden/static_assets/159afee8-b7bf-c8fb-9c63-98276a1d6b28.gesture differ diff --git a/LibreMetaverse/linden/static_assets/15dd911d-be82-2856-26db-27659b142875.animatn b/LibreMetaverse/linden/static_assets/15dd911d-be82-2856-26db-27659b142875.animatn new file mode 100644 index 0000000..6a71abb Binary files /dev/null and b/LibreMetaverse/linden/static_assets/15dd911d-be82-2856-26db-27659b142875.animatn differ diff --git a/LibreMetaverse/linden/static_assets/16803a9f-5140-e042-4d7b-d28ba247c325.animatn b/LibreMetaverse/linden/static_assets/16803a9f-5140-e042-4d7b-d28ba247c325.animatn new file mode 100644 index 0000000..4da6d28 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/16803a9f-5140-e042-4d7b-d28ba247c325.animatn differ diff --git a/LibreMetaverse/linden/static_assets/16ef95d1-2fe3-d4a3-509d-f03bb2d327ca.clothing b/LibreMetaverse/linden/static_assets/16ef95d1-2fe3-d4a3-509d-f03bb2d327ca.clothing new file mode 100644 index 0000000..426d21e --- /dev/null +++ b/LibreMetaverse/linden/static_assets/16ef95d1-2fe3-d4a3-509d-f03bb2d327ca.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL M LOVE SHIRT UP (BLUE) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 4 +parameters 10 +781 1 +800 1 +801 1 +802 1 +803 1 +804 1 +805 1 +828 0 +840 0 +868 0 +textures 1 +1 9275f067-eff5-4a59-f98c-cd8a366e5426 diff --git a/LibreMetaverse/linden/static_assets/17a387e1-28c7-e24b-4bfc-527b2d377a1b.clothing b/LibreMetaverse/linden/static_assets/17a387e1-28c7-e24b-4bfc-527b2d377a1b.clothing new file mode 100644 index 0000000..121aea9 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/17a387e1-28c7-e24b-4bfc-527b2d377a1b.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +Male Designer Pants Shirt (Green) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 0008e000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 8 +parameters 9 +606 1 +607 1 +608 1 +609 1 +780 1 +834 1 +835 1 +836 1 +877 0 +textures 2 +13 7f2a3b5f-a5ef-d7a0-af6c-7f2cfc889fe1 +14 70ccbf04-adeb-d6b6-df7f-d9db89d53408 diff --git a/LibreMetaverse/linden/static_assets/17c024cc-eef2-f6a0-3527-9869876d7752.animatn b/LibreMetaverse/linden/static_assets/17c024cc-eef2-f6a0-3527-9869876d7752.animatn new file mode 100644 index 0000000..a7a4e13 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/17c024cc-eef2-f6a0-3527-9869876d7752.animatn differ diff --git a/LibreMetaverse/linden/static_assets/18b3a4b5-b463-bd48-e4b6-71eaac76c515.animatn b/LibreMetaverse/linden/static_assets/18b3a4b5-b463-bd48-e4b6-71eaac76c515.animatn new file mode 100644 index 0000000..c038242 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/18b3a4b5-b463-bd48-e4b6-71eaac76c515.animatn differ diff --git a/LibreMetaverse/linden/static_assets/1910ffbd-096c-5eb7-19f5-8c99ab6a748c.gesture b/LibreMetaverse/linden/static_assets/1910ffbd-096c-5eb7-19f5-8c99ab6a748c.gesture new file mode 100644 index 0000000..eb6117a Binary files /dev/null and b/LibreMetaverse/linden/static_assets/1910ffbd-096c-5eb7-19f5-8c99ab6a748c.gesture differ diff --git a/LibreMetaverse/linden/static_assets/19999406-3a3a-d58c-a2ac-d72e555dcf51.animatn b/LibreMetaverse/linden/static_assets/19999406-3a3a-d58c-a2ac-d72e555dcf51.animatn new file mode 100644 index 0000000..1f176d7 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/19999406-3a3a-d58c-a2ac-d72e555dcf51.animatn differ diff --git a/LibreMetaverse/linden/static_assets/1a2bd58e-87ff-0df8-0b4c-53e047b0bb6e.animatn b/LibreMetaverse/linden/static_assets/1a2bd58e-87ff-0df8-0b4c-53e047b0bb6e.animatn new file mode 100644 index 0000000..78fa397 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/1a2bd58e-87ff-0df8-0b4c-53e047b0bb6e.animatn differ diff --git a/LibreMetaverse/linden/static_assets/1a5fe8ac-a804-8a5d-7cbd-56bd83184568.animatn b/LibreMetaverse/linden/static_assets/1a5fe8ac-a804-8a5d-7cbd-56bd83184568.animatn new file mode 100644 index 0000000..3312789 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/1a5fe8ac-a804-8a5d-7cbd-56bd83184568.animatn differ diff --git a/LibreMetaverse/linden/static_assets/1ab1b236-cd08-21e6-0cbc-0d923fc6eca2.animatn b/LibreMetaverse/linden/static_assets/1ab1b236-cd08-21e6-0cbc-0d923fc6eca2.animatn new file mode 100644 index 0000000..9eb2468 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/1ab1b236-cd08-21e6-0cbc-0d923fc6eca2.animatn differ diff --git a/LibreMetaverse/linden/static_assets/1ac2c678-3ab4-410b-2aad-30a7dc9c4504.gesture b/LibreMetaverse/linden/static_assets/1ac2c678-3ab4-410b-2aad-30a7dc9c4504.gesture new file mode 100644 index 0000000..4db5269 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/1ac2c678-3ab4-410b-2aad-30a7dc9c4504.gesture differ diff --git a/LibreMetaverse/linden/static_assets/1b677754-5a07-641a-e989-34dcd985af1b.clothing b/LibreMetaverse/linden/static_assets/1b677754-5a07-641a-e989-34dcd985af1b.clothing new file mode 100644 index 0000000..0cfef00 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/1b677754-5a07-641a-e989-34dcd985af1b.clothing @@ -0,0 +1,29 @@ +LLWearable version 22 +RASL F LOVE DRESS DOWN + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 11 +parameters 5 +619 1 +624 1 +824 1 +825 1 +826 1 +textures 1 +17 36589cd6-c6e0-f17e-9be5-8f08d3708bd7 diff --git a/LibreMetaverse/linden/static_assets/1c7600d6-661f-b87b-efe2-d7421eb93c86.animatn b/LibreMetaverse/linden/static_assets/1c7600d6-661f-b87b-efe2-d7421eb93c86.animatn new file mode 100644 index 0000000..06a14fc Binary files /dev/null and b/LibreMetaverse/linden/static_assets/1c7600d6-661f-b87b-efe2-d7421eb93c86.animatn differ diff --git a/LibreMetaverse/linden/static_assets/1cb562b0-ba21-2202-efb3-30f82cdf9595.animatn b/LibreMetaverse/linden/static_assets/1cb562b0-ba21-2202-efb3-30f82cdf9595.animatn new file mode 100644 index 0000000..89e70a8 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/1cb562b0-ba21-2202-efb3-30f82cdf9595.animatn differ diff --git a/LibreMetaverse/linden/static_assets/1f5466aa-2b68-e370-6bb5-a335e859afeb.gesture b/LibreMetaverse/linden/static_assets/1f5466aa-2b68-e370-6bb5-a335e859afeb.gesture new file mode 100644 index 0000000..3b167eb Binary files /dev/null and b/LibreMetaverse/linden/static_assets/1f5466aa-2b68-e370-6bb5-a335e859afeb.gesture differ diff --git a/LibreMetaverse/linden/static_assets/201f3fdf-cb1f-dbec-201f-7333e328ae7c.animatn b/LibreMetaverse/linden/static_assets/201f3fdf-cb1f-dbec-201f-7333e328ae7c.animatn new file mode 100644 index 0000000..d2dfc12 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/201f3fdf-cb1f-dbec-201f-7333e328ae7c.animatn differ diff --git a/LibreMetaverse/linden/static_assets/205ae4a8-42c6-1c5c-b142-672864fafe8a.bodypart b/LibreMetaverse/linden/static_assets/205ae4a8-42c6-1c5c-b142-672864fafe8a.bodypart new file mode 100644 index 0000000..843e7c5 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/205ae4a8-42c6-1c5c-b142-672864fafe8a.bodypart @@ -0,0 +1,52 @@ +LLWearable version 22 +RASL F EXPLORE SKIN (SOFIA) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 0008e000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 1 +parameters 26 +108 0 +110 0 +111 .5 +116 0 +117 0 +150 0 +162 0 +163 0 +165 0 +700 .25 +701 0 +702 0 +703 0 +704 0 +705 .5 +706 .6 +707 0 +708 0 +709 0 +710 0 +711 .5 +712 0 +713 .7 +714 0 +715 0 +775 0 +textures 3 +0 f634e17f-3164-1dfe-508b-0e02547cebe4 +5 a6c6fd50-7d98-7afb-a7aa-348481f24c8a +6 193bacad-5558-5e52-f3aa-3192a568e9a1 diff --git a/LibreMetaverse/linden/static_assets/20f063ea-8306-2562-0b07-5c853b37b31e.animatn b/LibreMetaverse/linden/static_assets/20f063ea-8306-2562-0b07-5c853b37b31e.animatn new file mode 100644 index 0000000..b145494 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/20f063ea-8306-2562-0b07-5c853b37b31e.animatn differ diff --git a/LibreMetaverse/linden/static_assets/2305bd75-1ca9-b03b-1faa-b176b8a8c49e.animatn b/LibreMetaverse/linden/static_assets/2305bd75-1ca9-b03b-1faa-b176b8a8c49e.animatn new file mode 100644 index 0000000..73a5768 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/2305bd75-1ca9-b03b-1faa-b176b8a8c49e.animatn differ diff --git a/LibreMetaverse/linden/static_assets/230ff836-fe1e-ab33-80c6-ef029c658136.gesture b/LibreMetaverse/linden/static_assets/230ff836-fe1e-ab33-80c6-ef029c658136.gesture new file mode 100644 index 0000000..078d16e Binary files /dev/null and b/LibreMetaverse/linden/static_assets/230ff836-fe1e-ab33-80c6-ef029c658136.gesture differ diff --git a/LibreMetaverse/linden/static_assets/2408fe9e-df1d-1d7d-f4ff-1384fa7b350f.animatn b/LibreMetaverse/linden/static_assets/2408fe9e-df1d-1d7d-f4ff-1384fa7b350f.animatn new file mode 100644 index 0000000..e47287c Binary files /dev/null and b/LibreMetaverse/linden/static_assets/2408fe9e-df1d-1d7d-f4ff-1384fa7b350f.animatn differ diff --git a/LibreMetaverse/linden/static_assets/245f3c54-f1c0-bf2e-811f-46d8eeb386e7.animatn b/LibreMetaverse/linden/static_assets/245f3c54-f1c0-bf2e-811f-46d8eeb386e7.animatn new file mode 100644 index 0000000..019bce4 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/245f3c54-f1c0-bf2e-811f-46d8eeb386e7.animatn differ diff --git a/LibreMetaverse/linden/static_assets/25252e5b-394b-fdab-76ee-28980cd62f81.gesture b/LibreMetaverse/linden/static_assets/25252e5b-394b-fdab-76ee-28980cd62f81.gesture new file mode 100644 index 0000000..cdb1814 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/25252e5b-394b-fdab-76ee-28980cd62f81.gesture differ diff --git a/LibreMetaverse/linden/static_assets/252acecb-a169-eff2-4601-b06bbeb91e84.gesture b/LibreMetaverse/linden/static_assets/252acecb-a169-eff2-4601-b06bbeb91e84.gesture new file mode 100644 index 0000000..d4406da Binary files /dev/null and b/LibreMetaverse/linden/static_assets/252acecb-a169-eff2-4601-b06bbeb91e84.gesture differ diff --git a/LibreMetaverse/linden/static_assets/26a762c3-7164-0bbf-a7d6-ea097a6d0314.bodypart b/LibreMetaverse/linden/static_assets/26a762c3-7164-0bbf-a7d6-ea097a6d0314.bodypart new file mode 100644 index 0000000..5485883 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/26a762c3-7164-0bbf-a7d6-ea097a6d0314.bodypart @@ -0,0 +1,105 @@ +LLWearable version 22 +RASL F PLAY SHAPE (CLARA) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 0 +parameters 82 +1 .11 +2 -.31 +4 -.11 +5 -.08 +6 -.05 +7 .02 +8 -.42 +10 .84 +11 .24 +12 -.02 +13 0 +14 .61 +15 -.28 +17 .13 +18 .42 +19 -.35 +20 -.12 +21 .07 +22 .15 +23 -.34 +24 .11 +25 .1 +27 -.4 +33 .45 +34 0 +35 -.1 +36 -.94 +37 -.98 +38 -.18 +80 0 +105 .37 +155 -.46 +157 0 +185 -.72 +193 .56 +196 -.38 +505 .51 +506 -.68 +507 .04 +515 -1 +517 -.13 +518 .24 +629 .47 +637 .06 +646 -.15 +647 -.05 +649 .3 +650 -.8 +652 .35 +653 .23 +656 0 +659 .63 +662 .5 +663 0 +664 0 +665 .08 +675 -.19 +676 -.43 +678 .5 +682 .55 +683 -.17 +684 .18 +685 0 +690 .36 +692 .24 +693 .18 +753 .62 +756 -.42 +758 .06 +759 .17 +760 .85 +764 .28 +765 .2 +769 .2 +773 .51 +795 .24 +796 .11 +799 .55 +841 0 +842 .14 +879 0 +880 -.4 +textures 0 diff --git a/LibreMetaverse/linden/static_assets/26cc2407-84b5-6887-4564-85a9b0cfb01f.gesture b/LibreMetaverse/linden/static_assets/26cc2407-84b5-6887-4564-85a9b0cfb01f.gesture new file mode 100644 index 0000000..123d418 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/26cc2407-84b5-6887-4564-85a9b0cfb01f.gesture differ diff --git a/LibreMetaverse/linden/static_assets/282d67ef-942e-27f4-9c7b-818f59967743.clothing b/LibreMetaverse/linden/static_assets/282d67ef-942e-27f4-9c7b-818f59967743.clothing new file mode 100644 index 0000000..444ee28 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/282d67ef-942e-27f4-9c7b-818f59967743.clothing @@ -0,0 +1,33 @@ +LLWearable version 22 +RASL M LOVE SHIRT DOWN (BLUE) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 5 +parameters 9 +625 0 +638 0 +806 1 +807 1 +808 1 +814 1 +815 .99 +816 .05 +869 0 +textures 1 +2 1c8aa686-d913-3c2d-9c73-947cfae18da7 diff --git a/LibreMetaverse/linden/static_assets/29a56cc8-3fcf-c575-02c7-14a303b12e17.clothing b/LibreMetaverse/linden/static_assets/29a56cc8-3fcf-c575-02c7-14a303b12e17.clothing new file mode 100644 index 0000000..f44730c --- /dev/null +++ b/LibreMetaverse/linden/static_assets/29a56cc8-3fcf-c575-02c7-14a303b12e17.clothing @@ -0,0 +1,29 @@ +LLWearable version 22 +RASL F SHOP JEANS + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 11 +parameters 5 +619 1 +624 1 +824 1 +825 1 +826 1 +textures 1 +17 a77d7374-e4be-d4e3-9010-423a976d5da8 diff --git a/LibreMetaverse/linden/static_assets/29f11d26-7d80-4b53-a97c-fce85d94e392.gesture b/LibreMetaverse/linden/static_assets/29f11d26-7d80-4b53-a97c-fce85d94e392.gesture new file mode 100644 index 0000000..6bd154b Binary files /dev/null and b/LibreMetaverse/linden/static_assets/29f11d26-7d80-4b53-a97c-fce85d94e392.gesture differ diff --git a/LibreMetaverse/linden/static_assets/2b211c3e-d7c9-9e0e-0d96-e9357699bb25.clothing b/LibreMetaverse/linden/static_assets/2b211c3e-d7c9-9e0e-0d96-e9357699bb25.clothing new file mode 100644 index 0000000..5d8ec3a --- /dev/null +++ b/LibreMetaverse/linden/static_assets/2b211c3e-d7c9-9e0e-0d96-e9357699bb25.clothing @@ -0,0 +1,33 @@ +LLWearable version 22 +RASL F CREATE SHIRT DOWN (BLUE) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 5 +parameters 9 +625 0 +638 0 +806 1 +807 1 +808 1 +814 1 +815 .99 +816 .05 +869 0 +textures 1 +2 2f739543-d501-94a0-a039-0885a6d80034 diff --git a/LibreMetaverse/linden/static_assets/2b5a38b2-5e00-3a97-a495-4c826bc443e6.animatn b/LibreMetaverse/linden/static_assets/2b5a38b2-5e00-3a97-a495-4c826bc443e6.animatn new file mode 100644 index 0000000..b7f50ad Binary files /dev/null and b/LibreMetaverse/linden/static_assets/2b5a38b2-5e00-3a97-a495-4c826bc443e6.animatn differ diff --git a/LibreMetaverse/linden/static_assets/2ca8ddae-23ef-0132-d243-7ae953582dd0.clothing b/LibreMetaverse/linden/static_assets/2ca8ddae-23ef-0132-d243-7ae953582dd0.clothing new file mode 100644 index 0000000..09ac148 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/2ca8ddae-23ef-0132-d243-7ae953582dd0.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL M LEARN TOP + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 8 +parameters 9 +606 1 +607 1 +608 1 +609 1 +780 1 +834 1 +835 1 +836 1 +877 0 +textures 2 +13 31ab25af-9af8-ef43-a952-d5619ca7169f +14 fba230b7-219d-7129-f145-672d574bab34 diff --git a/LibreMetaverse/linden/static_assets/2d03fd78-92fc-ca52-aabb-a4904e1339d1.gesture b/LibreMetaverse/linden/static_assets/2d03fd78-92fc-ca52-aabb-a4904e1339d1.gesture new file mode 100644 index 0000000..289c19c Binary files /dev/null and b/LibreMetaverse/linden/static_assets/2d03fd78-92fc-ca52-aabb-a4904e1339d1.gesture differ diff --git a/LibreMetaverse/linden/static_assets/2d408f13-f437-e00e-8f6d-b0857580b034.bodypart b/LibreMetaverse/linden/static_assets/2d408f13-f437-e00e-8f6d-b0857580b034.bodypart new file mode 100644 index 0000000..c53a9f5 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/2d408f13-f437-e00e-8f6d-b0857580b034.bodypart @@ -0,0 +1,52 @@ +LLWearable version 22 +RASL M CREATE SKIN (BILLY) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 1 +parameters 26 +108 .04 +110 0 +111 .4 +116 0 +117 0 +150 0 +162 0 +163 0 +165 0 +700 .25 +701 0 +702 0 +703 0 +704 0 +705 .5 +706 .6 +707 0 +708 0 +709 0 +710 0 +711 .5 +712 0 +713 .7 +714 0 +715 0 +775 0 +textures 3 +0 86c0cfbe-365f-0f74-5cd8-88e90a6e7f5c +5 5ecc9bd1-9231-5a1a-61fd-3902e17f9da7 +6 43db1553-7a52-ffd9-814c-fae075a89732 diff --git a/LibreMetaverse/linden/static_assets/2d6daa51-3192-6794-8e2e-a15f8338ec30.animatn b/LibreMetaverse/linden/static_assets/2d6daa51-3192-6794-8e2e-a15f8338ec30.animatn new file mode 100644 index 0000000..7aad799 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/2d6daa51-3192-6794-8e2e-a15f8338ec30.animatn differ diff --git a/LibreMetaverse/linden/static_assets/30047778-10ea-1af7-6881-4db7a3a5a114.animatn b/LibreMetaverse/linden/static_assets/30047778-10ea-1af7-6881-4db7a3a5a114.animatn new file mode 100644 index 0000000..b6bb0df Binary files /dev/null and b/LibreMetaverse/linden/static_assets/30047778-10ea-1af7-6881-4db7a3a5a114.animatn differ diff --git a/LibreMetaverse/linden/static_assets/30c1bdb4-1f99-3ee9-2a2e-098e4a3ceda6.clothing b/LibreMetaverse/linden/static_assets/30c1bdb4-1f99-3ee9-2a2e-098e4a3ceda6.clothing new file mode 100644 index 0000000..9d65799 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/30c1bdb4-1f99-3ee9-2a2e-098e4a3ceda6.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL M SHOP JACKET + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 8 +parameters 9 +606 1 +607 1 +608 1 +609 1 +780 1 +834 1 +835 1 +836 1 +877 0 +textures 2 +13 0f1edbd7-9e24-50f4-e43e-33c79a3fcdd3 +14 7d950588-19a5-3b45-b273-9e54a878333d diff --git a/LibreMetaverse/linden/static_assets/313b9881-4302-73c0-c7d0-0e7a36b6c224.animatn b/LibreMetaverse/linden/static_assets/313b9881-4302-73c0-c7d0-0e7a36b6c224.animatn new file mode 100644 index 0000000..1f9f839 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/313b9881-4302-73c0-c7d0-0e7a36b6c224.animatn differ diff --git a/LibreMetaverse/linden/static_assets/3147d815-6338-b932-f011-16b56d9ac18b.animatn b/LibreMetaverse/linden/static_assets/3147d815-6338-b932-f011-16b56d9ac18b.animatn new file mode 100644 index 0000000..7fe3d2d Binary files /dev/null and b/LibreMetaverse/linden/static_assets/3147d815-6338-b932-f011-16b56d9ac18b.animatn differ diff --git a/LibreMetaverse/linden/static_assets/315c3a41-a5f3-0ba4-27da-f893f769e69b.animatn b/LibreMetaverse/linden/static_assets/315c3a41-a5f3-0ba4-27da-f893f769e69b.animatn new file mode 100644 index 0000000..52a60b3 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/315c3a41-a5f3-0ba4-27da-f893f769e69b.animatn differ diff --git a/LibreMetaverse/linden/static_assets/33339176-7ddc-9397-94a4-bf3403cbc8f5.animatn b/LibreMetaverse/linden/static_assets/33339176-7ddc-9397-94a4-bf3403cbc8f5.animatn new file mode 100644 index 0000000..fb1834e Binary files /dev/null and b/LibreMetaverse/linden/static_assets/33339176-7ddc-9397-94a4-bf3403cbc8f5.animatn differ diff --git a/LibreMetaverse/linden/static_assets/347df5d8-c73b-009d-f19d-df78aea8ec22.bodypart b/LibreMetaverse/linden/static_assets/347df5d8-c73b-009d-f19d-df78aea8ec22.bodypart new file mode 100644 index 0000000..04e6fdc --- /dev/null +++ b/LibreMetaverse/linden/static_assets/347df5d8-c73b-009d-f19d-df78aea8ec22.bodypart @@ -0,0 +1,52 @@ +LLWearable version 22 +RASL M LOVE SKIN (Jon) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 1 +parameters 26 +108 0 +110 0 +111 .75 +116 0 +117 0 +150 0 +162 0 +163 0 +165 0 +700 .25 +701 0 +702 0 +703 0 +704 0 +705 .5 +706 .6 +707 0 +708 0 +709 0 +710 0 +711 .5 +712 0 +713 .7 +714 0 +715 0 +775 0 +textures 3 +0 4ed0ebf9-f806-0af7-1ba8-3afba81c3e7c +5 c3f2fcd9-416c-138a-9f45-326b062f9f1b +6 9714d5e1-1c71-f92e-a695-71198839f5de diff --git a/LibreMetaverse/linden/static_assets/349a3801-54f9-bf2c-3bd0-1ac89772af01.animatn b/LibreMetaverse/linden/static_assets/349a3801-54f9-bf2c-3bd0-1ac89772af01.animatn new file mode 100644 index 0000000..41ef5cd Binary files /dev/null and b/LibreMetaverse/linden/static_assets/349a3801-54f9-bf2c-3bd0-1ac89772af01.animatn differ diff --git a/LibreMetaverse/linden/static_assets/35db4f7e-28c2-6679-cea9-3ee108f7fc7f.animatn b/LibreMetaverse/linden/static_assets/35db4f7e-28c2-6679-cea9-3ee108f7fc7f.animatn new file mode 100644 index 0000000..1de3061 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/35db4f7e-28c2-6679-cea9-3ee108f7fc7f.animatn differ diff --git a/LibreMetaverse/linden/static_assets/36f81a92-f076-5893-dc4b-7c3795e487cf.animatn b/LibreMetaverse/linden/static_assets/36f81a92-f076-5893-dc4b-7c3795e487cf.animatn new file mode 100644 index 0000000..eb31933 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/36f81a92-f076-5893-dc4b-7c3795e487cf.animatn differ diff --git a/LibreMetaverse/linden/static_assets/370f3a20-6ca6-9971-848c-9a01bc42ae3c.animatn b/LibreMetaverse/linden/static_assets/370f3a20-6ca6-9971-848c-9a01bc42ae3c.animatn new file mode 100644 index 0000000..728d33b Binary files /dev/null and b/LibreMetaverse/linden/static_assets/370f3a20-6ca6-9971-848c-9a01bc42ae3c.animatn differ diff --git a/LibreMetaverse/linden/static_assets/37ea8e97-1d16-b28d-8a48-7c88b39321cb.clothing b/LibreMetaverse/linden/static_assets/37ea8e97-1d16-b28d-8a48-7c88b39321cb.clothing new file mode 100644 index 0000000..2bfaf1e --- /dev/null +++ b/LibreMetaverse/linden/static_assets/37ea8e97-1d16-b28d-8a48-7c88b39321cb.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL F PLAY BOLERO JACKET + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 8 +parameters 9 +606 1 +607 1 +608 1 +609 1 +780 1 +834 1 +835 1 +836 1 +877 0 +textures 2 +13 23f0e8f7-f852-c836-5f13-cfd643a8fb24 +14 85b13d86-3e95-8d4b-a03b-c9c737631194 diff --git a/LibreMetaverse/linden/static_assets/3d6da7ba-e4a3-e08c-b52e-98a40cb4dc33.bodypart b/LibreMetaverse/linden/static_assets/3d6da7ba-e4a3-e08c-b52e-98a40cb4dc33.bodypart new file mode 100644 index 0000000..187f7f0 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/3d6da7ba-e4a3-e08c-b52e-98a40cb4dc33.bodypart @@ -0,0 +1,52 @@ +LLWearable version 22 +RASL F SHOP SKIN (Suzy) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 1 +parameters 26 +108 .04 +110 0 +111 .4 +116 0 +117 0 +150 0 +162 0 +163 0 +165 0 +700 .25 +701 0 +702 0 +703 0 +704 0 +705 .5 +706 .6 +707 0 +708 0 +709 0 +710 0 +711 .5 +712 0 +713 .7 +714 0 +715 0 +775 0 +textures 3 +0 ca158569-54b2-997e-e08a-84e1671f6203 +5 2f1251f3-3967-1044-4211-c6d311b57760 +6 178a21aa-85f2-8b57-9c7a-2d85ebc9f31e diff --git a/LibreMetaverse/linden/static_assets/3d8a32a0-3c25-ddcc-f807-e50f796e1dde.gesture b/LibreMetaverse/linden/static_assets/3d8a32a0-3c25-ddcc-f807-e50f796e1dde.gesture new file mode 100644 index 0000000..b31632c Binary files /dev/null and b/LibreMetaverse/linden/static_assets/3d8a32a0-3c25-ddcc-f807-e50f796e1dde.gesture differ diff --git a/LibreMetaverse/linden/static_assets/3d94bad0-c55b-7dcc-8763-033c59405d33.animatn b/LibreMetaverse/linden/static_assets/3d94bad0-c55b-7dcc-8763-033c59405d33.animatn new file mode 100644 index 0000000..ed5bdfd Binary files /dev/null and b/LibreMetaverse/linden/static_assets/3d94bad0-c55b-7dcc-8763-033c59405d33.animatn differ diff --git a/LibreMetaverse/linden/static_assets/3da1d753-028a-5446-24f3-9c9b856d9422.animatn b/LibreMetaverse/linden/static_assets/3da1d753-028a-5446-24f3-9c9b856d9422.animatn new file mode 100644 index 0000000..7f52de0 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/3da1d753-028a-5446-24f3-9c9b856d9422.animatn differ diff --git a/LibreMetaverse/linden/static_assets/3f1cf9b6-f52c-46cd-bcf7-ffb7c8c25aea.gesture b/LibreMetaverse/linden/static_assets/3f1cf9b6-f52c-46cd-bcf7-ffb7c8c25aea.gesture new file mode 100644 index 0000000..ad795ce Binary files /dev/null and b/LibreMetaverse/linden/static_assets/3f1cf9b6-f52c-46cd-bcf7-ffb7c8c25aea.gesture differ diff --git a/LibreMetaverse/linden/static_assets/3f258e00-f5ac-68b2-bfb0-0c3c0fa3e614.gesture b/LibreMetaverse/linden/static_assets/3f258e00-f5ac-68b2-bfb0-0c3c0fa3e614.gesture new file mode 100644 index 0000000..0e02ee3 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/3f258e00-f5ac-68b2-bfb0-0c3c0fa3e614.gesture differ diff --git a/LibreMetaverse/linden/static_assets/3fc36cff-74b6-a980-3e4c-8f93a1dae205.clothing b/LibreMetaverse/linden/static_assets/3fc36cff-74b6-a980-3e4c-8f93a1dae205.clothing new file mode 100644 index 0000000..fa5dae9 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/3fc36cff-74b6-a980-3e4c-8f93a1dae205.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL ANNA BOOTS FOOTSHAPER + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id df110c10-72e6-40d6-8916-14b4b0366b18 + owner_id df110c10-72e6-40d6-8916-14b4b0366b18 + last_owner_id df110c10-72e6-40d6-8916-14b4b0366b18 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 6 +parameters 10 +198 1 +503 0 +508 -1 +513 0 +514 .21 +616 .1 +654 0 +812 1 +813 1 +817 1 +textures 1 +7 85b13d86-3e95-8d4b-a03b-c9c737631194 diff --git a/LibreMetaverse/linden/static_assets/40b92916-8055-2562-008f-58924bd0e03c.gesture b/LibreMetaverse/linden/static_assets/40b92916-8055-2562-008f-58924bd0e03c.gesture new file mode 100644 index 0000000..63b18c8 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/40b92916-8055-2562-008f-58924bd0e03c.gesture differ diff --git a/LibreMetaverse/linden/static_assets/41426836-7437-7e89-025d-0aa4d10f1d69.animatn b/LibreMetaverse/linden/static_assets/41426836-7437-7e89-025d-0aa4d10f1d69.animatn new file mode 100644 index 0000000..aead276 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/41426836-7437-7e89-025d-0aa4d10f1d69.animatn differ diff --git a/LibreMetaverse/linden/static_assets/42b46214-4b44-79ae-deb8-0df61424ff4b.animatn b/LibreMetaverse/linden/static_assets/42b46214-4b44-79ae-deb8-0df61424ff4b.animatn new file mode 100644 index 0000000..90e909d Binary files /dev/null and b/LibreMetaverse/linden/static_assets/42b46214-4b44-79ae-deb8-0df61424ff4b.animatn differ diff --git a/LibreMetaverse/linden/static_assets/42dd95d5-0bc6-6392-f650-777304946c0f.animatn b/LibreMetaverse/linden/static_assets/42dd95d5-0bc6-6392-f650-777304946c0f.animatn new file mode 100644 index 0000000..81d0085 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/42dd95d5-0bc6-6392-f650-777304946c0f.animatn differ diff --git a/LibreMetaverse/linden/static_assets/42ecd00b-9947-a97c-400a-bbc9174c7aeb.animatn b/LibreMetaverse/linden/static_assets/42ecd00b-9947-a97c-400a-bbc9174c7aeb.animatn new file mode 100644 index 0000000..39d3f0b Binary files /dev/null and b/LibreMetaverse/linden/static_assets/42ecd00b-9947-a97c-400a-bbc9174c7aeb.animatn differ diff --git a/LibreMetaverse/linden/static_assets/43417d10-a2f7-7727-6fd4-dd7f04ad7a13.gesture b/LibreMetaverse/linden/static_assets/43417d10-a2f7-7727-6fd4-dd7f04ad7a13.gesture new file mode 100644 index 0000000..8364c7e Binary files /dev/null and b/LibreMetaverse/linden/static_assets/43417d10-a2f7-7727-6fd4-dd7f04ad7a13.gesture differ diff --git a/LibreMetaverse/linden/static_assets/44a87e64-2d78-14b7-1cde-ac0f5031621f.gesture b/LibreMetaverse/linden/static_assets/44a87e64-2d78-14b7-1cde-ac0f5031621f.gesture new file mode 100644 index 0000000..06a9afa Binary files /dev/null and b/LibreMetaverse/linden/static_assets/44a87e64-2d78-14b7-1cde-ac0f5031621f.gesture differ diff --git a/LibreMetaverse/linden/static_assets/46bb4359-de38-4ed8-6a22-f1f52fe8f506.animatn b/LibreMetaverse/linden/static_assets/46bb4359-de38-4ed8-6a22-f1f52fe8f506.animatn new file mode 100644 index 0000000..a85f1ea Binary files /dev/null and b/LibreMetaverse/linden/static_assets/46bb4359-de38-4ed8-6a22-f1f52fe8f506.animatn differ diff --git a/LibreMetaverse/linden/static_assets/47f5f6fb-22e5-ae44-f871-73aaaf4a6022.animatn b/LibreMetaverse/linden/static_assets/47f5f6fb-22e5-ae44-f871-73aaaf4a6022.animatn new file mode 100644 index 0000000..4348735 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/47f5f6fb-22e5-ae44-f871-73aaaf4a6022.animatn differ diff --git a/LibreMetaverse/linden/static_assets/49aea43b-5ac3-8a44-b595-96100af0beda.animatn b/LibreMetaverse/linden/static_assets/49aea43b-5ac3-8a44-b595-96100af0beda.animatn new file mode 100644 index 0000000..9d378ae Binary files /dev/null and b/LibreMetaverse/linden/static_assets/49aea43b-5ac3-8a44-b595-96100af0beda.animatn differ diff --git a/LibreMetaverse/linden/static_assets/4ae8016b-31b9-03bb-c401-b1ea941db41d.animatn b/LibreMetaverse/linden/static_assets/4ae8016b-31b9-03bb-c401-b1ea941db41d.animatn new file mode 100644 index 0000000..a2fcc32 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/4ae8016b-31b9-03bb-c401-b1ea941db41d.animatn differ diff --git a/LibreMetaverse/linden/static_assets/4bd69a1d-1114-a0b4-625f-84e0a5237155.animatn b/LibreMetaverse/linden/static_assets/4bd69a1d-1114-a0b4-625f-84e0a5237155.animatn new file mode 100644 index 0000000..2eedbda Binary files /dev/null and b/LibreMetaverse/linden/static_assets/4bd69a1d-1114-a0b4-625f-84e0a5237155.animatn differ diff --git a/LibreMetaverse/linden/static_assets/4c450f9e-07c0-2f5a-bc89-57de56db8ba1.gesture b/LibreMetaverse/linden/static_assets/4c450f9e-07c0-2f5a-bc89-57de56db8ba1.gesture new file mode 100644 index 0000000..69e35f1 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/4c450f9e-07c0-2f5a-bc89-57de56db8ba1.gesture differ diff --git a/LibreMetaverse/linden/static_assets/4f23cc4a-712e-aabc-afcf-3cab4c1164ea.gesture b/LibreMetaverse/linden/static_assets/4f23cc4a-712e-aabc-afcf-3cab4c1164ea.gesture new file mode 100644 index 0000000..9d7e59f Binary files /dev/null and b/LibreMetaverse/linden/static_assets/4f23cc4a-712e-aabc-afcf-3cab4c1164ea.gesture differ diff --git a/LibreMetaverse/linden/static_assets/510cdb99-1764-a0ef-a7e7-beb70e8dc4a4.clothing b/LibreMetaverse/linden/static_assets/510cdb99-1764-a0ef-a7e7-beb70e8dc4a4.clothing new file mode 100644 index 0000000..f4b6eb5 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/510cdb99-1764-a0ef-a7e7-beb70e8dc4a4.clothing @@ -0,0 +1,33 @@ +LLWearable version 22 +RASL F PLAY BODICE TOP DOWN + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 5 +parameters 9 +625 0 +638 0 +806 1 +807 1 +808 1 +814 1 +815 .99 +816 .05 +869 0 +textures 1 +2 60b3592a-2499-20ce-e88b-db35fdba13ea diff --git a/LibreMetaverse/linden/static_assets/514af488-9051-044a-b3fc-d4dbf76377c6.animatn b/LibreMetaverse/linden/static_assets/514af488-9051-044a-b3fc-d4dbf76377c6.animatn new file mode 100644 index 0000000..2609059 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/514af488-9051-044a-b3fc-d4dbf76377c6.animatn differ diff --git a/LibreMetaverse/linden/static_assets/51f3b303-a783-f0bd-9e98-9c094be13653.bodypart b/LibreMetaverse/linden/static_assets/51f3b303-a783-f0bd-9e98-9c094be13653.bodypart new file mode 100644 index 0000000..5b6ad1d --- /dev/null +++ b/LibreMetaverse/linden/static_assets/51f3b303-a783-f0bd-9e98-9c094be13653.bodypart @@ -0,0 +1,63 @@ +LLWearable version 22 +RASL M LEARN EYEBROWSHAPER + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 2 +parameters 39 +16 .76 +31 .62 +112 0 +113 0 +114 0 +115 0 +119 0 +130 0 +131 0 +132 0 +133 0 +134 0 +135 0 +136 0 +137 .5 +140 0 +141 0 +142 0 +143 -4 +166 0 +167 0 +168 0 +169 0 +177 0 +181 -1 +182 -1 +183 -1 +184 0 +192 0 +674 -1 +750 0 +752 .5 +754 .5 +755 0 +757 -1.18 +762 0 +763 0 +785 0 +789 0 +textures 1 +4 7ca39b4c-bd19-4699-aff7-f93fd03d3e7b diff --git a/LibreMetaverse/linden/static_assets/522d4d1d-0f75-c3e7-af30-990e5f394438.gesture b/LibreMetaverse/linden/static_assets/522d4d1d-0f75-c3e7-af30-990e5f394438.gesture new file mode 100644 index 0000000..e9bab5d Binary files /dev/null and b/LibreMetaverse/linden/static_assets/522d4d1d-0f75-c3e7-af30-990e5f394438.gesture differ diff --git a/LibreMetaverse/linden/static_assets/52d9684f-2dcf-c252-2360-186b4236d07e.gesture b/LibreMetaverse/linden/static_assets/52d9684f-2dcf-c252-2360-186b4236d07e.gesture new file mode 100644 index 0000000..f964630 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/52d9684f-2dcf-c252-2360-186b4236d07e.gesture differ diff --git a/LibreMetaverse/linden/static_assets/5480a924-8b06-9551-2af7-bf59452870e5.gesture b/LibreMetaverse/linden/static_assets/5480a924-8b06-9551-2af7-bf59452870e5.gesture new file mode 100644 index 0000000..b4c2dfe Binary files /dev/null and b/LibreMetaverse/linden/static_assets/5480a924-8b06-9551-2af7-bf59452870e5.gesture differ diff --git a/LibreMetaverse/linden/static_assets/55c19b40-5303-d6ab-f003-5a2d926f4738.bodypart b/LibreMetaverse/linden/static_assets/55c19b40-5303-d6ab-f003-5a2d926f4738.bodypart new file mode 100644 index 0000000..e312715 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/55c19b40-5303-d6ab-f003-5a2d926f4738.bodypart @@ -0,0 +1,63 @@ +LLWearable version 22 +RASL M EXPLORE EYEBROWSHAPER + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 2 +parameters 39 +16 1.18 +31 .42 +112 0 +113 0 +114 0 +115 0 +119 0 +130 0 +131 0 +132 0 +133 0 +134 0 +135 0 +136 0 +137 .5 +140 0 +141 0 +142 0 +143 -4 +166 0 +167 0 +168 0 +169 0 +177 0 +181 -1 +182 -1 +183 -1 +184 0 +192 0 +674 -1 +750 0 +752 .5 +754 .5 +755 0 +757 -.16 +762 0 +763 0 +785 0 +789 0 +textures 1 +4 7ca39b4c-bd19-4699-aff7-f93fd03d3e7b diff --git a/LibreMetaverse/linden/static_assets/56e0ba0d-4a9f-7f27-6117-32f2ebbf6135.animatn b/LibreMetaverse/linden/static_assets/56e0ba0d-4a9f-7f27-6117-32f2ebbf6135.animatn new file mode 100644 index 0000000..31b7467 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/56e0ba0d-4a9f-7f27-6117-32f2ebbf6135.animatn differ diff --git a/LibreMetaverse/linden/static_assets/5725fae1-0087-ec20-a4a0-eaa82d5c121b.bodypart b/LibreMetaverse/linden/static_assets/5725fae1-0087-ec20-a4a0-eaa82d5c121b.bodypart new file mode 100644 index 0000000..61fde63 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/5725fae1-0087-ec20-a4a0-eaa82d5c121b.bodypart @@ -0,0 +1,26 @@ +LLWearable version 22 +RASL - Eyes - Amber Brown + + permissions 0 + { + base_mask 00082000 + owner_mask 00082000 + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id ef5ac61a-72b0-48a6-843f-adb506d7ba86 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id ef5ac61a-72b0-48a6-843f-adb506d7ba86 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 3 +parameters 2 +98 1 +99 0 +textures 1 +3 f8230eaa-0afb-8eee-9891-030cfdfa6640 diff --git a/LibreMetaverse/linden/static_assets/5747a48e-073e-c331-f6f3-7c2149613d3e.animatn b/LibreMetaverse/linden/static_assets/5747a48e-073e-c331-f6f3-7c2149613d3e.animatn new file mode 100644 index 0000000..bd25f77 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/5747a48e-073e-c331-f6f3-7c2149613d3e.animatn differ diff --git a/LibreMetaverse/linden/static_assets/57abaae6-1d17-7b1b-5f98-6d11a6411276.animatn b/LibreMetaverse/linden/static_assets/57abaae6-1d17-7b1b-5f98-6d11a6411276.animatn new file mode 100644 index 0000000..5dac9c0 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/57abaae6-1d17-7b1b-5f98-6d11a6411276.animatn differ diff --git a/LibreMetaverse/linden/static_assets/57cbd4f1-c53e-020f-f455-5ad2a5bab98d.bodypart b/LibreMetaverse/linden/static_assets/57cbd4f1-c53e-020f-f455-5ad2a5bab98d.bodypart new file mode 100644 index 0000000..fd0a90e --- /dev/null +++ b/LibreMetaverse/linden/static_assets/57cbd4f1-c53e-020f-f455-5ad2a5bab98d.bodypart @@ -0,0 +1,105 @@ +LLWearable version 22 +RASL F LEARN SHAPE (ANNA) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 0 +parameters 82 +1 0 +2 -.47 +4 -.06 +5 .15 +6 -.05 +7 .2 +8 -.26 +10 .17 +11 .24 +12 -.08 +13 .21 +14 .55 +15 -.28 +17 -.08 +18 .7 +19 -.3 +20 -.06 +21 -.05 +22 0 +23 -.4 +24 .25 +25 -.32 +27 -.47 +33 .58 +34 .07 +35 -.1 +36 -1.1 +37 -1.16 +38 -.16 +80 0 +105 .47 +155 -.42 +157 .04 +185 -.6 +193 .54 +196 -1.07 +505 .31 +506 -.44 +507 0 +515 -1 +517 -.08 +518 .24 +629 .44 +637 .06 +646 -.01 +647 -.09 +649 .34 +650 -.15 +652 .34 +653 .38 +656 0 +659 .59 +662 .5 +663 0 +664 0 +665 .08 +675 -.19 +676 -.37 +678 .5 +682 .52 +683 -.2 +684 .18 +685 0 +690 .37 +692 .2 +693 .22 +753 .51 +756 -.38 +758 .06 +759 -.05 +760 .72 +764 .35 +765 -.08 +769 .45 +773 .53 +795 .21 +796 .01 +799 .55 +841 .02 +842 .16 +879 0 +880 -.85 +textures 0 diff --git a/LibreMetaverse/linden/static_assets/590b2eac-a9fc-1e22-7874-782e3ded97d2.bodypart b/LibreMetaverse/linden/static_assets/590b2eac-a9fc-1e22-7874-782e3ded97d2.bodypart new file mode 100644 index 0000000..d0fb089 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/590b2eac-a9fc-1e22-7874-782e3ded97d2.bodypart @@ -0,0 +1,105 @@ +LLWearable version 22 +RASL F CREATE SHAPE (POPPY) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 0 +parameters 82 +1 .02 +2 -.44 +4 -.06 +5 -.02 +6 -.05 +7 .02 +8 -.42 +10 .3 +11 .24 +12 -.23 +13 0 +14 .46 +15 -.28 +17 .25 +18 -.38 +19 -.45 +20 -.14 +21 -.02 +22 0 +23 -.46 +24 .22 +25 .19 +27 -.47 +33 .58 +34 .07 +35 -.1 +36 -1 +37 -1.04 +38 -.24 +80 0 +105 .53 +155 -.44 +157 0 +185 -.62 +193 .46 +196 -1.13 +505 .35 +506 -.68 +507 -.24 +515 -1 +517 -.05 +518 .24 +629 .5 +637 .06 +646 -.08 +647 -.17 +649 .32 +650 0 +652 .37 +653 .35 +656 0 +659 .57 +662 .5 +663 0 +664 0 +665 .08 +675 -.17 +676 -.49 +678 .5 +682 .53 +683 -.17 +684 .04 +685 0 +690 .39 +692 .3 +693 .2 +753 .55 +756 -.38 +758 .06 +759 .17 +760 .85 +764 .32 +765 -.08 +769 .45 +773 .53 +795 .2 +796 .08 +799 .5 +841 -.02 +842 .06 +879 0 +880 -.85 +textures 0 diff --git a/LibreMetaverse/linden/static_assets/59332ea5-2a75-9ede-9ab7-f0ae70bbffcc.clothing b/LibreMetaverse/linden/static_assets/59332ea5-2a75-9ede-9ab7-f0ae70bbffcc.clothing new file mode 100644 index 0000000..b7c0342 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/59332ea5-2a75-9ede-9ab7-f0ae70bbffcc.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL MSHOE 5 FOOTSHAPER + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id df110c10-72e6-40d6-8916-14b4b0366b18 + owner_id df110c10-72e6-40d6-8916-14b4b0366b18 + last_owner_id df110c10-72e6-40d6-8916-14b4b0366b18 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 6 +parameters 10 +198 0 +503 0 +508 .02 +513 .29 +514 .27 +616 .1 +654 0 +812 1 +813 1 +817 1 +textures 1 +7 85b13d86-3e95-8d4b-a03b-c9c737631194 diff --git a/LibreMetaverse/linden/static_assets/5a68100b-e6ba-5170-649c-80beddc67035.gesture b/LibreMetaverse/linden/static_assets/5a68100b-e6ba-5170-649c-80beddc67035.gesture new file mode 100644 index 0000000..548369d Binary files /dev/null and b/LibreMetaverse/linden/static_assets/5a68100b-e6ba-5170-649c-80beddc67035.gesture differ diff --git a/LibreMetaverse/linden/static_assets/5a977ed9-7f72-44e9-4c4c-6e913df8ae74.animatn b/LibreMetaverse/linden/static_assets/5a977ed9-7f72-44e9-4c4c-6e913df8ae74.animatn new file mode 100644 index 0000000..700f4e2 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/5a977ed9-7f72-44e9-4c4c-6e913df8ae74.animatn differ diff --git a/LibreMetaverse/linden/static_assets/5af7de1f-e517-ae9a-13d8-4760c1ab4cc3.bodypart b/LibreMetaverse/linden/static_assets/5af7de1f-e517-ae9a-13d8-4760c1ab4cc3.bodypart new file mode 100644 index 0000000..46833ce --- /dev/null +++ b/LibreMetaverse/linden/static_assets/5af7de1f-e517-ae9a-13d8-4760c1ab4cc3.bodypart @@ -0,0 +1,26 @@ +LLWearable version 22 +New Eyes + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id df110c10-72e6-40d6-8916-14b4b0366b18 + owner_id df110c10-72e6-40d6-8916-14b4b0366b18 + last_owner_id df110c10-72e6-40d6-8916-14b4b0366b18 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 3 +parameters 2 +98 1 +99 0 +textures 1 +3 d7bef979-ed48-e7ce-079a-b19a3c5a144a diff --git a/LibreMetaverse/linden/static_assets/5bac881c-fff8-b19a-49eb-ba253eb5af04.bodypart b/LibreMetaverse/linden/static_assets/5bac881c-fff8-b19a-49eb-ba253eb5af04.bodypart new file mode 100644 index 0000000..ed4033a --- /dev/null +++ b/LibreMetaverse/linden/static_assets/5bac881c-fff8-b19a-49eb-ba253eb5af04.bodypart @@ -0,0 +1,63 @@ +LLWearable version 22 +RASL F EXPLORE EYEBROWSHAPER + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 2 +parameters 39 +16 .9 +31 .34 +112 0 +113 0 +114 0 +115 0 +119 0 +130 0 +131 0 +132 0 +133 0 +134 0 +135 0 +136 0 +137 .5 +140 0 +141 0 +142 0 +143 -4 +166 0 +167 0 +168 0 +169 0 +177 0 +181 -1 +182 -1 +183 -1 +184 0 +192 0 +674 -1 +750 0 +752 .5 +754 .5 +755 0 +757 .14 +762 0 +763 0 +785 0 +789 0 +textures 1 +4 7ca39b4c-bd19-4699-aff7-f93fd03d3e7b diff --git a/LibreMetaverse/linden/static_assets/5c682a95-6da4-a463-0bf6-0f5b7be129d1.animatn b/LibreMetaverse/linden/static_assets/5c682a95-6da4-a463-0bf6-0f5b7be129d1.animatn new file mode 100644 index 0000000..a7da5e8 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/5c682a95-6da4-a463-0bf6-0f5b7be129d1.animatn differ diff --git a/LibreMetaverse/linden/static_assets/5dde08b6-59ec-5ca3-92a0-b9d7f532a768.bodypart b/LibreMetaverse/linden/static_assets/5dde08b6-59ec-5ca3-92a0-b9d7f532a768.bodypart new file mode 100644 index 0000000..10f197a --- /dev/null +++ b/LibreMetaverse/linden/static_assets/5dde08b6-59ec-5ca3-92a0-b9d7f532a768.bodypart @@ -0,0 +1,63 @@ +LLWearable version 22 +RASL M PLAY EYEBROWSHAPER + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 2 +parameters 39 +16 .69 +31 .4 +112 0 +113 0 +114 0 +115 0 +119 0 +130 0 +131 0 +132 0 +133 0 +134 0 +135 0 +136 0 +137 .5 +140 0 +141 0 +142 0 +143 -4 +166 0 +167 0 +168 0 +169 0 +177 0 +181 -1 +182 -1 +183 -1 +184 0 +192 0 +674 -1 +750 0 +752 .5 +754 .5 +755 0 +757 -.4 +762 0 +763 0 +785 0 +789 0 +textures 1 +4 7ca39b4c-bd19-4699-aff7-f93fd03d3e7b diff --git a/LibreMetaverse/linden/static_assets/5ea3991f-c293-392e-6860-91dfa01278a3.animatn b/LibreMetaverse/linden/static_assets/5ea3991f-c293-392e-6860-91dfa01278a3.animatn new file mode 100644 index 0000000..f2e6585 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/5ea3991f-c293-392e-6860-91dfa01278a3.animatn differ diff --git a/LibreMetaverse/linden/static_assets/6061a81b-e6bf-5909-b86a-268e5c6b28c3.clothing b/LibreMetaverse/linden/static_assets/6061a81b-e6bf-5909-b86a-268e5c6b28c3.clothing new file mode 100644 index 0000000..cc6a8e1 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/6061a81b-e6bf-5909-b86a-268e5c6b28c3.clothing @@ -0,0 +1,29 @@ +LLWearable version 22 +RASL F EXPLORE JEANS + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 11 +parameters 5 +619 1 +624 1 +824 1 +825 1 +826 1 +textures 1 +17 0bcd9123-fb74-5d95-e9e2-d0e4f8677405 diff --git a/LibreMetaverse/linden/static_assets/6212ffdd-d447-a92f-18f3-8cb94a799d83.gesture b/LibreMetaverse/linden/static_assets/6212ffdd-d447-a92f-18f3-8cb94a799d83.gesture new file mode 100644 index 0000000..b94ccdb Binary files /dev/null and b/LibreMetaverse/linden/static_assets/6212ffdd-d447-a92f-18f3-8cb94a799d83.gesture differ diff --git a/LibreMetaverse/linden/static_assets/62c5de58-cb33-5743-3d07-9e4cd4352864.animatn b/LibreMetaverse/linden/static_assets/62c5de58-cb33-5743-3d07-9e4cd4352864.animatn new file mode 100644 index 0000000..1e83b0d Binary files /dev/null and b/LibreMetaverse/linden/static_assets/62c5de58-cb33-5743-3d07-9e4cd4352864.animatn differ diff --git a/LibreMetaverse/linden/static_assets/631feb23-6f72-ae9c-dd5e-51510bbe235b.clothing b/LibreMetaverse/linden/static_assets/631feb23-6f72-ae9c-dd5e-51510bbe235b.clothing new file mode 100644 index 0000000..92e6564 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/631feb23-6f72-ae9c-dd5e-51510bbe235b.clothing @@ -0,0 +1,33 @@ +LLWearable version 22 +RASL F EXPLORE TANK DOWN + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 5 +parameters 9 +625 0 +638 0 +806 1 +807 1 +808 1 +814 1 +815 .99 +816 .05 +869 0 +textures 1 +2 bc23416d-7993-17bf-d5e0-bcfae808be73 diff --git a/LibreMetaverse/linden/static_assets/633b2da6-a46f-8de8-5fe6-1256fd48d991.bodypart b/LibreMetaverse/linden/static_assets/633b2da6-a46f-8de8-5fe6-1256fd48d991.bodypart new file mode 100644 index 0000000..b129dfc --- /dev/null +++ b/LibreMetaverse/linden/static_assets/633b2da6-a46f-8de8-5fe6-1256fd48d991.bodypart @@ -0,0 +1,52 @@ +LLWearable version 22 +Male Designer Skin + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 0008e000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 1 +parameters 26 +108 0 +110 0 +111 .5 +116 0 +117 0 +150 0 +162 0 +163 0 +165 0 +700 .25 +701 0 +702 0 +703 0 +704 0 +705 .5 +706 .6 +707 0 +708 0 +709 0 +710 0 +711 .5 +712 0 +713 .7 +714 0 +715 0 +775 0 +textures 3 +0 ddcc80fe-8da3-0eb7-cad6-ae35f76c99ab +5 f4e585de-8cc8-fecd-6eba-b3ec663161a1 +6 8bd9935f-97dd-bed2-1a46-df194013d737 diff --git a/LibreMetaverse/linden/static_assets/63af4bbd-7dba-fb00-01f6-bc2126ece403.gesture b/LibreMetaverse/linden/static_assets/63af4bbd-7dba-fb00-01f6-bc2126ece403.gesture new file mode 100644 index 0000000..0c958c6 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/63af4bbd-7dba-fb00-01f6-bc2126ece403.gesture differ diff --git a/LibreMetaverse/linden/static_assets/666307d9-a860-572d-6fd4-c3ab8865c094.animatn b/LibreMetaverse/linden/static_assets/666307d9-a860-572d-6fd4-c3ab8865c094.animatn new file mode 100644 index 0000000..c8d940b Binary files /dev/null and b/LibreMetaverse/linden/static_assets/666307d9-a860-572d-6fd4-c3ab8865c094.animatn differ diff --git a/LibreMetaverse/linden/static_assets/66d174a6-66dc-cfe4-5b51-48b3be18d099.clothing b/LibreMetaverse/linden/static_assets/66d174a6-66dc-cfe4-5b51-48b3be18d099.clothing new file mode 100644 index 0000000..d8679b7 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/66d174a6-66dc-cfe4-5b51-48b3be18d099.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL F PLAY BODICE TOP UP + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 4 +parameters 10 +781 1 +800 1 +801 1 +802 1 +803 1 +804 1 +805 1 +828 0 +840 0 +868 0 +textures 1 +1 618cc16f-fcfa-12a3-1896-be4e87ca09a0 diff --git a/LibreMetaverse/linden/static_assets/66ecd9bd-22e1-2633-f41e-ad1a38205662.gesture b/LibreMetaverse/linden/static_assets/66ecd9bd-22e1-2633-f41e-ad1a38205662.gesture new file mode 100644 index 0000000..38b7075 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/66ecd9bd-22e1-2633-f41e-ad1a38205662.gesture differ diff --git a/LibreMetaverse/linden/static_assets/6802d553-49da-0778-9f85-1599a2266526.animatn b/LibreMetaverse/linden/static_assets/6802d553-49da-0778-9f85-1599a2266526.animatn new file mode 100644 index 0000000..ecf9138 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/6802d553-49da-0778-9f85-1599a2266526.animatn differ diff --git a/LibreMetaverse/linden/static_assets/6883a61a-b27b-5914-a61e-dda118a9ee2c.animatn b/LibreMetaverse/linden/static_assets/6883a61a-b27b-5914-a61e-dda118a9ee2c.animatn new file mode 100644 index 0000000..3c18b3d Binary files /dev/null and b/LibreMetaverse/linden/static_assets/6883a61a-b27b-5914-a61e-dda118a9ee2c.animatn differ diff --git a/LibreMetaverse/linden/static_assets/68efa755-f0dd-8da2-38e9-bc9ea6b4ddd6.gesture b/LibreMetaverse/linden/static_assets/68efa755-f0dd-8da2-38e9-bc9ea6b4ddd6.gesture new file mode 100644 index 0000000..1af6225 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/68efa755-f0dd-8da2-38e9-bc9ea6b4ddd6.gesture differ diff --git a/LibreMetaverse/linden/static_assets/693f12af-3bd9-8dcd-0395-32a967cc812d.bodypart b/LibreMetaverse/linden/static_assets/693f12af-3bd9-8dcd-0395-32a967cc812d.bodypart new file mode 100644 index 0000000..7e72d3e --- /dev/null +++ b/LibreMetaverse/linden/static_assets/693f12af-3bd9-8dcd-0395-32a967cc812d.bodypart @@ -0,0 +1,52 @@ +LLWearable version 22 +RASL M EXPLORE SKIN (LOUIS) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 1 +parameters 26 +108 0 +110 0 +111 .75 +116 0 +117 0 +150 0 +162 0 +163 0 +165 0 +700 .25 +701 0 +702 0 +703 0 +704 0 +705 .5 +706 .6 +707 0 +708 0 +709 0 +710 0 +711 .5 +712 0 +713 .7 +714 0 +715 0 +775 0 +textures 3 +0 186d9ce8-d1bd-b0d9-4c1e-e2d0faf4d6ca +5 959fdef8-ca08-4059-5468-0431a14b11fe +6 a2200068-757a-6b58-6693-02129927627e diff --git a/LibreMetaverse/linden/static_assets/697ed804-815c-f195-597c-dce51b86713b.bodypart b/LibreMetaverse/linden/static_assets/697ed804-815c-f195-597c-dce51b86713b.bodypart new file mode 100644 index 0000000..a8f1d47 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/697ed804-815c-f195-597c-dce51b86713b.bodypart @@ -0,0 +1,26 @@ +LLWearable version 22 +RASL - Eyes - Spring Green + + permissions 0 + { + base_mask 00082000 + owner_mask 00082000 + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id ef5ac61a-72b0-48a6-843f-adb506d7ba86 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id ef5ac61a-72b0-48a6-843f-adb506d7ba86 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 3 +parameters 2 +98 1 +99 0 +textures 1 +3 c0871f57-c220-1a17-941a-bc953763f317 diff --git a/LibreMetaverse/linden/static_assets/69a2052e-1777-df94-49bd-8675ca576d87.clothing b/LibreMetaverse/linden/static_assets/69a2052e-1777-df94-49bd-8675ca576d87.clothing new file mode 100644 index 0000000..18943d9 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/69a2052e-1777-df94-49bd-8675ca576d87.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL M PLAY JACKET + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 8 +parameters 9 +606 1 +607 1 +608 1 +609 1 +780 1 +834 1 +835 1 +836 1 +877 0 +textures 2 +13 9cc05d27-0088-dfea-2cd7-1573812decdf +14 f13c2b07-21d3-e913-e848-4aad3b8044f9 diff --git a/LibreMetaverse/linden/static_assets/6af61452-5a3b-7fd3-4604-dc397aa9184b.bodypart b/LibreMetaverse/linden/static_assets/6af61452-5a3b-7fd3-4604-dc397aa9184b.bodypart new file mode 100644 index 0000000..2f0f5b3 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/6af61452-5a3b-7fd3-4604-dc397aa9184b.bodypart @@ -0,0 +1,105 @@ +LLWearable version 22 +RASL M LOVE SHAPE (JON) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 0 +parameters 82 +1 .16 +2 -.21 +4 .17 +5 .44 +6 .02 +7 -.24 +8 -.14 +10 .88 +11 .4 +12 -.08 +13 .68 +14 .63 +15 -.22 +17 .22 +18 .66 +19 -.43 +20 -.26 +21 .31 +22 .57 +23 -.44 +24 -.14 +25 -.02 +27 .05 +33 1.14 +34 -.26 +35 -.07 +36 -.52 +37 -.14 +38 -.1 +80 1 +105 .5 +155 -.22 +157 .02 +185 -.76 +193 .73 +196 -.98 +505 .49 +506 -.12 +507 0 +515 -1 +517 -.25 +518 -.08 +629 .37 +637 .05 +646 .1 +647 -.02 +649 .5 +650 .05 +652 .46 +653 .38 +656 0 +659 .54 +662 .5 +663 0 +664 0 +665 .08 +675 -.12 +676 -.22 +678 .46 +682 .57 +683 -.05 +684 0 +685 .08 +690 .46 +692 .18 +693 .2 +753 1 +756 -.78 +758 -.42 +759 .75 +760 .24 +764 .23 +765 .15 +769 .45 +773 .45 +795 .26 +796 .28 +799 .52 +841 .02 +842 0 +879 .17 +880 -.8 +textures 0 diff --git a/LibreMetaverse/linden/static_assets/6b61c8e8-4747-0d75-12d7-e49ff207a4ca.animatn b/LibreMetaverse/linden/static_assets/6b61c8e8-4747-0d75-12d7-e49ff207a4ca.animatn new file mode 100644 index 0000000..d7218f8 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/6b61c8e8-4747-0d75-12d7-e49ff207a4ca.animatn differ diff --git a/LibreMetaverse/linden/static_assets/6bd01860-4ebd-127a-bb3d-d1427e8e0c42.animatn b/LibreMetaverse/linden/static_assets/6bd01860-4ebd-127a-bb3d-d1427e8e0c42.animatn new file mode 100644 index 0000000..80dc724 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/6bd01860-4ebd-127a-bb3d-d1427e8e0c42.animatn differ diff --git a/LibreMetaverse/linden/static_assets/6ed24bd8-91aa-4b12-ccc7-c97c857ab4e0.animatn b/LibreMetaverse/linden/static_assets/6ed24bd8-91aa-4b12-ccc7-c97c857ab4e0.animatn new file mode 100644 index 0000000..1daa254 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/6ed24bd8-91aa-4b12-ccc7-c97c857ab4e0.animatn differ diff --git a/LibreMetaverse/linden/static_assets/709ea28e-1573-c023-8bf8-520c8bc637fa.animatn b/LibreMetaverse/linden/static_assets/709ea28e-1573-c023-8bf8-520c8bc637fa.animatn new file mode 100644 index 0000000..d38b3c0 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/709ea28e-1573-c023-8bf8-520c8bc637fa.animatn differ diff --git a/LibreMetaverse/linden/static_assets/70ea714f-3a97-d742-1b01-590a8fcd1db5.animatn b/LibreMetaverse/linden/static_assets/70ea714f-3a97-d742-1b01-590a8fcd1db5.animatn new file mode 100644 index 0000000..0eb2008 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/70ea714f-3a97-d742-1b01-590a8fcd1db5.animatn differ diff --git a/LibreMetaverse/linden/static_assets/72560c27-e48b-a6a5-10e3-d21dfb4bd4fb.clothing b/LibreMetaverse/linden/static_assets/72560c27-e48b-a6a5-10e3-d21dfb4bd4fb.clothing new file mode 100644 index 0000000..6755842 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/72560c27-e48b-a6a5-10e3-d21dfb4bd4fb.clothing @@ -0,0 +1,29 @@ +LLWearable version 22 +RASL M PLAY TROUSERS + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 11 +parameters 5 +619 1 +624 1 +824 1 +825 1 +826 1 +textures 1 +17 2aa30286-f800-8444-61ff-44d42a6a0511 diff --git a/LibreMetaverse/linden/static_assets/7693f268-06c7-ea71-fa21-2b30d6533f8f.animatn b/LibreMetaverse/linden/static_assets/7693f268-06c7-ea71-fa21-2b30d6533f8f.animatn new file mode 100644 index 0000000..c08bd38 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/7693f268-06c7-ea71-fa21-2b30d6533f8f.animatn differ diff --git a/LibreMetaverse/linden/static_assets/76d30ee1-c369-12ec-8dbc-9cf2f51120ff.gesture b/LibreMetaverse/linden/static_assets/76d30ee1-c369-12ec-8dbc-9cf2f51120ff.gesture new file mode 100644 index 0000000..bab2b2b Binary files /dev/null and b/LibreMetaverse/linden/static_assets/76d30ee1-c369-12ec-8dbc-9cf2f51120ff.gesture differ diff --git a/LibreMetaverse/linden/static_assets/76f7ced2-4f91-31c8-ff7d-e76b19abfa40.gesture b/LibreMetaverse/linden/static_assets/76f7ced2-4f91-31c8-ff7d-e76b19abfa40.gesture new file mode 100644 index 0000000..4bb19bc Binary files /dev/null and b/LibreMetaverse/linden/static_assets/76f7ced2-4f91-31c8-ff7d-e76b19abfa40.gesture differ diff --git a/LibreMetaverse/linden/static_assets/7700f429-88f0-7e57-7714-33c73ad1a4eb.clothing b/LibreMetaverse/linden/static_assets/7700f429-88f0-7e57-7714-33c73ad1a4eb.clothing new file mode 100644 index 0000000..0305abb --- /dev/null +++ b/LibreMetaverse/linden/static_assets/7700f429-88f0-7e57-7714-33c73ad1a4eb.clothing @@ -0,0 +1,29 @@ +LLWearable version 22 +RASL M LOVE PANTS (BUFF) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 11 +parameters 5 +619 1 +624 1 +824 1 +825 1 +826 1 +textures 1 +17 fbd237f4-1607-b3d4-f7a4-0a16d0eedc7b diff --git a/LibreMetaverse/linden/static_assets/7705007b-f459-0b49-e8f3-dd4eff6f82c2.bodypart b/LibreMetaverse/linden/static_assets/7705007b-f459-0b49-e8f3-dd4eff6f82c2.bodypart new file mode 100644 index 0000000..2da36db --- /dev/null +++ b/LibreMetaverse/linden/static_assets/7705007b-f459-0b49-e8f3-dd4eff6f82c2.bodypart @@ -0,0 +1,52 @@ +LLWearable version 22 +RASL M SHOP SKIN (REMY) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 1 +parameters 26 +108 .02 +110 0 +111 .6 +116 0 +117 0 +150 0 +162 0 +163 0 +165 0 +700 .25 +701 0 +702 0 +703 0 +704 0 +705 .5 +706 .6 +707 0 +708 0 +709 0 +710 0 +711 .5 +712 0 +713 .7 +714 0 +715 0 +775 0 +textures 3 +0 32140dec-f6a3-1262-3c60-85bae6a814f5 +5 76d19560-0882-6f0a-5c31-f3f825c3bd2a +6 198e53e7-cac5-849b-50bc-61b8b61efab2 diff --git a/LibreMetaverse/linden/static_assets/790d7d90-eba9-d269-2d38-5cd2e36e7b93.clothing b/LibreMetaverse/linden/static_assets/790d7d90-eba9-d269-2d38-5cd2e36e7b93.clothing new file mode 100644 index 0000000..8e60fbb --- /dev/null +++ b/LibreMetaverse/linden/static_assets/790d7d90-eba9-d269-2d38-5cd2e36e7b93.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL M SHOPPER SHOES FOOTSHAPER (WEAR) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id df110c10-72e6-40d6-8916-14b4b0366b18 + owner_id df110c10-72e6-40d6-8916-14b4b0366b18 + last_owner_id df110c10-72e6-40d6-8916-14b4b0366b18 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 6 +parameters 10 +198 0 +503 0 +508 -1 +513 0 +514 0 +616 .1 +654 0 +812 1 +813 1 +817 1 +textures 1 +7 85b13d86-3e95-8d4b-a03b-c9c737631194 diff --git a/LibreMetaverse/linden/static_assets/792c8d21-c931-31be-0319-1779a0f8caf4.bodypart b/LibreMetaverse/linden/static_assets/792c8d21-c931-31be-0319-1779a0f8caf4.bodypart new file mode 100644 index 0000000..b6079bd --- /dev/null +++ b/LibreMetaverse/linden/static_assets/792c8d21-c931-31be-0319-1779a0f8caf4.bodypart @@ -0,0 +1,26 @@ +LLWearable version 22 +RASL - Eyes - Baby Blue + + permissions 0 + { + base_mask 00082000 + owner_mask 00082000 + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id ef5ac61a-72b0-48a6-843f-adb506d7ba86 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id ef5ac61a-72b0-48a6-843f-adb506d7ba86 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 3 +parameters 2 +98 1 +99 0 +textures 1 +3 5b3917e5-98d9-d830-4704-1ddba558a63f diff --git a/LibreMetaverse/linden/static_assets/7a17b059-12b2-41b1-570a-186368b6aa6f.animatn b/LibreMetaverse/linden/static_assets/7a17b059-12b2-41b1-570a-186368b6aa6f.animatn new file mode 100644 index 0000000..0846f1d Binary files /dev/null and b/LibreMetaverse/linden/static_assets/7a17b059-12b2-41b1-570a-186368b6aa6f.animatn differ diff --git a/LibreMetaverse/linden/static_assets/7a4e87fe-de39-6fcb-6223-024b00893244.animatn b/LibreMetaverse/linden/static_assets/7a4e87fe-de39-6fcb-6223-024b00893244.animatn new file mode 100644 index 0000000..609ab54 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/7a4e87fe-de39-6fcb-6223-024b00893244.animatn differ diff --git a/LibreMetaverse/linden/static_assets/7db00ccd-f380-f3ee-439d-61968ec69c8a.animatn b/LibreMetaverse/linden/static_assets/7db00ccd-f380-f3ee-439d-61968ec69c8a.animatn new file mode 100644 index 0000000..18f7414 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/7db00ccd-f380-f3ee-439d-61968ec69c8a.animatn differ diff --git a/LibreMetaverse/linden/static_assets/7fa32e57-0b88-d0f5-37b5-65ddf513e341.clothing b/LibreMetaverse/linden/static_assets/7fa32e57-0b88-d0f5-37b5-65ddf513e341.clothing new file mode 100644 index 0000000..03e044b --- /dev/null +++ b/LibreMetaverse/linden/static_assets/7fa32e57-0b88-d0f5-37b5-65ddf513e341.clothing @@ -0,0 +1,28 @@ +LLWearable version 22 +RASL SOCKS BLUE + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 7 +parameters 4 +617 1 +818 1 +819 1 +820 1 +textures 1 +12 0f2bfcbd-7853-6386-bffe-90cf9cf54a04 diff --git a/LibreMetaverse/linden/static_assets/80700431-74ec-a008-14f8-77575e73693f.animatn b/LibreMetaverse/linden/static_assets/80700431-74ec-a008-14f8-77575e73693f.animatn new file mode 100644 index 0000000..0d36c25 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/80700431-74ec-a008-14f8-77575e73693f.animatn differ diff --git a/LibreMetaverse/linden/static_assets/81287180-509d-477c-b10d-d68e403d5bcb.clothing b/LibreMetaverse/linden/static_assets/81287180-509d-477c-b10d-d68e403d5bcb.clothing new file mode 100644 index 0000000..b6f17db --- /dev/null +++ b/LibreMetaverse/linden/static_assets/81287180-509d-477c-b10d-d68e403d5bcb.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL F LOVE DRESS TOP + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 4 +parameters 10 +781 1 +800 1 +801 1 +802 1 +803 1 +804 1 +805 1 +828 0 +840 0 +868 0 +textures 1 +1 9be6ec18-3214-8b9f-b18c-3ec47b6a6e89 diff --git a/LibreMetaverse/linden/static_assets/815c3d49-d7fa-0214-3053-8eb9e63fda4c.gesture b/LibreMetaverse/linden/static_assets/815c3d49-d7fa-0214-3053-8eb9e63fda4c.gesture new file mode 100644 index 0000000..1978839 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/815c3d49-d7fa-0214-3053-8eb9e63fda4c.gesture differ diff --git a/LibreMetaverse/linden/static_assets/8175bd9f-ac1a-39e6-7cc6-93ab762f49bc.clothing b/LibreMetaverse/linden/static_assets/8175bd9f-ac1a-39e6-7cc6-93ab762f49bc.clothing new file mode 100644 index 0000000..188ae78 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/8175bd9f-ac1a-39e6-7cc6-93ab762f49bc.clothing @@ -0,0 +1,33 @@ +LLWearable version 22 +RASL M PLAY SHIRT DOWN + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 5 +parameters 9 +625 0 +638 0 +806 1 +807 1 +808 1 +814 1 +815 .99 +816 .05 +869 0 +textures 1 +2 ae40787c-0181-d962-9b90-c24b5f7900d0 diff --git a/LibreMetaverse/linden/static_assets/82e99230-c906-1403-4d9c-3889dd98daba.animatn b/LibreMetaverse/linden/static_assets/82e99230-c906-1403-4d9c-3889dd98daba.animatn new file mode 100644 index 0000000..a2a6520 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/82e99230-c906-1403-4d9c-3889dd98daba.animatn differ diff --git a/LibreMetaverse/linden/static_assets/83bf1baf-6fdc-9906-9ab7-3113a3728136.bodypart b/LibreMetaverse/linden/static_assets/83bf1baf-6fdc-9906-9ab7-3113a3728136.bodypart new file mode 100644 index 0000000..8b109b0 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/83bf1baf-6fdc-9906-9ab7-3113a3728136.bodypart @@ -0,0 +1,52 @@ +LLWearable version 22 +RASL F PLAY SKIN (Clara) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 1 +parameters 26 +108 .04 +110 0 +111 .4 +116 0 +117 0 +150 0 +162 0 +163 0 +165 0 +700 .25 +701 0 +702 0 +703 0 +704 0 +705 .5 +706 .6 +707 0 +708 0 +709 0 +710 0 +711 .5 +712 0 +713 .7 +714 0 +715 0 +775 0 +textures 3 +0 c6b218b1-4069-af37-7d2f-7a105d04c6a3 +5 c8247b60-0b8e-4ba0-fd7d-4f9c78f4bc02 +6 efd439e2-4a0e-4dc9-1182-9d3daf27696c diff --git a/LibreMetaverse/linden/static_assets/83ff59fe-2346-f236-9009-4e3608af64c1.animatn b/LibreMetaverse/linden/static_assets/83ff59fe-2346-f236-9009-4e3608af64c1.animatn new file mode 100644 index 0000000..043d449 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/83ff59fe-2346-f236-9009-4e3608af64c1.animatn differ diff --git a/LibreMetaverse/linden/static_assets/85428680-6bf9-3e64-b489-6f81087c24bd.animatn b/LibreMetaverse/linden/static_assets/85428680-6bf9-3e64-b489-6f81087c24bd.animatn new file mode 100644 index 0000000..aef2a5a Binary files /dev/null and b/LibreMetaverse/linden/static_assets/85428680-6bf9-3e64-b489-6f81087c24bd.animatn differ diff --git a/LibreMetaverse/linden/static_assets/85995026-eade-5d78-d364-94a64512cb66.animatn b/LibreMetaverse/linden/static_assets/85995026-eade-5d78-d364-94a64512cb66.animatn new file mode 100644 index 0000000..0036521 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/85995026-eade-5d78-d364-94a64512cb66.animatn differ diff --git a/LibreMetaverse/linden/static_assets/865c5fe0-aafb-671a-8ad5-778beb24b6f8.gesture b/LibreMetaverse/linden/static_assets/865c5fe0-aafb-671a-8ad5-778beb24b6f8.gesture new file mode 100644 index 0000000..07d5577 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/865c5fe0-aafb-671a-8ad5-778beb24b6f8.gesture differ diff --git a/LibreMetaverse/linden/static_assets/869ecdad-a44b-671e-3266-56aef2e3ac2e.animatn b/LibreMetaverse/linden/static_assets/869ecdad-a44b-671e-3266-56aef2e3ac2e.animatn new file mode 100644 index 0000000..e713a97 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/869ecdad-a44b-671e-3266-56aef2e3ac2e.animatn differ diff --git a/LibreMetaverse/linden/static_assets/8868cfa3-5b82-97ab-dc38-ded906f7fd90.gesture b/LibreMetaverse/linden/static_assets/8868cfa3-5b82-97ab-dc38-ded906f7fd90.gesture new file mode 100644 index 0000000..25ec1d7 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/8868cfa3-5b82-97ab-dc38-ded906f7fd90.gesture differ diff --git a/LibreMetaverse/linden/static_assets/8ac9b0b4-9409-383a-1339-5373895f5368.bodypart b/LibreMetaverse/linden/static_assets/8ac9b0b4-9409-383a-1339-5373895f5368.bodypart new file mode 100644 index 0000000..39303b4 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/8ac9b0b4-9409-383a-1339-5373895f5368.bodypart @@ -0,0 +1,105 @@ +LLWearable version 22 +RASL F SHOP SHAPE (SUZY) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 0 +parameters 82 +1 .44 +2 -.21 +4 .1 +5 .01 +6 .06 +7 .02 +8 -.44 +10 .08 +11 -.1 +12 .46 +13 .08 +14 .47 +15 -.2 +17 -.26 +18 1.14 +19 -.38 +20 -.1 +21 .07 +22 0 +23 -.42 +24 .08 +25 .33 +27 -.2 +33 .5 +34 -.02 +35 -.04 +36 -1 +37 -.56 +38 -.14 +80 0 +105 .4 +155 -.48 +157 .03 +185 -.12 +193 .63 +196 -.86 +505 .37 +506 -.12 +507 -.31 +515 -1 +517 .01 +518 .17 +629 .58 +637 .05 +646 .08 +647 -.25 +649 .3 +650 .5 +652 .4 +653 .56 +656 0 +659 .7 +662 .5 +663 0 +664 0 +665 -.28 +675 -.18 +676 -.19 +678 .5 +682 .52 +683 -.18 +684 .08 +685 0 +690 .39 +692 .1 +693 -.12 +753 .48 +756 -.3 +758 -.48 +759 .43 +760 .91 +764 .21 +765 -.3 +769 .63 +773 .38 +795 .19 +796 0 +799 .52 +841 .04 +842 -.4 +879 0 +880 -.77 +textures 0 diff --git a/LibreMetaverse/linden/static_assets/8b102617-bcba-037b-86c1-b76219f90c88.animatn b/LibreMetaverse/linden/static_assets/8b102617-bcba-037b-86c1-b76219f90c88.animatn new file mode 100644 index 0000000..acf5967 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/8b102617-bcba-037b-86c1-b76219f90c88.animatn differ diff --git a/LibreMetaverse/linden/static_assets/8b753e16-bd7d-2bb3-7765-671b7b31e77c.gesture b/LibreMetaverse/linden/static_assets/8b753e16-bd7d-2bb3-7765-671b7b31e77c.gesture new file mode 100644 index 0000000..ca1a9c1 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/8b753e16-bd7d-2bb3-7765-671b7b31e77c.gesture differ diff --git a/LibreMetaverse/linden/static_assets/8ccf1744-1509-7537-0fb5-1d33d2eefaf8.bodypart b/LibreMetaverse/linden/static_assets/8ccf1744-1509-7537-0fb5-1d33d2eefaf8.bodypart new file mode 100644 index 0000000..f33c236 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/8ccf1744-1509-7537-0fb5-1d33d2eefaf8.bodypart @@ -0,0 +1,26 @@ +LLWearable version 22 +RASL - Eyes - Med Brown + + permissions 0 + { + base_mask 0008c000 + owner_mask 0008c000 + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 0008c000 + creator_id ef5ac61a-72b0-48a6-843f-adb506d7ba86 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id ef5ac61a-72b0-48a6-843f-adb506d7ba86 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 3 +parameters 2 +98 1 +99 0 +textures 1 +3 6744cd4d-ce43-feb5-e37f-72aef2730250 diff --git a/LibreMetaverse/linden/static_assets/8dbc8a59-18ec-c9c0-8edf-ddcb8a749e5f.gesture b/LibreMetaverse/linden/static_assets/8dbc8a59-18ec-c9c0-8edf-ddcb8a749e5f.gesture new file mode 100644 index 0000000..8712d24 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/8dbc8a59-18ec-c9c0-8edf-ddcb8a749e5f.gesture differ diff --git a/LibreMetaverse/linden/static_assets/8ea9f72c-6e64-e6bf-34ed-2713f84db063.clothing b/LibreMetaverse/linden/static_assets/8ea9f72c-6e64-e6bf-34ed-2713f84db063.clothing new file mode 100644 index 0000000..dad4b77 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/8ea9f72c-6e64-e6bf-34ed-2713f84db063.clothing @@ -0,0 +1,29 @@ +LLWearable version 22 +RASL F CREATE CAPRI PANTS + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 11 +parameters 5 +619 .99 +624 1 +824 1 +825 1 +826 1 +textures 1 +17 c529d836-cd39-a25c-40fc-c097e32390ed diff --git a/LibreMetaverse/linden/static_assets/90bdcd26-2c6b-44a7-aab2-18c5a04f3fc3.gesture b/LibreMetaverse/linden/static_assets/90bdcd26-2c6b-44a7-aab2-18c5a04f3fc3.gesture new file mode 100644 index 0000000..5140f07 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/90bdcd26-2c6b-44a7-aab2-18c5a04f3fc3.gesture differ diff --git a/LibreMetaverse/linden/static_assets/90e38814-7029-18a2-70ea-346ca73569aa.bodypart b/LibreMetaverse/linden/static_assets/90e38814-7029-18a2-70ea-346ca73569aa.bodypart new file mode 100644 index 0000000..87c79dd --- /dev/null +++ b/LibreMetaverse/linden/static_assets/90e38814-7029-18a2-70ea-346ca73569aa.bodypart @@ -0,0 +1,63 @@ +LLWearable version 22 +RASL M LOVE EYEBROWSHAPER + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 2 +parameters 39 +16 1.11 +31 .28 +112 0 +113 0 +114 0 +115 0 +119 0 +130 0 +131 0 +132 0 +133 0 +134 0 +135 0 +136 0 +137 .5 +140 0 +141 0 +142 0 +143 -4 +166 0 +167 0 +168 0 +169 0 +177 0 +181 -1 +182 -1 +183 -1 +184 0 +192 0 +674 -1 +750 0 +752 .5 +754 .5 +755 0 +757 -1.18 +762 0 +763 0 +785 0 +789 0 +textures 1 +4 7ca39b4c-bd19-4699-aff7-f93fd03d3e7b diff --git a/LibreMetaverse/linden/static_assets/92624d3e-1068-f1aa-a5ec-8244585193ed.animatn b/LibreMetaverse/linden/static_assets/92624d3e-1068-f1aa-a5ec-8244585193ed.animatn new file mode 100644 index 0000000..fe6d26b Binary files /dev/null and b/LibreMetaverse/linden/static_assets/92624d3e-1068-f1aa-a5ec-8244585193ed.animatn differ diff --git a/LibreMetaverse/linden/static_assets/928cae18-e31d-76fd-9cc9-2f55160ff818.animatn b/LibreMetaverse/linden/static_assets/928cae18-e31d-76fd-9cc9-2f55160ff818.animatn new file mode 100644 index 0000000..f49ea1f Binary files /dev/null and b/LibreMetaverse/linden/static_assets/928cae18-e31d-76fd-9cc9-2f55160ff818.animatn differ diff --git a/LibreMetaverse/linden/static_assets/944890c6-1960-b1a7-f50a-c05651720d7e.bodypart b/LibreMetaverse/linden/static_assets/944890c6-1960-b1a7-f50a-c05651720d7e.bodypart new file mode 100644 index 0000000..4b50839 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/944890c6-1960-b1a7-f50a-c05651720d7e.bodypart @@ -0,0 +1,63 @@ +LLWearable version 22 +RASL F LEARN EYEBROWSHAPER + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 2 +parameters 39 +16 .41 +31 .62 +112 0 +113 0 +114 0 +115 0 +119 0 +130 0 +131 0 +132 0 +133 0 +134 0 +135 0 +136 0 +137 .5 +140 0 +141 0 +142 0 +143 -4 +166 0 +167 0 +168 0 +169 0 +177 0 +181 -1 +182 -1 +183 -1 +184 0 +192 0 +674 -1 +750 0 +752 .5 +754 .5 +755 0 +757 -.22 +762 0 +763 0 +785 0 +789 0 +textures 1 +4 7ca39b4c-bd19-4699-aff7-f93fd03d3e7b diff --git a/LibreMetaverse/linden/static_assets/94669140-c63b-8805-5561-62f5e24206ea.bodypart b/LibreMetaverse/linden/static_assets/94669140-c63b-8805-5561-62f5e24206ea.bodypart new file mode 100644 index 0000000..7bd970e --- /dev/null +++ b/LibreMetaverse/linden/static_assets/94669140-c63b-8805-5561-62f5e24206ea.bodypart @@ -0,0 +1,63 @@ +LLWearable version 22 +RASL F CREATE EYEBROWSHAPER + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 2 +parameters 39 +16 .2 +31 .2 +112 0 +113 0 +114 0 +115 0 +119 0 +130 0 +131 0 +132 0 +133 0 +134 0 +135 0 +136 0 +137 .5 +140 0 +141 0 +142 0 +143 -4 +166 0 +167 0 +168 0 +169 0 +177 0 +181 -1 +182 -1 +183 -1 +184 0 +192 0 +674 -1 +750 0 +752 .5 +754 .5 +755 0 +757 -.52 +762 0 +763 0 +785 0 +789 0 +textures 1 +4 7ca39b4c-bd19-4699-aff7-f93fd03d3e7b diff --git a/LibreMetaverse/linden/static_assets/951469f4-c7b2-c818-9dee-ad7eea8c30b7.animatn b/LibreMetaverse/linden/static_assets/951469f4-c7b2-c818-9dee-ad7eea8c30b7.animatn new file mode 100644 index 0000000..44226ce Binary files /dev/null and b/LibreMetaverse/linden/static_assets/951469f4-c7b2-c818-9dee-ad7eea8c30b7.animatn differ diff --git a/LibreMetaverse/linden/static_assets/9583adac-bc9b-a021-ab8f-26018db46ab5.gesture b/LibreMetaverse/linden/static_assets/9583adac-bc9b-a021-ab8f-26018db46ab5.gesture new file mode 100644 index 0000000..3214409 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/9583adac-bc9b-a021-ab8f-26018db46ab5.gesture differ diff --git a/LibreMetaverse/linden/static_assets/97c5742d-1d74-9408-2bae-9738a9e9d084.gesture b/LibreMetaverse/linden/static_assets/97c5742d-1d74-9408-2bae-9738a9e9d084.gesture new file mode 100644 index 0000000..c63df50 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/97c5742d-1d74-9408-2bae-9738a9e9d084.gesture differ diff --git a/LibreMetaverse/linden/static_assets/9b0c1c4e-8ac7-7969-1494-28c874c4f668.animatn b/LibreMetaverse/linden/static_assets/9b0c1c4e-8ac7-7969-1494-28c874c4f668.animatn new file mode 100644 index 0000000..61af249 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/9b0c1c4e-8ac7-7969-1494-28c874c4f668.animatn differ diff --git a/LibreMetaverse/linden/static_assets/9b29cd61-c45b-5689-ded2-91756b8d76a9.animatn b/LibreMetaverse/linden/static_assets/9b29cd61-c45b-5689-ded2-91756b8d76a9.animatn new file mode 100644 index 0000000..26d3760 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/9b29cd61-c45b-5689-ded2-91756b8d76a9.animatn differ diff --git a/LibreMetaverse/linden/static_assets/9b37423a-caf6-3bb6-f4e8-60a11ccee1af.bodypart b/LibreMetaverse/linden/static_assets/9b37423a-caf6-3bb6-f4e8-60a11ccee1af.bodypart new file mode 100644 index 0000000..b69a46a --- /dev/null +++ b/LibreMetaverse/linden/static_assets/9b37423a-caf6-3bb6-f4e8-60a11ccee1af.bodypart @@ -0,0 +1,105 @@ +LLWearable version 22 +RASL M PLAY SHAPE (HEATH) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 0 +parameters 82 +1 -.16 +2 -.14 +4 .35 +5 .1 +6 -.04 +7 -.2 +8 -.28 +10 .52 +11 0 +12 .46 +13 .34 +14 .55 +15 -.24 +17 -.2 +18 .9 +19 -.25 +20 -.26 +21 .11 +22 .57 +23 -.5 +24 -.1 +25 .07 +27 -.27 +33 1.23 +34 -.26 +35 -.07 +36 -.52 +37 -.32 +38 -.14 +80 1 +105 .5 +155 -.13 +157 .02 +185 -.66 +193 .46 +196 -.77 +505 .5 +506 -.2 +507 0 +515 -1 +517 -.25 +518 -.08 +629 .37 +637 .05 +646 .17 +647 .07 +649 .5 +650 -.27 +652 .48 +653 .29 +656 0 +659 .55 +662 .5 +663 0 +664 0 +665 .08 +675 -.12 +676 -.4 +678 .43 +682 .57 +683 -.11 +684 0 +685 0 +690 .46 +692 .2 +693 .16 +753 1.08 +756 -.68 +758 -.42 +759 .32 +760 .78 +764 .45 +765 -.3 +769 .47 +773 .49 +795 .23 +796 .42 +799 .46 +841 .02 +842 .12 +879 .22 +880 -.75 +textures 0 diff --git a/LibreMetaverse/linden/static_assets/9ba1c942-08be-e43a-fb29-16ad440efc50.animatn b/LibreMetaverse/linden/static_assets/9ba1c942-08be-e43a-fb29-16ad440efc50.animatn new file mode 100644 index 0000000..752a2af Binary files /dev/null and b/LibreMetaverse/linden/static_assets/9ba1c942-08be-e43a-fb29-16ad440efc50.animatn differ diff --git a/LibreMetaverse/linden/static_assets/9cde58a2-05ba-5c21-5c90-b76079185990.clothing b/LibreMetaverse/linden/static_assets/9cde58a2-05ba-5c21-5c90-b76079185990.clothing new file mode 100644 index 0000000..70fd59b --- /dev/null +++ b/LibreMetaverse/linden/static_assets/9cde58a2-05ba-5c21-5c90-b76079185990.clothing @@ -0,0 +1,33 @@ +LLWearable version 22 +Male Designer Tank Down + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 0008e000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 5 +parameters 9 +625 0 +638 0 +806 1 +807 1 +808 1 +814 1 +815 .99 +816 .05 +869 0 +textures 1 +2 6b52d34e-bade-dcc4-5442-c186b5ecc5f1 diff --git a/LibreMetaverse/linden/static_assets/9e439264-0a7b-9190-d128-995092499c28.gesture b/LibreMetaverse/linden/static_assets/9e439264-0a7b-9190-d128-995092499c28.gesture new file mode 100644 index 0000000..f9db489 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/9e439264-0a7b-9190-d128-995092499c28.gesture differ diff --git a/LibreMetaverse/linden/static_assets/9f496bd2-589a-709f-16cc-69bf7df1d36c.animatn b/LibreMetaverse/linden/static_assets/9f496bd2-589a-709f-16cc-69bf7df1d36c.animatn new file mode 100644 index 0000000..9934140 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/9f496bd2-589a-709f-16cc-69bf7df1d36c.animatn differ diff --git a/LibreMetaverse/linden/static_assets/a00917ca-047d-a3ea-d246-63265f904a6e.bodypart b/LibreMetaverse/linden/static_assets/a00917ca-047d-a3ea-d246-63265f904a6e.bodypart new file mode 100644 index 0000000..32b4842 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/a00917ca-047d-a3ea-d246-63265f904a6e.bodypart @@ -0,0 +1,105 @@ +LLWearable version 22 +RASL M LEARN SHAPE (BILLY) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 0 +parameters 82 +1 .55 +2 .02 +4 -.05 +5 -.01 +6 .09 +7 -.21 +8 .04 +10 .48 +11 .3 +12 -.08 +13 .06 +14 .19 +15 -.14 +17 -.09 +18 .5 +19 -.65 +20 -.1 +21 .08 +22 .57 +23 -.28 +24 -.28 +25 .33 +27 -.22 +33 1.1 +34 -.08 +35 0 +36 -.58 +37 0 +38 .08 +80 1 +105 .5 +155 -.28 +157 .05 +185 -.5 +193 .45 +196 -1.07 +505 .54 +506 0 +507 0 +515 -1 +517 -.2 +518 -.08 +629 .37 +637 .14 +646 .08 +647 -.22 +649 .5 +650 -.27 +652 .49 +653 .11 +656 0 +659 .54 +662 .5 +663 0 +664 0 +665 0 +675 -.1 +676 -.31 +678 .48 +682 .63 +683 -.08 +684 0 +685 .22 +690 .48 +692 0 +693 .12 +753 .76 +756 -.68 +758 -.6 +759 .5 +760 .82 +764 .78 +765 .54 +769 .5 +773 .45 +795 .26 +796 0 +799 .5 +841 -.02 +842 0 +879 .08 +880 -.7 +textures 0 diff --git a/LibreMetaverse/linden/static_assets/a166cdc3-ea15-0c01-ca5b-d3fed6e3ca75.gesture b/LibreMetaverse/linden/static_assets/a166cdc3-ea15-0c01-ca5b-d3fed6e3ca75.gesture new file mode 100644 index 0000000..30dbec5 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/a166cdc3-ea15-0c01-ca5b-d3fed6e3ca75.gesture differ diff --git a/LibreMetaverse/linden/static_assets/a41965be-10f2-1625-df3b-2fe35716998b.gesture b/LibreMetaverse/linden/static_assets/a41965be-10f2-1625-df3b-2fe35716998b.gesture new file mode 100644 index 0000000..c57bf21 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/a41965be-10f2-1625-df3b-2fe35716998b.gesture differ diff --git a/LibreMetaverse/linden/static_assets/a53d49ad-d705-dd1b-318e-4d1cf3c04a11.gesture b/LibreMetaverse/linden/static_assets/a53d49ad-d705-dd1b-318e-4d1cf3c04a11.gesture new file mode 100644 index 0000000..f23a6a4 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/a53d49ad-d705-dd1b-318e-4d1cf3c04a11.gesture differ diff --git a/LibreMetaverse/linden/static_assets/a54d8ee2-28bb-80a9-7f0c-7afbbe24a5d6.animatn b/LibreMetaverse/linden/static_assets/a54d8ee2-28bb-80a9-7f0c-7afbbe24a5d6.animatn new file mode 100644 index 0000000..2aa7fa8 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/a54d8ee2-28bb-80a9-7f0c-7afbbe24a5d6.animatn differ diff --git a/LibreMetaverse/linden/static_assets/a6a09cb1-0845-5ec0-051e-16bb79b30ddf.gesture b/LibreMetaverse/linden/static_assets/a6a09cb1-0845-5ec0-051e-16bb79b30ddf.gesture new file mode 100644 index 0000000..611df45 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/a6a09cb1-0845-5ec0-051e-16bb79b30ddf.gesture differ diff --git a/LibreMetaverse/linden/static_assets/a8dee56f-2eae-9e7a-05a2-6fb92b97e21e.animatn b/LibreMetaverse/linden/static_assets/a8dee56f-2eae-9e7a-05a2-6fb92b97e21e.animatn new file mode 100644 index 0000000..fd70f4b Binary files /dev/null and b/LibreMetaverse/linden/static_assets/a8dee56f-2eae-9e7a-05a2-6fb92b97e21e.animatn differ diff --git a/LibreMetaverse/linden/static_assets/a8dee7f6-a796-12a0-91bd-abf2fff300cc.clothing b/LibreMetaverse/linden/static_assets/a8dee7f6-a796-12a0-91bd-abf2fff300cc.clothing new file mode 100644 index 0000000..8db5c61 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/a8dee7f6-a796-12a0-91bd-abf2fff300cc.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL F LEARN SWEATER (RED) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 8 +parameters 9 +606 1 +607 1 +608 1 +609 1 +780 1 +834 1 +835 1 +836 1 +877 0 +textures 2 +13 5c657bbe-1a1d-30e4-e5b3-27b1a4656ea8 +14 c78e709f-a23e-928a-b1cf-3ab8446c1e2b diff --git a/LibreMetaverse/linden/static_assets/a94ef3a0-7119-67b6-67e0-d93d5b08a544.gesture b/LibreMetaverse/linden/static_assets/a94ef3a0-7119-67b6-67e0-d93d5b08a544.gesture new file mode 100644 index 0000000..66e3de5 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/a94ef3a0-7119-67b6-67e0-d93d5b08a544.gesture differ diff --git a/LibreMetaverse/linden/static_assets/aa134404-7dac-7aca-2cba-435f9db875ca.animatn b/LibreMetaverse/linden/static_assets/aa134404-7dac-7aca-2cba-435f9db875ca.animatn new file mode 100644 index 0000000..f67371b Binary files /dev/null and b/LibreMetaverse/linden/static_assets/aa134404-7dac-7aca-2cba-435f9db875ca.animatn differ diff --git a/LibreMetaverse/linden/static_assets/aa9d6d53-2647-f731-97eb-e07a47febb57.bodypart b/LibreMetaverse/linden/static_assets/aa9d6d53-2647-f731-97eb-e07a47febb57.bodypart new file mode 100644 index 0000000..a2ba070 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/aa9d6d53-2647-f731-97eb-e07a47febb57.bodypart @@ -0,0 +1,63 @@ +LLWearable version 22 +RASL M CREATE EYEBROWSHAPER + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 2 +parameters 39 +16 .97 +31 .28 +112 0 +113 0 +114 0 +115 0 +119 0 +130 0 +131 0 +132 0 +133 0 +134 0 +135 0 +136 0 +137 .5 +140 0 +141 0 +142 0 +143 -4 +166 0 +167 0 +168 0 +169 0 +177 0 +181 -1 +182 -1 +183 -1 +184 0 +192 0 +674 -1 +750 0 +752 .5 +754 .5 +755 0 +757 -.52 +762 0 +763 0 +785 0 +789 0 +textures 1 +4 7ca39b4c-bd19-4699-aff7-f93fd03d3e7b diff --git a/LibreMetaverse/linden/static_assets/abe169ff-ee4d-0e22-aa03-19b8116fdd7a.clothing b/LibreMetaverse/linden/static_assets/abe169ff-ee4d-0e22-aa03-19b8116fdd7a.clothing new file mode 100644 index 0000000..a45bd83 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/abe169ff-ee4d-0e22-aa03-19b8116fdd7a.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL F EXPLORE TANK UP + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 4 +parameters 10 +781 1 +800 1 +801 1 +802 1 +803 1 +804 1 +805 1 +828 0 +840 0 +868 0 +textures 1 +1 8059c9dd-b620-71bc-262b-1f2df45c7ad0 diff --git a/LibreMetaverse/linden/static_assets/aca78492-0487-03ec-4eb5-5c8e76c837e1.gesture b/LibreMetaverse/linden/static_assets/aca78492-0487-03ec-4eb5-5c8e76c837e1.gesture new file mode 100644 index 0000000..c350917 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/aca78492-0487-03ec-4eb5-5c8e76c837e1.gesture differ diff --git a/LibreMetaverse/linden/static_assets/ad22cda1-00c1-21cc-2f35-9ea5b8636f9e.gesture b/LibreMetaverse/linden/static_assets/ad22cda1-00c1-21cc-2f35-9ea5b8636f9e.gesture new file mode 100644 index 0000000..be5fc62 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/ad22cda1-00c1-21cc-2f35-9ea5b8636f9e.gesture differ diff --git a/LibreMetaverse/linden/static_assets/ad4e858f-08a7-e67a-4d55-b0fc18b2518b.clothing b/LibreMetaverse/linden/static_assets/ad4e858f-08a7-e67a-4d55-b0fc18b2518b.clothing new file mode 100644 index 0000000..0771060 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/ad4e858f-08a7-e67a-4d55-b0fc18b2518b.clothing @@ -0,0 +1,29 @@ +LLWearable version 22 +Male Designer Pants (Green) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 0008e000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 11 +parameters 5 +619 1 +624 1 +824 1 +825 1 +826 1 +textures 1 +17 f0a74d98-6efb-c7d6-707c-bceb6140de12 diff --git a/LibreMetaverse/linden/static_assets/ad88e068-dc0a-6ef2-5a97-929ad01d883b.gesture b/LibreMetaverse/linden/static_assets/ad88e068-dc0a-6ef2-5a97-929ad01d883b.gesture new file mode 100644 index 0000000..0a7bfab Binary files /dev/null and b/LibreMetaverse/linden/static_assets/ad88e068-dc0a-6ef2-5a97-929ad01d883b.gesture differ diff --git a/LibreMetaverse/linden/static_assets/aec4610c-757f-bc4e-c092-c6e9caf18daf.animatn b/LibreMetaverse/linden/static_assets/aec4610c-757f-bc4e-c092-c6e9caf18daf.animatn new file mode 100644 index 0000000..c7c69ef Binary files /dev/null and b/LibreMetaverse/linden/static_assets/aec4610c-757f-bc4e-c092-c6e9caf18daf.animatn differ diff --git a/LibreMetaverse/linden/static_assets/af2b8320-e579-2c41-b717-969759aeb3ca.gesture b/LibreMetaverse/linden/static_assets/af2b8320-e579-2c41-b717-969759aeb3ca.gesture new file mode 100644 index 0000000..17b233a Binary files /dev/null and b/LibreMetaverse/linden/static_assets/af2b8320-e579-2c41-b717-969759aeb3ca.gesture differ diff --git a/LibreMetaverse/linden/static_assets/afb80807-4214-7f3c-55b8-00858f56d37a.gesture b/LibreMetaverse/linden/static_assets/afb80807-4214-7f3c-55b8-00858f56d37a.gesture new file mode 100644 index 0000000..921e037 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/afb80807-4214-7f3c-55b8-00858f56d37a.gesture differ diff --git a/LibreMetaverse/linden/static_assets/afd64d9d-572d-b4f1-69bc-a79f70768177.gesture b/LibreMetaverse/linden/static_assets/afd64d9d-572d-b4f1-69bc-a79f70768177.gesture new file mode 100644 index 0000000..2658e86 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/afd64d9d-572d-b4f1-69bc-a79f70768177.gesture differ diff --git a/LibreMetaverse/linden/static_assets/b0dc417c-1f11-af36-2e80-7e7489fa7cdc.animatn b/LibreMetaverse/linden/static_assets/b0dc417c-1f11-af36-2e80-7e7489fa7cdc.animatn new file mode 100644 index 0000000..6f797ba Binary files /dev/null and b/LibreMetaverse/linden/static_assets/b0dc417c-1f11-af36-2e80-7e7489fa7cdc.animatn differ diff --git a/LibreMetaverse/linden/static_assets/b1709c8d-ecd3-54a1-4f28-d55ac0840782.animatn b/LibreMetaverse/linden/static_assets/b1709c8d-ecd3-54a1-4f28-d55ac0840782.animatn new file mode 100644 index 0000000..de12bcd Binary files /dev/null and b/LibreMetaverse/linden/static_assets/b1709c8d-ecd3-54a1-4f28-d55ac0840782.animatn differ diff --git a/LibreMetaverse/linden/static_assets/b1dc34e2-c8fb-3885-3a7e-10be1d5589dd.clothing b/LibreMetaverse/linden/static_assets/b1dc34e2-c8fb-3885-3a7e-10be1d5589dd.clothing new file mode 100644 index 0000000..0cfb75c --- /dev/null +++ b/LibreMetaverse/linden/static_assets/b1dc34e2-c8fb-3885-3a7e-10be1d5589dd.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +Male Designer Tank Up + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 0008e000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 4 +parameters 10 +781 1 +800 1 +801 1 +802 1 +803 1 +804 1 +805 1 +828 0 +840 0 +868 0 +textures 1 +1 428dd646-734b-f43f-3550-f248bd9dfa10 diff --git a/LibreMetaverse/linden/static_assets/b1ed7982-c68e-a982-7561-52a88a5298c0.animatn b/LibreMetaverse/linden/static_assets/b1ed7982-c68e-a982-7561-52a88a5298c0.animatn new file mode 100644 index 0000000..4852846 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/b1ed7982-c68e-a982-7561-52a88a5298c0.animatn differ diff --git a/LibreMetaverse/linden/static_assets/b312b10e-65ab-a0a4-8b3c-1326ea8e3ed9.animatn b/LibreMetaverse/linden/static_assets/b312b10e-65ab-a0a4-8b3c-1326ea8e3ed9.animatn new file mode 100644 index 0000000..2f2ea3b Binary files /dev/null and b/LibreMetaverse/linden/static_assets/b312b10e-65ab-a0a4-8b3c-1326ea8e3ed9.animatn differ diff --git a/LibreMetaverse/linden/static_assets/b57c996d-cb06-43c8-749d-e9ce361f172e.gesture b/LibreMetaverse/linden/static_assets/b57c996d-cb06-43c8-749d-e9ce361f172e.gesture new file mode 100644 index 0000000..90ad3c4 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/b57c996d-cb06-43c8-749d-e9ce361f172e.gesture differ diff --git a/LibreMetaverse/linden/static_assets/b5b4a67d-0aee-30d2-72cd-77b333e932ef.animatn b/LibreMetaverse/linden/static_assets/b5b4a67d-0aee-30d2-72cd-77b333e932ef.animatn new file mode 100644 index 0000000..a826b52 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/b5b4a67d-0aee-30d2-72cd-77b333e932ef.animatn differ diff --git a/LibreMetaverse/linden/static_assets/b5ea617e-47cf-612b-2d99-8c6f6dcac218.gesture b/LibreMetaverse/linden/static_assets/b5ea617e-47cf-612b-2d99-8c6f6dcac218.gesture new file mode 100644 index 0000000..b31632c Binary files /dev/null and b/LibreMetaverse/linden/static_assets/b5ea617e-47cf-612b-2d99-8c6f6dcac218.gesture differ diff --git a/LibreMetaverse/linden/static_assets/b606cdd6-4c22-6cc0-4614-560e6b9beeba.clothing b/LibreMetaverse/linden/static_assets/b606cdd6-4c22-6cc0-4614-560e6b9beeba.clothing new file mode 100644 index 0000000..99d59fb --- /dev/null +++ b/LibreMetaverse/linden/static_assets/b606cdd6-4c22-6cc0-4614-560e6b9beeba.clothing @@ -0,0 +1,33 @@ +LLWearable version 22 +RASL M LEARN JEANS + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 5 +parameters 9 +625 0 +638 0 +806 1 +807 1 +808 1 +814 1 +815 .99 +816 .05 +869 0 +textures 1 +2 dac82639-53da-a87b-0f30-9187b0aef7cc diff --git a/LibreMetaverse/linden/static_assets/b68a3d7c-de9e-fc87-eec8-543d787e5b0d.animatn b/LibreMetaverse/linden/static_assets/b68a3d7c-de9e-fc87-eec8-543d787e5b0d.animatn new file mode 100644 index 0000000..891f633 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/b68a3d7c-de9e-fc87-eec8-543d787e5b0d.animatn differ diff --git a/LibreMetaverse/linden/static_assets/b6e66a0e-f8db-0d4b-9259-7e9b20562b73.bodypart b/LibreMetaverse/linden/static_assets/b6e66a0e-f8db-0d4b-9259-7e9b20562b73.bodypart new file mode 100644 index 0000000..602648d --- /dev/null +++ b/LibreMetaverse/linden/static_assets/b6e66a0e-f8db-0d4b-9259-7e9b20562b73.bodypart @@ -0,0 +1,26 @@ +LLWearable version 22 +RASL - Eyes - Hazel Brown + + permissions 0 + { + base_mask 00082000 + owner_mask 00082000 + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id ef5ac61a-72b0-48a6-843f-adb506d7ba86 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id ef5ac61a-72b0-48a6-843f-adb506d7ba86 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 3 +parameters 2 +98 1 +99 0 +textures 1 +3 3818dcc3-95c3-f20f-a6d6-626f39a1cef0 diff --git a/LibreMetaverse/linden/static_assets/b6f560d1-e2ad-24df-344c-2943c47a6775.gesture b/LibreMetaverse/linden/static_assets/b6f560d1-e2ad-24df-344c-2943c47a6775.gesture new file mode 100644 index 0000000..5157c2b Binary files /dev/null and b/LibreMetaverse/linden/static_assets/b6f560d1-e2ad-24df-344c-2943c47a6775.gesture differ diff --git a/LibreMetaverse/linden/static_assets/b8c8b2a3-9008-1771-3bfc-90924955ab2d.animatn b/LibreMetaverse/linden/static_assets/b8c8b2a3-9008-1771-3bfc-90924955ab2d.animatn new file mode 100644 index 0000000..a1f6676 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/b8c8b2a3-9008-1771-3bfc-90924955ab2d.animatn differ diff --git a/LibreMetaverse/linden/static_assets/b8de1c20-7eba-2101-f2e3-9ed132838dcc.bodypart b/LibreMetaverse/linden/static_assets/b8de1c20-7eba-2101-f2e3-9ed132838dcc.bodypart new file mode 100644 index 0000000..6e79fc0 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/b8de1c20-7eba-2101-f2e3-9ed132838dcc.bodypart @@ -0,0 +1,63 @@ +LLWearable version 22 +RASL F SHOP EYEBROWSHAPER + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 2 +parameters 39 +16 1.22 +31 .22 +112 0 +113 0 +114 0 +115 0 +119 0 +130 0 +131 0 +132 0 +133 0 +134 0 +135 0 +136 0 +137 .5 +140 0 +141 0 +142 0 +143 -4 +166 0 +167 0 +168 0 +169 0 +177 0 +181 -1 +182 -1 +183 -1 +184 0 +192 0 +674 -1 +750 0 +752 .5 +754 .5 +755 0 +757 -.1 +762 0 +763 0 +785 0 +789 0 +textures 1 +4 7ca39b4c-bd19-4699-aff7-f93fd03d3e7b diff --git a/LibreMetaverse/linden/static_assets/b906c4ba-703b-1940-32a3-0c7f7d791510.animatn b/LibreMetaverse/linden/static_assets/b906c4ba-703b-1940-32a3-0c7f7d791510.animatn new file mode 100644 index 0000000..403a9e9 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/b906c4ba-703b-1940-32a3-0c7f7d791510.animatn differ diff --git a/LibreMetaverse/linden/static_assets/ba38eeb2-d35f-0a07-0c04-0eb42fcc6010.gesture b/LibreMetaverse/linden/static_assets/ba38eeb2-d35f-0a07-0c04-0eb42fcc6010.gesture new file mode 100644 index 0000000..243be64 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/ba38eeb2-d35f-0a07-0c04-0eb42fcc6010.gesture differ diff --git a/LibreMetaverse/linden/static_assets/bacd48be-6733-7842-dd1f-8802e920f3ba.bodypart b/LibreMetaverse/linden/static_assets/bacd48be-6733-7842-dd1f-8802e920f3ba.bodypart new file mode 100644 index 0000000..7c01727 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/bacd48be-6733-7842-dd1f-8802e920f3ba.bodypart @@ -0,0 +1,26 @@ +LLWearable version 22 +RASL - Eyes - Spring Green + + permissions 0 + { + base_mask 00082000 + owner_mask 00082000 + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id ef5ac61a-72b0-48a6-843f-adb506d7ba86 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id ef5ac61a-72b0-48a6-843f-adb506d7ba86 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 3 +parameters 2 +98 1 +99 0 +textures 1 +3 865e5c74-5e50-1036-58d2-1af9e2a50388 diff --git a/LibreMetaverse/linden/static_assets/bc2ff144-9a36-fdd0-316d-d86f5c9a43ac.gesture b/LibreMetaverse/linden/static_assets/bc2ff144-9a36-fdd0-316d-d86f5c9a43ac.gesture new file mode 100644 index 0000000..4d547e3 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/bc2ff144-9a36-fdd0-316d-d86f5c9a43ac.gesture differ diff --git a/LibreMetaverse/linden/static_assets/bd07ffa9-426c-69da-d27a-e54e4ebbc73c.bodypart b/LibreMetaverse/linden/static_assets/bd07ffa9-426c-69da-d27a-e54e4ebbc73c.bodypart new file mode 100644 index 0000000..cc255af --- /dev/null +++ b/LibreMetaverse/linden/static_assets/bd07ffa9-426c-69da-d27a-e54e4ebbc73c.bodypart @@ -0,0 +1,52 @@ +LLWearable version 22 +RASL - Skin - Anna + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 1 +parameters 26 +108 0 +110 0 +111 .5 +116 0 +117 0 +150 0 +162 0 +163 0 +165 0 +700 .25 +701 0 +702 0 +703 0 +704 0 +705 .5 +706 .6 +707 0 +708 0 +709 0 +710 0 +711 .5 +712 0 +713 .7 +714 0 +715 0 +775 0 +textures 3 +0 173d7efa-899c-9a0d-64e4-3477fd4320e7 +5 37b87678-b628-7e53-0643-c2e1f763b578 +6 5f270355-3528-3c42-1e3c-d6ccb28646c5 diff --git a/LibreMetaverse/linden/static_assets/be969774-2a2b-0534-daee-f69357ff4adf.clothing b/LibreMetaverse/linden/static_assets/be969774-2a2b-0534-daee-f69357ff4adf.clothing new file mode 100644 index 0000000..07ce5cf --- /dev/null +++ b/LibreMetaverse/linden/static_assets/be969774-2a2b-0534-daee-f69357ff4adf.clothing @@ -0,0 +1,28 @@ +LLWearable version 22 +RASL SOCKS BLACK + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 7 +parameters 4 +617 1 +818 1 +819 1 +820 1 +textures 1 +12 0f0046b0-1c69-5192-1fca-37d0e6667484 diff --git a/LibreMetaverse/linden/static_assets/c0c4030f-c02b-49de-24ba-2331f43fe41c.animatn b/LibreMetaverse/linden/static_assets/c0c4030f-c02b-49de-24ba-2331f43fe41c.animatn new file mode 100644 index 0000000..831d273 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/c0c4030f-c02b-49de-24ba-2331f43fe41c.animatn differ diff --git a/LibreMetaverse/linden/static_assets/c1a68df8-3a01-4f17-0bab-10eb7df9c22a.clothing b/LibreMetaverse/linden/static_assets/c1a68df8-3a01-4f17-0bab-10eb7df9c22a.clothing new file mode 100644 index 0000000..bf27527 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/c1a68df8-3a01-4f17-0bab-10eb7df9c22a.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL-FSHOE1-FOOTSHAPER + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id df110c10-72e6-40d6-8916-14b4b0366b18 + owner_id df110c10-72e6-40d6-8916-14b4b0366b18 + last_owner_id df110c10-72e6-40d6-8916-14b4b0366b18 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 6 +parameters 10 +198 .19 +503 0 +508 0 +513 .4 +514 .5 +616 .1 +654 .78 +812 1 +813 1 +817 1 +textures 1 +7 85b13d86-3e95-8d4b-a03b-c9c737631194 diff --git a/LibreMetaverse/linden/static_assets/c1bc7f36-3ba0-d844-f93c-93be945d644f.animatn b/LibreMetaverse/linden/static_assets/c1bc7f36-3ba0-d844-f93c-93be945d644f.animatn new file mode 100644 index 0000000..04c4a28 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/c1bc7f36-3ba0-d844-f93c-93be945d644f.animatn differ diff --git a/LibreMetaverse/linden/static_assets/c272cb94-0081-49bb-d45e-aeda288b3c06.clothing b/LibreMetaverse/linden/static_assets/c272cb94-0081-49bb-d45e-aeda288b3c06.clothing new file mode 100644 index 0000000..4e32db7 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/c272cb94-0081-49bb-d45e-aeda288b3c06.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL M EXPLORE UNDER JACKET LEATHER + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 8 +parameters 9 +606 .66 +607 1 +608 1 +609 1 +780 1 +834 1 +835 1 +836 1 +877 0 +textures 2 +13 f0f6812f-33c5-21ec-87da-f92e1aa02b09 +14 85b13d86-3e95-8d4b-a03b-c9c737631194 diff --git a/LibreMetaverse/linden/static_assets/c437fefd-6025-fd89-e65c-aec2732f3007.clothing b/LibreMetaverse/linden/static_assets/c437fefd-6025-fd89-e65c-aec2732f3007.clothing new file mode 100644 index 0000000..ba72109 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/c437fefd-6025-fd89-e65c-aec2732f3007.clothing @@ -0,0 +1,29 @@ +LLWearable version 22 +RASL M SHOP JEANS + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 11 +parameters 5 +619 1 +624 1 +824 1 +825 1 +826 1 +textures 1 +17 9a1b1afd-b282-e667-5d87-8f90cfaf566b diff --git a/LibreMetaverse/linden/static_assets/c4ca6188-9127-4f31-0158-23c4e2f93304.animatn b/LibreMetaverse/linden/static_assets/c4ca6188-9127-4f31-0158-23c4e2f93304.animatn new file mode 100644 index 0000000..f49d119 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/c4ca6188-9127-4f31-0158-23c4e2f93304.animatn differ diff --git a/LibreMetaverse/linden/static_assets/c4d1b050-1784-feb4-474f-ec3b1f1a29cb.clothing b/LibreMetaverse/linden/static_assets/c4d1b050-1784-feb4-474f-ec3b1f1a29cb.clothing new file mode 100644 index 0000000..160e4e2 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/c4d1b050-1784-feb4-474f-ec3b1f1a29cb.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL M PLAY SHIRT UP + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 4 +parameters 10 +781 1 +800 1 +801 1 +802 1 +803 1 +804 1 +805 1 +828 0 +840 0 +868 0 +textures 1 +1 8759051a-93db-7a9f-2f98-fe4a932a27fb diff --git a/LibreMetaverse/linden/static_assets/c521ad1f-06f0-8711-f313-5737a38f0d78.clothing b/LibreMetaverse/linden/static_assets/c521ad1f-06f0-8711-f313-5737a38f0d78.clothing new file mode 100644 index 0000000..1c1e623 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/c521ad1f-06f0-8711-f313-5737a38f0d78.clothing @@ -0,0 +1,29 @@ +LLWearable version 22 +RASL F PLAY TROUSERS + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 11 +parameters 5 +619 1 +624 1 +824 1 +825 1 +826 1 +textures 1 +17 18ffd31d-7386-8959-a761-b90242957e0c diff --git a/LibreMetaverse/linden/static_assets/c541c47f-e0c0-058b-ad1a-d6ae3a4584d9.animatn b/LibreMetaverse/linden/static_assets/c541c47f-e0c0-058b-ad1a-d6ae3a4584d9.animatn new file mode 100644 index 0000000..b0ff77b Binary files /dev/null and b/LibreMetaverse/linden/static_assets/c541c47f-e0c0-058b-ad1a-d6ae3a4584d9.animatn differ diff --git a/LibreMetaverse/linden/static_assets/c5d0cab3-4a69-2f35-71ee-6dba0ce0c85c.bodypart b/LibreMetaverse/linden/static_assets/c5d0cab3-4a69-2f35-71ee-6dba0ce0c85c.bodypart new file mode 100644 index 0000000..1bda2ff --- /dev/null +++ b/LibreMetaverse/linden/static_assets/c5d0cab3-4a69-2f35-71ee-6dba0ce0c85c.bodypart @@ -0,0 +1,105 @@ +LLWearable version 22 +RASL F LOVE SHAPE (GENA) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 0 +parameters 82 +1 -.07 +2 -.4 +4 -.13 +5 .03 +6 -.05 +7 .02 +8 -.42 +10 .25 +11 .24 +12 -.26 +13 .15 +14 .55 +15 -.28 +17 .32 +18 .42 +19 -.5 +20 .02 +21 .13 +22 0 +23 -.46 +24 -.31 +25 .1 +27 -.05 +33 .5 +34 -.04 +35 -.1 +36 -1 +37 -.74 +38 -.28 +80 0 +105 .51 +155 -.39 +157 0 +185 -.66 +193 .5 +196 -1.04 +505 .39 +506 -.68 +507 -.45 +515 -1 +517 .07 +518 .24 +629 .5 +637 .06 +646 -.01 +647 -.14 +649 .33 +650 -.2 +652 .39 +653 .56 +656 0 +659 .53 +662 .5 +663 0 +664 0 +665 .16 +675 -.17 +676 -.13 +678 .5 +682 .51 +683 -.18 +684 -.03 +685 0 +690 .39 +692 .2 +693 .24 +753 .55 +756 -.4 +758 .09 +759 .1 +760 .69 +764 .61 +765 -.08 +769 .45 +773 .53 +795 .24 +796 0 +799 .53 +841 -.02 +842 -.08 +879 0 +880 -.62 +textures 0 diff --git a/LibreMetaverse/linden/static_assets/c63ac707-6325-14c8-d681-54b81d0dff77.gesture b/LibreMetaverse/linden/static_assets/c63ac707-6325-14c8-d681-54b81d0dff77.gesture new file mode 100644 index 0000000..01c55a2 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/c63ac707-6325-14c8-d681-54b81d0dff77.gesture differ diff --git a/LibreMetaverse/linden/static_assets/c8d70bed-535b-3d97-5d17-6136a209fbe6.bodypart b/LibreMetaverse/linden/static_assets/c8d70bed-535b-3d97-5d17-6136a209fbe6.bodypart new file mode 100644 index 0000000..0579481 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/c8d70bed-535b-3d97-5d17-6136a209fbe6.bodypart @@ -0,0 +1,26 @@ +LLWearable version 22 +New Eyes + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id df110c10-72e6-40d6-8916-14b4b0366b18 + owner_id df110c10-72e6-40d6-8916-14b4b0366b18 + last_owner_id df110c10-72e6-40d6-8916-14b4b0366b18 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 3 +parameters 2 +98 1 +99 0 +textures 1 +3 bf7932bc-28cb-4fbf-e810-9145c37ea177 diff --git a/LibreMetaverse/linden/static_assets/c8e42d32-7310-6906-c903-cab5d4a34656.animatn b/LibreMetaverse/linden/static_assets/c8e42d32-7310-6906-c903-cab5d4a34656.animatn new file mode 100644 index 0000000..8e7e5be Binary files /dev/null and b/LibreMetaverse/linden/static_assets/c8e42d32-7310-6906-c903-cab5d4a34656.animatn differ diff --git a/LibreMetaverse/linden/static_assets/ca5b3f14-3194-7a2b-c894-aa699b718d1f.animatn b/LibreMetaverse/linden/static_assets/ca5b3f14-3194-7a2b-c894-aa699b718d1f.animatn new file mode 100644 index 0000000..b67d552 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/ca5b3f14-3194-7a2b-c894-aa699b718d1f.animatn differ diff --git a/LibreMetaverse/linden/static_assets/cd28b69b-9c95-bb78-3f94-8d605ff1bb12.animatn b/LibreMetaverse/linden/static_assets/cd28b69b-9c95-bb78-3f94-8d605ff1bb12.animatn new file mode 100644 index 0000000..8c172a8 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/cd28b69b-9c95-bb78-3f94-8d605ff1bb12.animatn differ diff --git a/LibreMetaverse/linden/static_assets/cd55f18e-c1bf-70a5-5b53-a114fdc44930.bodypart b/LibreMetaverse/linden/static_assets/cd55f18e-c1bf-70a5-5b53-a114fdc44930.bodypart new file mode 100644 index 0000000..4f5f659 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/cd55f18e-c1bf-70a5-5b53-a114fdc44930.bodypart @@ -0,0 +1,63 @@ +LLWearable version 22 +RASL M SHOP EYEBROW SHAPER + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 2 +parameters 39 +16 .62 +31 .38 +112 0 +113 .5 +114 .49 +115 0 +119 0 +130 0 +131 0 +132 0 +133 0 +134 0 +135 0 +136 0 +137 .5 +140 0 +141 0 +142 0 +143 -4 +166 0 +167 0 +168 0 +169 0 +177 0 +181 -1 +182 -1 +183 -1 +184 0 +192 0 +674 -1 +750 0 +752 .5 +754 .5 +755 0 +757 -.82 +762 0 +763 0 +785 0 +789 0 +textures 1 +4 7ca39b4c-bd19-4699-aff7-f93fd03d3e7b diff --git a/LibreMetaverse/linden/static_assets/cd7668a6-7011-d7e2-ead8-fc69eff1a104.animatn b/LibreMetaverse/linden/static_assets/cd7668a6-7011-d7e2-ead8-fc69eff1a104.animatn new file mode 100644 index 0000000..7e2c8f0 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/cd7668a6-7011-d7e2-ead8-fc69eff1a104.animatn differ diff --git a/LibreMetaverse/linden/static_assets/ce58f877-251f-b025-9227-4be3456faf58.bodypart b/LibreMetaverse/linden/static_assets/ce58f877-251f-b025-9227-4be3456faf58.bodypart new file mode 100644 index 0000000..50623d3 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/ce58f877-251f-b025-9227-4be3456faf58.bodypart @@ -0,0 +1,26 @@ +LLWearable version 22 +RASL - Eyes - Med Blue + + permissions 0 + { + base_mask 00082000 + owner_mask 00082000 + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id ef5ac61a-72b0-48a6-843f-adb506d7ba86 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id ef5ac61a-72b0-48a6-843f-adb506d7ba86 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 3 +parameters 2 +98 1 +99 0 +textures 1 +3 6531cb8f-dd4c-4171-091e-bd5789254ab7 diff --git a/LibreMetaverse/linden/static_assets/cf03c095-647e-bd96-4ce2-63202cd5a171.clothing b/LibreMetaverse/linden/static_assets/cf03c095-647e-bd96-4ce2-63202cd5a171.clothing new file mode 100644 index 0000000..ca6747e --- /dev/null +++ b/LibreMetaverse/linden/static_assets/cf03c095-647e-bd96-4ce2-63202cd5a171.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL M SHOP SWEATER UP + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 4 +parameters 10 +781 1 +800 1 +801 1 +802 1 +803 1 +804 1 +805 1 +828 0 +840 0 +868 0 +textures 1 +1 bd947b09-6c73-62c5-9c2f-8c4980df7c82 diff --git a/LibreMetaverse/linden/static_assets/d08d1a27-9410-dbd7-cc4f-ae1a8837b49d.bodypart b/LibreMetaverse/linden/static_assets/d08d1a27-9410-dbd7-cc4f-ae1a8837b49d.bodypart new file mode 100644 index 0000000..50d212e --- /dev/null +++ b/LibreMetaverse/linden/static_assets/d08d1a27-9410-dbd7-cc4f-ae1a8837b49d.bodypart @@ -0,0 +1,63 @@ +LLWearable version 22 +RASL F LOVE EYEBROWSHAPER + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 2 +parameters 39 +16 1.18 +31 .42 +112 0 +113 0 +114 0 +115 0 +119 0 +130 0 +131 0 +132 0 +133 0 +134 0 +135 0 +136 0 +137 .5 +140 0 +141 0 +142 0 +143 -4 +166 0 +167 0 +168 0 +169 0 +177 0 +181 -1 +182 -1 +183 -1 +184 0 +192 0 +674 -1 +750 0 +752 .5 +754 .5 +755 0 +757 -.94 +762 0 +763 0 +785 0 +789 0 +textures 1 +4 7ca39b4c-bd19-4699-aff7-f93fd03d3e7b diff --git a/LibreMetaverse/linden/static_assets/d1b530a9-b4c8-aeaf-9300-9b9d30c715d1.clothing b/LibreMetaverse/linden/static_assets/d1b530a9-b4c8-aeaf-9300-9b9d30c715d1.clothing new file mode 100644 index 0000000..ac3a700 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/d1b530a9-b4c8-aeaf-9300-9b9d30c715d1.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL F CREATE SHIRT UP (BLUE) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 4 +parameters 10 +781 1 +800 1 +801 1 +802 1 +803 1 +804 1 +805 1 +828 0 +840 0 +868 0 +textures 1 +1 3607ade8-59a0-f44b-413a-018d50505a25 diff --git a/LibreMetaverse/linden/static_assets/d26fbcbc-1985-92ef-0cf0-7148b7ed0c08.gesture b/LibreMetaverse/linden/static_assets/d26fbcbc-1985-92ef-0cf0-7148b7ed0c08.gesture new file mode 100644 index 0000000..7912966 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/d26fbcbc-1985-92ef-0cf0-7148b7ed0c08.gesture differ diff --git a/LibreMetaverse/linden/static_assets/d2f2ee58-8ad1-06c9-d8d3-3827ba31567a.animatn b/LibreMetaverse/linden/static_assets/d2f2ee58-8ad1-06c9-d8d3-3827ba31567a.animatn new file mode 100644 index 0000000..89718e3 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/d2f2ee58-8ad1-06c9-d8d3-3827ba31567a.animatn differ diff --git a/LibreMetaverse/linden/static_assets/d40491cc-3629-a090-d11f-ee947d9125a8.bodypart b/LibreMetaverse/linden/static_assets/d40491cc-3629-a090-d11f-ee947d9125a8.bodypart new file mode 100644 index 0000000..add7c05 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/d40491cc-3629-a090-d11f-ee947d9125a8.bodypart @@ -0,0 +1,63 @@ +LLWearable version 22 +RASL F PLAY EYEBROWSHAPER + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 2 +parameters 39 +16 1.18 +31 .5 +112 0 +113 0 +114 0 +115 0 +119 0 +130 0 +131 0 +132 0 +133 0 +134 0 +135 0 +136 0 +137 .5 +140 0 +141 0 +142 0 +143 -4 +166 0 +167 0 +168 0 +169 0 +177 0 +181 -1 +182 -1 +183 -1 +184 0 +192 0 +674 -1 +750 0 +752 .5 +754 .5 +755 0 +757 -.4 +762 0 +763 0 +785 0 +789 0 +textures 1 +4 7ca39b4c-bd19-4699-aff7-f93fd03d3e7b diff --git a/LibreMetaverse/linden/static_assets/d53b27ad-73b9-8ea4-0896-7890b57dd8ed.clothing b/LibreMetaverse/linden/static_assets/d53b27ad-73b9-8ea4-0896-7890b57dd8ed.clothing new file mode 100644 index 0000000..8e0a79c --- /dev/null +++ b/LibreMetaverse/linden/static_assets/d53b27ad-73b9-8ea4-0896-7890b57dd8ed.clothing @@ -0,0 +1,33 @@ +LLWearable version 22 +RASL M EXPLORE TANK DOWN (WHITE) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 5 +parameters 9 +625 0 +638 0 +806 1 +807 1 +808 1 +814 1 +815 .99 +816 .05 +869 0 +textures 1 +2 87eb957f-4152-8e94-df39-644e5d94f7b5 diff --git a/LibreMetaverse/linden/static_assets/d60c41d2-7c24-7074-d3fa-6101cea22a51.animatn b/LibreMetaverse/linden/static_assets/d60c41d2-7c24-7074-d3fa-6101cea22a51.animatn new file mode 100644 index 0000000..6626797 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/d60c41d2-7c24-7074-d3fa-6101cea22a51.animatn differ diff --git a/LibreMetaverse/linden/static_assets/d6c00693-90e0-cbbd-cd3d-3a6ccd510f14.clothing b/LibreMetaverse/linden/static_assets/d6c00693-90e0-cbbd-cd3d-3a6ccd510f14.clothing new file mode 100644 index 0000000..6b0616c --- /dev/null +++ b/LibreMetaverse/linden/static_assets/d6c00693-90e0-cbbd-cd3d-3a6ccd510f14.clothing @@ -0,0 +1,29 @@ +LLWearable version 22 +RASL M EXPLORE JEANS + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 11 +parameters 5 +619 1 +624 1 +824 1 +825 1 +826 1 +textures 1 +17 7a97cedf-bf46-819c-ca67-d333efd8891d diff --git a/LibreMetaverse/linden/static_assets/d83fa0e5-97ed-7eb2-e798-7bd006215cb4.animatn b/LibreMetaverse/linden/static_assets/d83fa0e5-97ed-7eb2-e798-7bd006215cb4.animatn new file mode 100644 index 0000000..778a01a Binary files /dev/null and b/LibreMetaverse/linden/static_assets/d83fa0e5-97ed-7eb2-e798-7bd006215cb4.animatn differ diff --git a/LibreMetaverse/linden/static_assets/d918a0d8-7291-ce83-762f-3f68dcc7402d.gesture b/LibreMetaverse/linden/static_assets/d918a0d8-7291-ce83-762f-3f68dcc7402d.gesture new file mode 100644 index 0000000..0d1f775 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/d918a0d8-7291-ce83-762f-3f68dcc7402d.gesture differ diff --git a/LibreMetaverse/linden/static_assets/d973aaf2-ff8d-3b05-8c81-48305210b3bf.clothing b/LibreMetaverse/linden/static_assets/d973aaf2-ff8d-3b05-8c81-48305210b3bf.clothing new file mode 100644 index 0000000..78eeffe --- /dev/null +++ b/LibreMetaverse/linden/static_assets/d973aaf2-ff8d-3b05-8c81-48305210b3bf.clothing @@ -0,0 +1,33 @@ +LLWearable version 22 +RASL F LEARN SKIRT (TARTEN) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 5 +parameters 9 +625 0 +638 0 +806 1 +807 1 +808 1 +814 1 +815 .99 +816 .05 +869 0 +textures 1 +2 e95c407d-f87c-6498-25b4-b885084eb2ba diff --git a/LibreMetaverse/linden/static_assets/db84829b-462c-ee83-1e27-9bbee66bd624.animatn b/LibreMetaverse/linden/static_assets/db84829b-462c-ee83-1e27-9bbee66bd624.animatn new file mode 100644 index 0000000..637a58c Binary files /dev/null and b/LibreMetaverse/linden/static_assets/db84829b-462c-ee83-1e27-9bbee66bd624.animatn differ diff --git a/LibreMetaverse/linden/static_assets/dbd054f1-132b-cc22-e46a-bad83c230c91.gesture b/LibreMetaverse/linden/static_assets/dbd054f1-132b-cc22-e46a-bad83c230c91.gesture new file mode 100644 index 0000000..321ee08 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/dbd054f1-132b-cc22-e46a-bad83c230c91.gesture differ diff --git a/LibreMetaverse/linden/static_assets/ddcd68c1-0cb9-4b32-a475-f2b9b96ec8d5.clothing b/LibreMetaverse/linden/static_assets/ddcd68c1-0cb9-4b32-a475-f2b9b96ec8d5.clothing new file mode 100644 index 0000000..470e3f5 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/ddcd68c1-0cb9-4b32-a475-f2b9b96ec8d5.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL M EXPLORE UNDER JACKET LEATHER + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 8 +parameters 9 +606 .66 +607 1 +608 1 +609 1 +780 1 +834 1 +835 1 +836 1 +877 0 +textures 2 +13 c9280333-0ae0-3d41-3549-b3c7d28fa6a4 +14 85b13d86-3e95-8d4b-a03b-c9c737631194 diff --git a/LibreMetaverse/linden/static_assets/df074f93-968a-2588-8ef5-7db3b21dff6d.bodypart b/LibreMetaverse/linden/static_assets/df074f93-968a-2588-8ef5-7db3b21dff6d.bodypart new file mode 100644 index 0000000..2701f77 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/df074f93-968a-2588-8ef5-7db3b21dff6d.bodypart @@ -0,0 +1,26 @@ +LLWearable version 22 +RASL EYES MUTED GREEN + + permissions 0 + { + base_mask 00082000 + owner_mask 00082000 + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id df110c10-72e6-40d6-8916-14b4b0366b18 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id df110c10-72e6-40d6-8916-14b4b0366b18 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 3 +parameters 2 +98 .61 +99 0 +textures 1 +3 e88d1151-f2ab-6bd3-110d-6c827ccbd4a6 diff --git a/LibreMetaverse/linden/static_assets/e04d450d-fdb5-0432-fd68-818aaf5935f8.animatn b/LibreMetaverse/linden/static_assets/e04d450d-fdb5-0432-fd68-818aaf5935f8.animatn new file mode 100644 index 0000000..866aaf3 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/e04d450d-fdb5-0432-fd68-818aaf5935f8.animatn differ diff --git a/LibreMetaverse/linden/static_assets/e2efe57f-70e8-35e5-b92c-280e3e9c6e1f.clothing b/LibreMetaverse/linden/static_assets/e2efe57f-70e8-35e5-b92c-280e3e9c6e1f.clothing new file mode 100644 index 0000000..24cbda2 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/e2efe57f-70e8-35e5-b92c-280e3e9c6e1f.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL F LOVE SHOES FOOTSHAPER + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id df110c10-72e6-40d6-8916-14b4b0366b18 + owner_id df110c10-72e6-40d6-8916-14b4b0366b18 + last_owner_id df110c10-72e6-40d6-8916-14b4b0366b18 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 6 +parameters 10 +198 1 +503 .41 +508 -.37 +513 .19 +514 .66 +616 1 +654 .38 +812 1 +813 1 +817 1 +textures 1 +7 3ab7e2fa-9572-ef36-1a30-d855dbea4f92 diff --git a/LibreMetaverse/linden/static_assets/e4485e5d-6bcc-e5ca-96fd-303227e93d6c.gesture b/LibreMetaverse/linden/static_assets/e4485e5d-6bcc-e5ca-96fd-303227e93d6c.gesture new file mode 100644 index 0000000..68f8555 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/e4485e5d-6bcc-e5ca-96fd-303227e93d6c.gesture differ diff --git a/LibreMetaverse/linden/static_assets/e5c8f3c2-9e65-5c4b-03c4-d8205f626b37.bodypart b/LibreMetaverse/linden/static_assets/e5c8f3c2-9e65-5c4b-03c4-d8205f626b37.bodypart new file mode 100644 index 0000000..251ea6e --- /dev/null +++ b/LibreMetaverse/linden/static_assets/e5c8f3c2-9e65-5c4b-03c4-d8205f626b37.bodypart @@ -0,0 +1,26 @@ +LLWearable version 22 +RASL - Eyes - Dark Blue + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id ef5ac61a-72b0-48a6-843f-adb506d7ba86 + owner_id ef5ac61a-72b0-48a6-843f-adb506d7ba86 + last_owner_id ef5ac61a-72b0-48a6-843f-adb506d7ba86 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 3 +parameters 2 +98 1 +99 0 +textures 1 +3 9b1c0ff8-42e6-46b1-2f90-a03e4df16030 diff --git a/LibreMetaverse/linden/static_assets/e7135c15-a7bc-637e-2664-b6fbdc22428c.gesture b/LibreMetaverse/linden/static_assets/e7135c15-a7bc-637e-2664-b6fbdc22428c.gesture new file mode 100644 index 0000000..01b050c Binary files /dev/null and b/LibreMetaverse/linden/static_assets/e7135c15-a7bc-637e-2664-b6fbdc22428c.gesture differ diff --git a/LibreMetaverse/linden/static_assets/e7263f17-46cf-5deb-7e5a-ecc0776f5241.clothing b/LibreMetaverse/linden/static_assets/e7263f17-46cf-5deb-7e5a-ecc0776f5241.clothing new file mode 100644 index 0000000..9a72103 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/e7263f17-46cf-5deb-7e5a-ecc0776f5241.clothing @@ -0,0 +1,34 @@ +LLWearable version 22 +RASL F SHOP TOP + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 8 +parameters 9 +606 1 +607 1 +608 1 +609 1 +780 1 +834 1 +835 1 +836 1 +877 0 +textures 2 +13 58ff5b15-2394-eaf7-0c74-14b087a6472f +14 9ed6836d-b34b-874d-11cd-2642e80cdee4 diff --git a/LibreMetaverse/linden/static_assets/e7584536-86f2-c962-405d-d14adff71f38.gesture b/LibreMetaverse/linden/static_assets/e7584536-86f2-c962-405d-d14adff71f38.gesture new file mode 100644 index 0000000..01bc3d9 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/e7584536-86f2-c962-405d-d14adff71f38.gesture differ diff --git a/LibreMetaverse/linden/static_assets/ea633413-8006-180a-c3ba-96dd1d756720.animatn b/LibreMetaverse/linden/static_assets/ea633413-8006-180a-c3ba-96dd1d756720.animatn new file mode 100644 index 0000000..b398a7e Binary files /dev/null and b/LibreMetaverse/linden/static_assets/ea633413-8006-180a-c3ba-96dd1d756720.animatn differ diff --git a/LibreMetaverse/linden/static_assets/ea9ab69b-c2c7-3e18-a50b-37a9cfe457cd.gesture b/LibreMetaverse/linden/static_assets/ea9ab69b-c2c7-3e18-a50b-37a9cfe457cd.gesture new file mode 100644 index 0000000..c723ee8 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/ea9ab69b-c2c7-3e18-a50b-37a9cfe457cd.gesture differ diff --git a/LibreMetaverse/linden/static_assets/eae8905b-271a-99e2-4c0e-31106afd100c.animatn b/LibreMetaverse/linden/static_assets/eae8905b-271a-99e2-4c0e-31106afd100c.animatn new file mode 100644 index 0000000..33c8c57 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/eae8905b-271a-99e2-4c0e-31106afd100c.animatn differ diff --git a/LibreMetaverse/linden/static_assets/ec952cca-61ef-aa3b-2789-4d1344f016de.animatn b/LibreMetaverse/linden/static_assets/ec952cca-61ef-aa3b-2789-4d1344f016de.animatn new file mode 100644 index 0000000..c1b9190 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/ec952cca-61ef-aa3b-2789-4d1344f016de.animatn differ diff --git a/LibreMetaverse/linden/static_assets/eefc79be-daae-a239-8c04-890f5d23654a.animatn b/LibreMetaverse/linden/static_assets/eefc79be-daae-a239-8c04-890f5d23654a.animatn new file mode 100644 index 0000000..b289928 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/eefc79be-daae-a239-8c04-890f5d23654a.animatn differ diff --git a/LibreMetaverse/linden/static_assets/ef62d355-c815-4816-2474-b1acc21094a6.animatn b/LibreMetaverse/linden/static_assets/ef62d355-c815-4816-2474-b1acc21094a6.animatn new file mode 100644 index 0000000..afc8018 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/ef62d355-c815-4816-2474-b1acc21094a6.animatn differ diff --git a/LibreMetaverse/linden/static_assets/efdc1727-8b8a-c800-4077-975fc27ee2f2.animatn b/LibreMetaverse/linden/static_assets/efdc1727-8b8a-c800-4077-975fc27ee2f2.animatn new file mode 100644 index 0000000..796bf84 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/efdc1727-8b8a-c800-4077-975fc27ee2f2.animatn differ diff --git a/LibreMetaverse/linden/static_assets/f061723d-0a18-754f-66ee-29a44795a32f.animatn b/LibreMetaverse/linden/static_assets/f061723d-0a18-754f-66ee-29a44795a32f.animatn new file mode 100644 index 0000000..e4ae54b Binary files /dev/null and b/LibreMetaverse/linden/static_assets/f061723d-0a18-754f-66ee-29a44795a32f.animatn differ diff --git a/LibreMetaverse/linden/static_assets/f22fed8b-a5ed-2c93-64d5-bdd8b93c889f.animatn b/LibreMetaverse/linden/static_assets/f22fed8b-a5ed-2c93-64d5-bdd8b93c889f.animatn new file mode 100644 index 0000000..a91d7ea Binary files /dev/null and b/LibreMetaverse/linden/static_assets/f22fed8b-a5ed-2c93-64d5-bdd8b93c889f.animatn differ diff --git a/LibreMetaverse/linden/static_assets/f2483d55-bc31-38c0-65b2-9f7e87fce5c4.gesture b/LibreMetaverse/linden/static_assets/f2483d55-bc31-38c0-65b2-9f7e87fce5c4.gesture new file mode 100644 index 0000000..5ef31e0 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/f2483d55-bc31-38c0-65b2-9f7e87fce5c4.gesture differ diff --git a/LibreMetaverse/linden/static_assets/f2bed5f9-9d44-39af-b0cd-257b2a17fe40.animatn b/LibreMetaverse/linden/static_assets/f2bed5f9-9d44-39af-b0cd-257b2a17fe40.animatn new file mode 100644 index 0000000..563bc43 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/f2bed5f9-9d44-39af-b0cd-257b2a17fe40.animatn differ diff --git a/LibreMetaverse/linden/static_assets/f3061aa3-0069-96b4-67b5-e16633a2ef30.clothing b/LibreMetaverse/linden/static_assets/f3061aa3-0069-96b4-67b5-e16633a2ef30.clothing new file mode 100644 index 0000000..fc1ac9f --- /dev/null +++ b/LibreMetaverse/linden/static_assets/f3061aa3-0069-96b4-67b5-e16633a2ef30.clothing @@ -0,0 +1,28 @@ +LLWearable version 22 +RASL SOCKS TEAL + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 7 +parameters 4 +617 1 +818 1 +819 1 +820 1 +textures 1 +12 a900a787-09cc-8d9b-baaa-d93f4c9074fa diff --git a/LibreMetaverse/linden/static_assets/f3300ad9-3462-1d07-2044-0fef80062da0.animatn b/LibreMetaverse/linden/static_assets/f3300ad9-3462-1d07-2044-0fef80062da0.animatn new file mode 100644 index 0000000..895b627 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/f3300ad9-3462-1d07-2044-0fef80062da0.animatn differ diff --git a/LibreMetaverse/linden/static_assets/f4714624-bdc5-f596-5c6f-789b438becf9.bodypart b/LibreMetaverse/linden/static_assets/f4714624-bdc5-f596-5c6f-789b438becf9.bodypart new file mode 100644 index 0000000..c8921ab --- /dev/null +++ b/LibreMetaverse/linden/static_assets/f4714624-bdc5-f596-5c6f-789b438becf9.bodypart @@ -0,0 +1,105 @@ +LLWearable version 22 +RASL M EXPLORE SHAPE (LOUIS) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 0 +parameters 82 +1 .55 +2 -.31 +4 .23 +5 -.05 +6 .09 +7 -.28 +8 -.08 +10 .57 +11 .04 +12 .1 +13 .03 +14 .38 +15 -.18 +17 .09 +18 .5 +19 -.32 +20 -.26 +21 .17 +22 .27 +23 -.02 +24 .18 +25 .53 +27 .25 +33 1.14 +34 -.22 +35 .11 +36 -.42 +37 -.14 +38 -.08 +80 1 +105 .5 +155 -.48 +157 .03 +185 -.86 +193 .6 +196 -.98 +505 .67 +506 .08 +507 0 +515 -1 +517 -.05 +518 -.12 +629 .41 +637 .05 +646 .08 +647 .17 +649 .5 +650 0 +652 .49 +653 .8 +656 0 +659 .6 +662 .5 +663 0 +664 0 +665 .08 +675 -.13 +676 .02 +678 .46 +682 .6 +683 -.08 +684 0 +685 .01 +690 .4 +692 .12 +693 .02 +753 .83 +756 -.72 +758 -.63 +759 .38 +760 .5 +764 .84 +765 -.02 +769 .45 +773 .53 +795 .31 +796 .11 +799 .58 +841 .02 +842 -.28 +879 .32 +880 -.6 +textures 0 diff --git a/LibreMetaverse/linden/static_assets/f4f00d6e-b9fe-9292-f4cb-0ae06ea58d57.animatn b/LibreMetaverse/linden/static_assets/f4f00d6e-b9fe-9292-f4cb-0ae06ea58d57.animatn new file mode 100644 index 0000000..eae1310 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/f4f00d6e-b9fe-9292-f4cb-0ae06ea58d57.animatn differ diff --git a/LibreMetaverse/linden/static_assets/f5fc7433-043d-e819-8298-f519a119b688.animatn b/LibreMetaverse/linden/static_assets/f5fc7433-043d-e819-8298-f519a119b688.animatn new file mode 100644 index 0000000..68f791c Binary files /dev/null and b/LibreMetaverse/linden/static_assets/f5fc7433-043d-e819-8298-f519a119b688.animatn differ diff --git a/LibreMetaverse/linden/static_assets/f67a2a68-6c1d-6fc0-29fd-7ec01c0b5946.bodypart b/LibreMetaverse/linden/static_assets/f67a2a68-6c1d-6fc0-29fd-7ec01c0b5946.bodypart new file mode 100644 index 0000000..31a4887 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/f67a2a68-6c1d-6fc0-29fd-7ec01c0b5946.bodypart @@ -0,0 +1,52 @@ +LLWearable version 22 +RASL M PLAY SKIN (HEATH) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 1 +parameters 26 +108 0 +110 0 +111 .3 +116 0 +117 0 +150 0 +162 0 +163 0 +165 0 +700 .25 +701 0 +702 0 +703 0 +704 0 +705 .5 +706 .6 +707 0 +708 0 +709 0 +710 0 +711 .5 +712 0 +713 .7 +714 0 +715 0 +775 0 +textures 3 +0 948ecc23-ea9f-229f-585a-a203d0f1d3a6 +5 2f404e84-85b9-713d-05c5-6c9bc5775dab +6 4e411a4a-4f14-630d-7915-7c0372ed723e diff --git a/LibreMetaverse/linden/static_assets/f76e4009-1b0f-125f-1d81-e3d774f4a838.bodypart b/LibreMetaverse/linden/static_assets/f76e4009-1b0f-125f-1d81-e3d774f4a838.bodypart new file mode 100644 index 0000000..1fd1d91 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/f76e4009-1b0f-125f-1d81-e3d774f4a838.bodypart @@ -0,0 +1,52 @@ +LLWearable version 22 +RASL F CREATE SKIN (Poppy) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 1 +parameters 26 +108 .04 +110 0 +111 .4 +116 0 +117 0 +150 0 +162 0 +163 0 +165 0 +700 .25 +701 0 +702 0 +703 0 +704 0 +705 .5 +706 .6 +707 0 +708 0 +709 0 +710 0 +711 .5 +712 0 +713 .7 +714 0 +715 0 +775 0 +textures 3 +0 a25b31b2-1506-2529-5516-454a3a0e0824 +5 71855ea0-1773-9e70-32de-f188cc92b2dc +6 34db688d-a76d-5b69-1720-f66c004095ff diff --git a/LibreMetaverse/linden/static_assets/f868fcfc-1377-396a-1635-4ac71a58a4fc.bodypart b/LibreMetaverse/linden/static_assets/f868fcfc-1377-396a-1635-4ac71a58a4fc.bodypart new file mode 100644 index 0000000..1ac799f --- /dev/null +++ b/LibreMetaverse/linden/static_assets/f868fcfc-1377-396a-1635-4ac71a58a4fc.bodypart @@ -0,0 +1,105 @@ +LLWearable version 22 +RASL F EXPLORE SHAPE (SOFIA) + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 0 +parameters 82 +1 .02 +2 -.47 +4 .07 +5 -.03 +6 -.14 +7 .08 +8 -.42 +10 .57 +11 .24 +12 .04 +13 0 +14 .63 +15 -.32 +17 .19 +18 .22 +19 -.5 +20 -.14 +21 .2 +22 0 +23 -.28 +24 -.34 +25 .05 +27 -.55 +33 .71 +34 -.04 +35 -.13 +36 -1.06 +37 -.56 +38 -.22 +80 0 +105 .58 +155 -.57 +157 0 +185 -.52 +193 .52 +196 -1.1 +505 .29 +506 -.52 +507 -.63 +515 -1 +517 -.11 +518 .11 +629 .48 +637 .04 +646 -.13 +647 .03 +649 .31 +650 .15 +652 .39 +653 .32 +656 0 +659 .7 +662 .5 +663 0 +664 0 +665 .08 +675 -.17 +676 -.58 +678 .5 +682 .51 +683 -.18 +684 .2 +685 0 +690 .4 +692 .46 +693 .28 +753 .76 +756 -.4 +758 .06 +759 .73 +760 .62 +764 .1 +765 -.16 +769 .47 +773 .46 +795 .26 +796 .08 +799 .48 +841 .02 +842 .12 +879 0 +880 -.72 +textures 0 diff --git a/LibreMetaverse/linden/static_assets/fa743da9-7e6e-d88e-3e4f-143dcb4fc01b.gesture b/LibreMetaverse/linden/static_assets/fa743da9-7e6e-d88e-3e4f-143dcb4fc01b.gesture new file mode 100644 index 0000000..aadded4 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/fa743da9-7e6e-d88e-3e4f-143dcb4fc01b.gesture differ diff --git a/LibreMetaverse/linden/static_assets/fb262981-4295-f048-c280-629081bf3b6b.gesture b/LibreMetaverse/linden/static_assets/fb262981-4295-f048-c280-629081bf3b6b.gesture new file mode 100644 index 0000000..81be44c Binary files /dev/null and b/LibreMetaverse/linden/static_assets/fb262981-4295-f048-c280-629081bf3b6b.gesture differ diff --git a/LibreMetaverse/linden/static_assets/fc3de4b8-bd3e-662b-934c-b72714dab5bf.gesture b/LibreMetaverse/linden/static_assets/fc3de4b8-bd3e-662b-934c-b72714dab5bf.gesture new file mode 100644 index 0000000..eca3416 Binary files /dev/null and b/LibreMetaverse/linden/static_assets/fc3de4b8-bd3e-662b-934c-b72714dab5bf.gesture differ diff --git a/LibreMetaverse/linden/static_assets/fd037134-85d4-f241-72c6-4f42164fedee.animatn b/LibreMetaverse/linden/static_assets/fd037134-85d4-f241-72c6-4f42164fedee.animatn new file mode 100644 index 0000000..eba81cf Binary files /dev/null and b/LibreMetaverse/linden/static_assets/fd037134-85d4-f241-72c6-4f42164fedee.animatn differ diff --git a/LibreMetaverse/linden/static_assets/fe63b3df-0557-c6fe-836a-a353f8108660.bodypart b/LibreMetaverse/linden/static_assets/fe63b3df-0557-c6fe-836a-a353f8108660.bodypart new file mode 100644 index 0000000..cb5b225 --- /dev/null +++ b/LibreMetaverse/linden/static_assets/fe63b3df-0557-c6fe-836a-a353f8108660.bodypart @@ -0,0 +1,52 @@ +LLWearable version 22 +RASL F LOVE SKIN (Gena) Rev + + permissions 0 + { + base_mask 7fffffff + owner_mask 7fffffff + group_mask 00000000 + everyone_mask 00000000 + next_owner_mask 00082000 + creator_id 79908808-d272-49a8-864a-d133a10931e9 + owner_id 79908808-d272-49a8-864a-d133a10931e9 + last_owner_id 79908808-d272-49a8-864a-d133a10931e9 + group_id 00000000-0000-0000-0000-000000000000 + } + sale_info 0 + { + sale_type not + sale_price 10 + } +type 1 +parameters 26 +108 .01 +110 .01 +111 .4 +116 0 +117 0 +150 0 +162 0 +163 0 +165 0 +700 .25 +701 0 +702 0 +703 0 +704 0 +705 .5 +706 .6 +707 0 +708 0 +709 0 +710 0 +711 .5 +712 0 +713 .7 +714 0 +715 0 +775 0 +textures 3 +0 38289ce5-6083-3349-03b1-28036d53c73e +5 f38af42a-2b43-d277-c3aa-8c4bc9409326 +6 42ec6169-874a-42a9-ca33-57230beb4450 diff --git a/LibreMetaverse/linden/static_assets/ff1114e1-4063-3abe-de2f-6d13f6cae508.gesture b/LibreMetaverse/linden/static_assets/ff1114e1-4063-3abe-de2f-6d13f6cae508.gesture new file mode 100644 index 0000000..a1f155f Binary files /dev/null and b/LibreMetaverse/linden/static_assets/ff1114e1-4063-3abe-de2f-6d13f6cae508.gesture differ diff --git a/LibreMetaverse/linden/static_assets/ff201a24-6893-4c41-77f2-bf707481e585.gesture b/LibreMetaverse/linden/static_assets/ff201a24-6893-4c41-77f2-bf707481e585.gesture new file mode 100644 index 0000000..d1e8bad Binary files /dev/null and b/LibreMetaverse/linden/static_assets/ff201a24-6893-4c41-77f2-bf707481e585.gesture differ diff --git a/LibreMetaverse/linden/std_bump.ini b/LibreMetaverse/linden/std_bump.ini new file mode 100644 index 0000000..561e04c --- /dev/null +++ b/LibreMetaverse/linden/std_bump.ini @@ -0,0 +1,18 @@ +LLStandardBumpmap version 1 + + +woodgrain 058c75c0-a0d5-f2f8-43f3-e9699a89c2fc +bark 6c9fa78a-1c69-2168-325b-3e03ffa348ce +bricks b8eed5f0-64b7-6e12-b67f-43fa8e773440 +checker 9deab416-9c63-78d6-d558-9a156f12044c +concrete db9d39ec-a896-c287-1ced-64566217021e +crustytile f2d7b6f6-4200-1e9a-fd5b-96459e950f94 +cutstone d9258671-868f-7511-c321-7baef9e948a4 +discs d21e44ca-ff1c-a96e-b2ef-c0753426b7d9 +gravel 4726f13e-bd07-f2fb-feb0-bfa2ac58ab61 +petridish e569711a-27c2-aad4-9246-0c910239a179 +siding 073c9723-540c-5449-cdd4-0e87fdc159e3 +stonetile ae874d1a-93ef-54fb-5fd3-eb0cb156afc0 +stucco 92e66e00-f56f-598a-7997-048aa64cde18 +suction 83b77fc6-10b4-63ec-4de7-f40629f238c5 +weave 735198cf-6ea0-2550-e222-21d3c6a341ae diff --git a/LibreMetaverse/linden/trees.xml b/LibreMetaverse/linden/trees.xml new file mode 100644 index 0000000..213ee85 --- /dev/null +++ b/LibreMetaverse/linden/trees.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LibreMetaverse/linden/viewerart.xml b/LibreMetaverse/linden/viewerart.xml new file mode 100644 index 0000000..d56efea --- /dev/null +++ b/LibreMetaverse/linden/viewerart.xml @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SecondBotEvents/Commands/Estate.cs b/SecondBotEvents/Commands/Estate.cs index bc582a3..6bdeb27 100644 --- a/SecondBotEvents/Commands/Estate.cs +++ b/SecondBotEvents/Commands/Estate.cs @@ -246,9 +246,9 @@ namespace SecondBotEvents.Commands return Failure("Invaild inventoryNotecardUUID", [inventoryNotecardUUID]); } InventoryNode find = null; - if (GetClient().Inventory._Store.Items.ContainsKey(targetitem)) + if (GetClient().Inventory.GetStore.Items.ContainsKey(targetitem)) { - find = GetClient().Inventory._Store.Items[targetitem]; + find = GetClient().Inventory.GetStore.Items[targetitem]; } InventoryItem itm = null; if (find != null) @@ -469,101 +469,24 @@ namespace SecondBotEvents.Commands { return Failure("Unable to process block parcel search value please use true or false", [setBlockTerraform, setBlockFly, setBlockFlyOver, setAllowDamage, setAllowLandResell, setAgentLimit, setPrimBonus, setMature, setAdult, setBlockObjectPush, setAllowParcelChanges, setBlockParcelSearch]); } - RegionMaturity regionMaturity = RegionMaturity.PG; + RegionMaturity maturity = RegionMaturity.PG; if (mature) { - regionMaturity = RegionMaturity.Mature; + maturity = RegionMaturity.Mature; } if (adult) { - regionMaturity = RegionMaturity.Adult; - } - KeyValuePair result = GetClient().Estate.extendedSetRegionInfo(blockTerraform, blockFly, blockFlyOver, allowDamage, allowLandResell, - agentLimitValue, primBonusValue, regionMaturity, blockObjectPush, allowParcelChanges, blockParcelSearch).Await(); - if (result.Key == false) - { - return Failure(result.Value, [setBlockTerraform, setBlockFly, setBlockFlyOver, setAllowDamage, setAllowLandResell, setAgentLimit, setPrimBonus, setMature, setAdult, setBlockObjectPush, setAllowParcelChanges, setBlockParcelSearch]); + maturity = RegionMaturity.Adult; } + GetClient().Estate.SetRegionInfo(blockTerraform, blockFly, blockFlyOver, allowDamage, allowLandResell, blockObjectPush, allowParcelChanges, agentLimitValue, primBonusValue, blockParcelSearch, maturity); return BasicReply("ok", [setBlockTerraform, setBlockFly, setBlockFlyOver, setAllowDamage, setAllowLandResell, setAgentLimit, setPrimBonus, setMature, setAdult, setBlockObjectPush, setAllowParcelChanges, setBlockParcelSearch]); } - [About("Set the current region flags for the sim you are on")] - [ReturnHints("ok")] - [ReturnHintsFailure("Not an estate manager here")] - [ReturnHintsFailure("Unable to process block terraform value please use true or false")] - [ReturnHintsFailure("Unable to process block fly value please use true or false")] - [ReturnHintsFailure("Unable to process allow damage value please use true or false")] - [ReturnHintsFailure("Unable to process allow land resell value please use true or false")] - [ReturnHintsFailure("Unable to process block pushing value please use true or false")] - [ReturnHintsFailure("Unable to process allow parcel join divide value please use true or false")] - [ReturnHintsFailure("Unable to process agent limit value please use a number")] - [ReturnHintsFailure("Unable to process object bonus value please use a number")] - [ReturnHintsFailure("Unable to process mature value please use true or false")] - [ReturnHintsFailure("Unable to process adult value please use true or false")] - [ArgHints("setBlockTerraform", "true to block terraform, false to allow it", "BOOL", "false")] - [ArgHints("setBlockFly", "true to block flying, false to allow it", "BOOL", "false")] - [ArgHints("setAllowDamage", "true to allow damage, false to block it", "BOOL", "false")] - [ArgHints("setAllowLandResell", "true to allow land reselling, false to block it", "BOOL", "false")] - [ArgHints("setBlockPushing", "true to block pushing, false to allow it", "BOOL", "false")] - [ArgHints("setAllowParcelJoinDivide", "true to allow parcel join and divide, false to block it", "BOOL", "false")] - [ArgHints("setAgentLimit", "the maximum number of agents allowed in the sim", "Number", "100")] - [ArgHints("setObjectBonus", "the object bonus for the sim", "Number", "1.0")] - [ArgHints("setMature", "true to set the sim as mature, false to set it as general", "BOOL", "false")] - [ArgHints("setAdult", "true to set the sim as adult, false use the setMature setting", "BOOL", "false")] + [About("Legacy command - will be phased out please use SetExtendedRegionInfo")] [CmdTypeSet()] public object SetRegionFlags(string setBlockTerraform, string setBlockFly, string setAllowDamage, string setAllowLandResell, string setBlockPushing, string setAllowParcelJoinDivide, string setAgentLimit, string setObjectBonus, string setMature, string setAdult) { - if(GetClient().Network.CurrentSim.IsEstateManager == false) - { - return Failure("Not an estate manager here"); - } - if(bool.TryParse(setBlockTerraform, out bool blockTerraform) == false) - { - return Failure("Unable to process block terraform value please use true or false", [setBlockTerraform]); - } - if (bool.TryParse(setBlockFly, out bool blockFly) == false) - { - return Failure("Unable to process block fly value please use true or false", [setBlockTerraform, setBlockFly]); - } - if (bool.TryParse(setAllowDamage, out bool allowDamage) == false) - { - return Failure("Unable to process allow damage value please use true or false", [setBlockTerraform, setBlockFly, setAllowDamage]); - } - if (bool.TryParse(setAllowLandResell, out bool allowLandResell) == false) - { - return Failure("Unable to process allow land resell value please use true or false", [setBlockTerraform, setBlockFly, setAllowDamage, setAllowLandResell]); - } - if (bool.TryParse(setBlockPushing, out bool blockPushing) == false) - { - return Failure("Unable to process block pushing value please use true or false", [setBlockTerraform, setBlockFly, setAllowDamage, setAllowLandResell, setBlockPushing]); - } - if (bool.TryParse(setAllowParcelJoinDivide, out bool allowParcelJoinDivide) == false) - { - return Failure("Unable to process allow parcel join divide value please use true or false", [setBlockTerraform, setBlockFly, setAllowDamage, setAllowLandResell, setBlockPushing, setAllowParcelJoinDivide]); - } - if (float.TryParse(setAgentLimit, out float agentLimit) == false) - { - return Failure("Unable to process agent limit value please use a number", [setBlockTerraform, setBlockFly, setAllowDamage, setAllowLandResell, setBlockPushing, setAllowParcelJoinDivide, setAgentLimit]); - } - if (float.TryParse(setObjectBonus, out float objectBonus) == false) - { - return Failure("Unable to process object bonus value please use a number", [setBlockTerraform, setBlockFly, setAllowDamage, setAllowLandResell, setBlockPushing, setAllowParcelJoinDivide, setAgentLimit, setObjectBonus]); - } - if (bool.TryParse(setMature, out bool mature) == false) - { - return Failure("Unable to process mature value please use true or false", [setBlockTerraform, setBlockFly, setAllowDamage, setAllowLandResell, setBlockPushing, setAllowParcelJoinDivide, setAgentLimit, setObjectBonus, setMature]); - } - if (bool.TryParse(setAdult, out bool adult) == false) - { - return Failure("Unable to process adult value please use true or false", [setBlockTerraform, setBlockFly, setAllowDamage, setAllowLandResell, setBlockPushing, setAllowParcelJoinDivide, setAgentLimit, setObjectBonus, setMature, setAdult]); - } - RegionMaturity rating = mature ? RegionMaturity.Mature : RegionMaturity.PG; - if (adult) - { - rating = RegionMaturity.Adult; - } - GetClient().Estate.SetRegionInfo(blockTerraform, blockFly, allowDamage, allowLandResell, blockPushing, allowParcelJoinDivide, agentLimit, objectBonus, rating); - return BasicReply("ok", [setBlockTerraform, setBlockFly, setAllowDamage, setAllowLandResell, setBlockPushing, setAllowParcelJoinDivide, setAgentLimit, setObjectBonus, setMature, setAdult]); + return SetExtendedRegionInfo(setBlockTerraform, setBlockFly, "false", setAllowDamage, setAllowLandResell, setAgentLimit, setObjectBonus, setMature, setAdult, setBlockPushing, setAllowParcelJoinDivide, "false"); } [About("Adds an estate manager to the current sim or all estates you control")] diff --git a/SecondBotEvents/Commands/Friends.cs b/SecondBotEvents/Commands/Friends.cs index 3968a2a..fda6aa6 100644 --- a/SecondBotEvents/Commands/Friends.cs +++ b/SecondBotEvents/Commands/Friends.cs @@ -24,6 +24,7 @@ namespace SecondBotEvents.Commands return Failure("avatar lookup", [avatar]); } Dictionary FriendListCopy = GetClient().Friends.FriendList.ToDictionary(k => k.Key, v => v.Value); + if (FriendListCopy.ContainsKey(avataruuid) == false) { return Failure("not in friends list (updating)", [avatar]); } diff --git a/SecondBotEvents/Commands/Inventory.cs b/SecondBotEvents/Commands/Inventory.cs index 0043f24..71a2e4c 100644 --- a/SecondBotEvents/Commands/Inventory.cs +++ b/SecondBotEvents/Commands/Inventory.cs @@ -69,7 +69,7 @@ namespace SecondBotEvents.Commands protected InventoryNode SearchInventoryStore(UUID item) { - Inventory store = GetClient().Inventory._Store; + Inventory store = GetClient().Inventory.GetStore; if (store.Items.ContainsKey(item)) { return store.Items[item]; @@ -808,7 +808,7 @@ namespace SecondBotEvents.Commands } protected InventoryNode RootFolder() { - return GetClient().Inventory._Store.GetNodeFor(GetClient().Inventory._Store.RootFolder.UUID); + return GetClient().Inventory.GetStore.GetNodeFor(GetClient().Inventory.GetStore.RootFolder.UUID); } protected InventoryNode FindFolder(string path) { diff --git a/SecondBotEvents/Commands/ParcelCommands.cs b/SecondBotEvents/Commands/ParcelCommands.cs index 1782056..71eed35 100644 --- a/SecondBotEvents/Commands/ParcelCommands.cs +++ b/SecondBotEvents/Commands/ParcelCommands.cs @@ -47,9 +47,8 @@ namespace SecondBotEvents.Commands { return Failure(tests.Value); } - targetparcel.AccessBlackList.Clear(); - targetparcel.AccessWhiteList.Clear(); - targetparcel.Update(GetClient()); + targetparcel.UpdateParcelAccessList(GetClient(), AccessList.Access, new List()); + targetparcel.UpdateParcelAccessList(GetClient(), AccessList.Ban, new List()); return BasicReply("ok"); } [About("Requests the current parcel local id")]