Jump to content

Signal Linden

Lindens
  • Posts

    18
  • Joined

Blog Entries posted by Signal Linden

  1. Signal Linden

    Tools & Technology
    This week we rolled a maintenance update to Second Life's production grid. This release contains a handful of small features and bug fixes as well as some housekeeping and internal improvements to how we address assets.
    Scripting
    Detect Animesh
    You can now detect whether a prim is mesh or has animesh enabled using llGetPrimitiveParams:
    Delete, Count multiple linkset values based on pattern
    It's now possible to delete and count multiple Linkset Data (LSD) values based on a regex pattern. This should simplify bulk deletion of values:
    When multiple keys are deleted using llLinksetDataDeleteFound the linkset_data event will be called with the action LINKSET_DATA_MULTIDELETE.
    Estate management
    Backend changes have been made to support an expansion of estate manager and ban list entries. This bump will be available to users as part of a future viewer update.
      Old value New value Estate manager limit 15 20 Estate ban list limit 500 750 Bug Fixes
    BUG-233830 - Issue with llRequestAgentData() & DATA_PAYINFO never updating. As usual, see the full list of bugs and features on the release notes.
    Happy summer. 🌇
  2. Signal Linden
    We’re opening a small set of sandboxes for testing in preparation of introducing GLTF PBR content to the main grid. Please note, these regions are experimental – any content created or modified on these regions and then used in regions that are not materials enabled may exhibit undefined behavior and become permanently damaged. Such content should not be offered on Second Life's Marketplace until future notice. In order to view PBR materials you must use the GLTF Material Import Project Viewer.
    As we roll out GLTF PBR materials in the coming weeks, expect a patchwork of support for material assets across the grid.  A quick way to tell if the region you’re on is materials enabled is to check if “Build->Upload->Material…” is enabled:

    On materials enabled regions, this option will be available and allows for the import of PBR materials from GLTF assets. Only materials are imported at this time –you must still import meshes via COLLADA.  Future work will add support for GLTF scenes and models, but you can start building with GLTF PBR materials today.
    Currently support is limited to a handful of regions that have been carefully selected. If you want to experiment with materials in a sandbox setting visit one of the following regions:
    Rumpus Room Rumpus Room 2 Rumpus Room 3 Rumpus Room 4 Rumpus Room 5 Download the Viewer here
    For more technical input, please file a Jira
    - Second Life Viewer Team
  3. Signal Linden

    Tools & Technology
    Second Life's next Server regular maintenance release is scheduled to roll out to the full grid next week (2023/06/27.) This update contains quality of life improvements for builders and several bug fixes.
    Building
    Max linkset size now 64 meters
    The maximum size for a linkset has been 54 meters since 2010. This has posed problems for builders as it is smaller than the maximum object size of 64m. In order to allow creators to do things like create a house out of a single large mesh object and link furniture on either sides of it we have bumped the max linkset size to match max object size.

    Old (54m) and new (64m) max linkset sizes.
    Scripting
    HTTP PATCH and HEAD support
    Scripters who interact with external web services and APIs can now use HTTP PATCH and HEAD methods with llHTTPRequest.
    Ability to detect bot status
    You can now detect if an agent is an identified scripted agent ("bot") using llGetAgentInfo.
    llCreateLink sleep time reduced
    Scripts can now create links 10x faster: llCreateLink sleep time has been reduced from 1s to 100ms!
    Bug fixes
    Fixed an issue where groups could be accidentally disbanded when removing a single agent Fixed an issue where group owners could not leave a group Fixed an issue that would prevent objects with LinksetData containing certain keys could not be rezzed or attached For a complete list of features and bug fixes see the release notes: 2023-06-09.580543
  4. Signal Linden

    Tools & Technology
    As spring winds to an end it may be a good time to stop and smell the Linden Scripting Language (LSL) controlled flowers. In the past year, Second Life's server team has placed an increased priority on delivering useful new functions and enhancements for scripters. This blog post contains highlighted features released in the past six months; maybe there's something you missed!
    💾 Linkset Data (LSD)
    Likely the most prominent new feature introduced to LSL in recent history, Linkset Data (LSD) provides 128KiB of persistent memory which is shared by all scripts in an object. This functionality scratches several itches which have plagued scripters for some time: a desire for memory that persists between script resets and better conventions for inter-process/script communication. Prior to its introduction, many awkward techniques were used to persist and share data between scripts, including placing data in external HTTP APIs and using the age-old trick of storing data in object descriptions. No more! ⚡
    At its core, LSD is a key-value database associated with the root object of a linkset. The data stored in LSD is persisted between script resets, object transfer and copying. In its simplest form, a script can write, retrieve and delete data using llLinksetDataWrite, llLinksetDataRead and llLinksetDataDelete while the event linkset_data may be used by any script in the object to be informed of changes.
    llLinksetDataWrite llLinksetDataWriteProtected llLinksetDataRead llLinksetDataReadProtected llLinksetDataDelete llLinksetDataAvailable llLinksetDataCountKeys llLinksetDataListKeys llLinksetDataFindKeys More information on LSD, including examples, and information about all related library functions can be found on Second Life's wiki, Category: LSL LinksetData and on the great blogpost from resident NeoBokrug Elytis, Linkset Data (LSD) - A New Feature for Second Life.
    🔍 List search, now with start and end
    Lists can now be searched using llListFindStrided, and manipulated using llList2ListSlice, and llSortListStrided. Notably, llListFindStrided contains start and end parameters, which allow lists to be searched more quickly without many of the out-of-memory situations run into using llListFindList. You can even use llListFindStrided with non-strided data by giving it a stride of one. 🤫
    Strided lists are commonly used to store structured data as LSL has no native map type. llListFindStrided and llSortListStrided should make it easier and more performant to work with lists.
    ✂️ Replace substring
    You can now find and replace segments of string in a performant way using llReplaceSubstring.
    🔊 Linkset sounds
    A handful of functions have been added which make it easier for a linkset to play multiple sounds simultaneously using a single script. This should be a boon for vehicle makers and anyone looking to layer and compose sounds.
    llLinkPlaySound llLinkStopSound 🔐 Cryptographic functions
    HMAC and RSA functions have been added to LSL. These will make secure communication between systems inside and outside of Second Life easier, and make it easier to do things like create a valid JSON Web Token (JWT).
    llHMAC llSignRSA llVerifyRSA 🙂 Miscellaneous
    Environment control - Scripts are able to control environment settings using two functions introduced in August 2022: llSetEnvironment and llReplaceEnvironment. Simulator statistics - llGetSimStats has been enhanced with over 25 new statistics, mirroring much of the data displayed in the viewer statistics panel's Simulator section. You can now set an object property that causes objects to die with no warning if they hit a no-entry parcel using llSetStatus(STATUS_DIE_AT_NO_ENTRY). This is useful for bullets and other objects that would otherwise become lodged in the air at parcel boundaries. HTTP custom header size and accounting has been changed. Scripts are no longer limited to 8 256 byte custom header.  LSL Now provides a 4k pool of memory that may be used for custom headers in whatever way the scripter wants. Wrap up
    Phew. In all, more changes have been made to LSL in the last six months than several prior years combined. That's a lot, but we always want to hear more ideas about how best to improve LSL and the tools available to content creators. If you are interested in hearing about scripting and other areas of development, we encourage you to attend one of Second Life's user group meetings or submit your idea to Jira.
    Many of the features in this post come from resident submitted requests. Thank you for loving Second Life just like we do.
    Happy scripting!
  5. Signal Linden

    Tools & Technology
    LSL XML-RPC is a deprecated method for communication between remote systems and LSL scripts. Its use has been cautioned against since the introduction of LSL HTTP-In functionality in 2009. We plan on shutting down LSL XML-RPC completely on June 1st, 2023.
    Rationale
    As of 2023/03/21, the average amount of traffic served by XML-RPC has dwindled to a few dozen requests per hour. Considering this extraordinarily low amount of traffic and the fact that LSL's more modern HTTP in/out functionality has been available for over 16 years, maintaining LSL XML-RPC infrastructure does not represent a good use of development resources. We'd rather spend time developing new features! 😉
    Timeline
    April-May 2023 - One or more unannounced circuit-breaker exercises will be performed by temporarily blocking incoming LSL XML-RPC traffic. This will give residents and Lindens a chance to experience XML-RPC shutdown and perform any required corrective actions (Upgrading scripts to HTTP-In, etc.) before permanent shut down. May 2023 - XML-RPC will be permanently disabled on RC regions June 2023 - Incoming LSL XML-RPC traffic will be permanently blocked across the grid. Running LSL scripts that use XML-RPC functionality will continue to function to the extent they can with XML-RPC functions no longer doing anything. If you have functionality that depends on XML-RPC, please migrate your scripts and supporting services to HTTP-In.
    If you have questions or concerns feel free to attend the Simulator User Group meeting, held Tuesdays, 12:00 PM Pacific in Denby.
    Update: 2023/05/03 - XML-RPC circuit breaker has been left open, as we have not received any indication of XML-RPC impacting production systems. This post's timeline has also been updated to reflect the RC deploy schedule.
×
×
  • Create New...