Scripting Features

  • Search existing ideas before submitting
  • Use support.secondlife.com for customer support issues
  • Keep posts on-topic
Thank you for your ideas!
LSL functions to adjust parcel settings
I'd the ability within LSL, possibly tied to a runtime permission, to be able to adjust the following parcel settings. This would be for moderation, estate management, and event management. Parcel name (string) Parcel description (string) Parcel sale (integer price, key buyer, integer sell_objects_with_land - NULL_KEY for anyone can buy, negative price (or const) to set not for sale. Should always be possible for an object running with estate manager permission, tying this to its own runtime permission for safety would probably be wise) Everyone can: Edit terrain, fly, build, object entry, scripts Group can: build, object entry, scripts Safe (damage) Pushing Show in search (+ category) Adult content Avatars on other parcels can see and chat with avatars on this parcel Landing point (quaternion (x,y,z,rotation) - have const values for blocked TP and anywhere) Snapshot (key texture_id - NULL_KEY for default/unset) Abandon land (Possibly its own runtime permission for safety, should always succeed if owned by an estate manager) Locking these adjustments behind estate manager permissions would be acceptable but not ideal only if absolutely necessary, also completely acceptable would be a reasonable script sleep penalty to prevent unfair use of server resources or abuse. Being able to specify the position or the parcel UUID to act upon for this would be nice to allow for the efficient management of estate regions and large event spaces, possibly with a const to reference the parcel the object resides in currently for convenience in non-centrally managed applications. Any changes that are not authorized would fail and result in an error. This would greatly reduce the reliance on bots / scripted agents which are currently used to accomplish these tasks. Allowing these tasks to be completed totally on-platform would simplify event/venue and estate management dramatically and reduce the load on servers by eliminating the need for bots to idle around waiting to handle these management tasks as needed.
0
Add llGetAgentName(key id) or llGetCreatorName(key id) to retrieve avatar names from UUID, synchronously
📋 Description: Second Life currently lacks a reliable and synchronous way to retrieve an avatar's name from their UUID. The existing options are either incomplete, unreliable, or cumbersome: llKey2Name() – only works if the avatar is online and present in the same region. Totally useless for offline or distant avatars. llRequestAgentData(id, DATA_NAME) – works globally, but is asynchronous, which makes scripting logic unnecessarily complex, especially when dealing with batch object scans (e.g. llGetAttachedList() results). llGetObjectDetails([OBJECT_CREATOR]) – returns only the UUID, never the actual name of the creator. ✅ Requested Feature: Add a synchronous function to retrieve an avatar’s full name (legacy + display name or just legacy), such as: string llGetAgentName(key id); // or llGetCreatorName(key id) It would: Work for any valid agent UUID, regardless of online status or region presence. Return the legacy name (e.g. ResidentName) or display name if available. Respect existing name visibility rules (i.e. only for real agents, not groups or objects). 💡 Why this is needed: Name Display in Scripts: Many scripts scan objects (e.g. attachments, creators) and want to display human-readable information. Without name resolution, UUIDs are useless for end users. Asynchronous Callbacks Are Cumbersome: Managing dataserver events for each attachment creator becomes unscalable in larger scripts or loops. LSL lacks proper data structures to cleanly handle async logic. Consistency: Many SL viewers and Marketplace already resolve names from UUIDs. It's logical and expected that LSL scripting should be able to do the same, natively and synchronously. Reduces Redundant Work: Currently, scripters are forced to cache names manually, handle dataserver events, manage query IDs, and juggle temporary storage — all of which is unnecessary overhead for a basic task. 📌 Conclusion: This is not a luxury feature — it's a basic tool that should exist in LSL to simplify development and enhance usability. A single function to retrieve agent names synchronously would greatly improve script clarity, performance, and user experience. Requested Improvement on the Second Life Website When logging out of the Second Life website and then attempting to log back in, the system automatically reconnects to the previously used avatar without offering a choice. This is problematic for users who have multiple avatars and wish to log in with a different avatar. It is important to add a clear option on the login page allowing users to select the avatar they want to log in with, without forcing automatic reconnection to the last avatar. This improvement would enhance the site's usability and multi-avatar management for users.
2
[Feature Request] llLinksetDataWriteWithValidation()
Linkset Data allows multiple scripts in the same linkset to read/create/update/delete data. We currently do not have any LSD functions with an append validation protocol. Experience KVP updating has a validation protocol w/ feedback which can address race conditions between scripts in the same linkset, different objects in the same region or different objects grid-wide. The following function satisfies the need stated above for LSD: integer llLinksetDataWriteWithValidation(string name, string value, string pass, string original_value) A new failure code constant LINKSETDATA_VALIDATION with value 6 will be needed for this function. Functionality: If name does NOT exist and value is NOT an empty string and original_value is an empty string, the entry is created and 0 is returned, else, 6 is returned. If name exists and value is NOT an empty string and original_value matches name's current value and pass matches name's current pass, the entry is updated and 0 or 5 is returned, else, 6 is returned. If name exists and value is an empty string and original_value matches name's current value and pass matches name's current pass, the entry is deleted and 0 is returned, else, 6 is returned. Other typical check failures such as empty name, name not found, pass mismatch, etc. will return the same values as they do now before validation handling is done. The server is actually already doing these checks in the background to determine what integer value to return with exiting LSD functions. There's just, currently, no validation protection. This feature offers validation protection for creates, updates and deletes which is a must in an environment where multiple scripts can potentially modify an entry at the same time creating race conditions. Since it has password input, this function becomes a defacto all-in-one append function for creates, updates and deletes, something even KVP currently doesn't offer.
6
·

tracked

Load More