Sixteen years in Second Life

Om my Water Horse Anipet

So I’m sweet sixteen! Or at least my avatar is – would that it applied to me once more…

When I reached 15 continuous years in SL I really had little to say (although I managed to say it in around 900 words!), as not that much had changed with me personally over the course of 2021 – and SL itself had remained fairly well balanced.

2022 has been slightly different – there have been new features and capabilities deployed to Second Life, with LL working to try to increase the platform’s appeal and engaging with users in the development of new features. True, some of the planned work hasn’t quite come to fruition and so won’t be popping up until 2023 – but one project in particular should over time very much change how SL looks for the better. 

On the “personal” SL front, things have changed a little. While blogging takes up a lot of my time – thank you to everyone who follows and supports and helps me along that journey – the second half of the year has allowed me to spend a lot more time enjoying the company of those closest to me (notably Imp, who has given me endless reasons to smile and laugh – there’s a reason I’ve given her that nickname!). That said, things in the physical world have been turned upside down on a number of occasions through the year, resulting in blogging efforts taking a back seat here and there. 

But that said, I’m still nicely settled within Second Norway (and still recommend it to anyone looking for land they’ve like to rent and establish a home within), although I’ve not actually done as much sailing, boating or flying as I’d like. Regulars may have noticed (and been breathing a sigh of relief at the fact) that I’ve not been boring people with write-ups of the latest changes in house and / or island design. Not that I’ve stopped; I’ve simply reverted to building things from scratch, rather than using any rebuilds as an opportunity to review a particular commercially available house designs – although admittedly, the current house was heavily inspired by Cory Edo’s Jura Waterfront Cottage, a genuinely stunning design which (unfortunately) didn’t quite marry up to my kitbashing needs, so I opted to build from scratch whilst keeping the look of that design in mind.  

One thing I had considered doing this year was to take time out to look at some of the other worlds I’ve visited in the past. However, the truth of the matter is, there is nothing out there (outside of OpenSim) which offers the broad creative richness and freedoms as Second Life; not just in terms of content creation, but in how we expression our personalities, how we interact, how we have fun, what we can do to encourage and support others (in-world and out-world), and so on. Thus, I just haven’t felt the incentive to do so. As I said on occasion of my 15th rezday, I really don’t see anything like Second Life emerging from the haze of verbiage people call “the metaverse” any time soon. 

In this regard, I am far more excited – even as a comparative lay person – by the new features and capabilities Linden Lab is working on to further enhance SL. I’ve particularly appreciated the performance boosts we’ve seen in the viewer thanks to the Performance improvements work, and have appreciated the efforts to bring users directly into the fold in developing things like support for glTF 2.0-compliant PBR materials / reflections probes (which lays the foundations for even greater glTF compliance in the future, making content creation for Second Life a lot more predictable when using external tools and workflows), and the Puppetry Project work, both for the capabilities it can bring to a range of SL activities and for the foundations it lays for potential future enhancements to the platform.  

Other than that, I really don’t have too much to say on the occasion of my rezday – other than maybe one day I’ll get a card / cake from Linden Lab like others do on their rezday *sigh* – but for now  I’ll shut up and return this blog to its usual schedule! 🙂 .

December Premium / Premium Plus land offer in Second Life

via Linden Lab

On Thursday, December 1st, 2022, Linden Lab announced a suspension of set-up fees for regions ordered during the month of December – but only for Premium and Premium Plus members placing such an order with Linden Lab.

The offer means that a Premium / Premium Plus subscriber renting any Private region from the Lab stands to make the following first month savings:

  • Homestead region: US $40.
  • Full region: US $120.
  • Skill Gaming: US $245.

Additional notes:

  • All land fees are subject to VAT or Australian GST where applicable,
  • The requirement to hold at least one Full region in order to be able to hold one or more homestead regions still applies to Premium subscribers throughout this offer period (Premium Plus subscribers are exempt from this requirement).

The announcement reads in part:

Premium and Premium Plus subscribers will pay no setup fees for any new regions purchased during the month of December. Only pay the first month’s maintenance fee and move right in.
Here’s how to take advantage of this offer:
    • Have a Premium or Premium Plus account
    • Order a region between December 1 and December 31, 2022 by filing a support ticket with your order request using the Land and Region -> Order Private Region ticket type
    • Region delivery will occur within 2 business days once all details have been verified. For quickest delivery:
    • You will be billed for the first month’s maintenance fee at the time of delivery
For more information about Private Regions, please review the Private Regions knowledge base article and Private Region Pricing.

It is at times claimed that the set-up fee is often the reason people do not obtain their own regions from the Lab (although it is more likely the reality of having to pay the monthly tier has a far greater impact on people’s decision on whether or not to keep their region once rented); so it will be interesting to see what short and longer term impact this may have on region counts within Second Life, as reported monthly by Tyche Shepherd through her Grid Survey.

LL launch “Plus” subscription, reduce Mainland fees and more

via Linden Lab

Linden Lab have officially launched their latest subscription plan for users – and announced both updates to their across-the-board subscription plans that will benefit those liable for VAT, and new fees for holding Mainland parcels of 8,192 sq metres or more.

Details below.

Plus

As outlined by by Reed Linden at the November Web User Group meeting, the new subscription offer is called simply “Plus” (nothing else, just “Plus”), and is designed to sit “between” Basic and the Premium option.

Given this positioning, Plus obviously offers less than Premium in terms of benefits, and is being combined with the reductions in Mainland fees (see below) as an incentive for those who might want to get onto the Mainland property ladder but do not wish to pay Premium subscription rates in order to do so.

Plus Pricing and Benefits

Fees are in US dollars.

Fees
Monthly: $5.99
Annual: $65.99
Benefits L$150 weekly stipend; 50 Groups; 512 sq m free Mainland tier

Note there is no Linden Home or other benefits associated with Plus.

VAT Removed From ALL Subscription Payment Plans

As from Thursday, November 17th, 2022, Linden Lab has removed VAT from all subscription payment plans.

Annual payment plans (Premium or Premium Plus) have been VAT-free for some time. With this change, those paying on either a Monthly or Quarterly payment plan will also no longer have to pay VAT, if it is applicable to them.

Mainland Fee Changes

As from Thursday, November 17th, 2022,  Linden Lab has reduced the cost of monthly Mainland fees for holding 8,192 square metres and above, per the table below (all prices US dollars – fees for additional parcel sizes of 512, 1024, 2048 and 4096 sq m remains unchanged):

Additional Land  (sq m) Monthly Fee (USD) Now Old Fee
8192 $31.00 $35.00
16,384 (1/4 region) $60.00 $67.00
32,768 (1/2 a region) $103.00 $112.00
49,152 $142.00 $150.00
65,536 (Full Region) $166.00 $175.00

Additional Links

Linkset Data (LSD) – a new feature for Second Life

Editorial note on Linkset Data

This capability was deployed to the Main Grid Release Candidate (RC) regions, which account for ~30% of the entire grid, on Wednesday, November 2nd. If all goes well, the capability will be available grid-wide after the deployments of Tuesday, November 8th, 2022. But until the capability is grid-wide, it is important to note that:

  • The capability will only work on the RC regions where it has been deployed.
  • If an object containing Linkset Data is moved (physically or via teleport) from a region that supports the capability to a region that does not support it, all Linkset Data stored with the object will be lost, even if you go back to a region that supports the feature.
  • Therefore, until such time as functionality is deployed to all main grid regions:,
    • The functionality should be used for testing purposes only.
    • Products that use it should not be sold or otherwise released  until such time as the Linkset Data functionality is grid-wide.

Update, November 15th: LSD functionality is available grid-wide on Agni (the Main grid).

Hello, my name is NeoBokrug Elytis, and I’ve been a creator in Second Life since 2005, with a focus on scripting, project management, and exploring the bleeding-edge features of SL.  Today I’m a guest contributor here to tell you all about Second Life’s newest upcoming feature – Linkset Data (LSD). TABLE OF CONTENTS

I’m super excited about it, because I think it will forever change SL similarly in the way that rigged mesh changed avatars; but for scripts.

A Brief History of Scripts

In the early days of Second Life scripted content was crude and simple. All code, custom functions, and stored variables had to fit within 16 kilobytes (kb) – as that was the limit for scripts back then. For comparison, the HTML alone for viewing a single tweet is over 200kb, not including any images.

If you wanted a complex scripted object back then, you needed to add more scripts and use link-messages to communicate between the scripts. Think of it as a scripts-only chat inside an object where they’re listening and reacting to each other.  It’s still used quite a bit today.

Back then and still today objects can communicate with each other using chat, typically on hidden channels. Another way objects could communicate was with features such as XML-RPC calls, and object emails. They were a bit clunky, hard to work with due to memory constraints, and required a bit of a hack-y solution to be practically useful.

Eventually Mono was introduced to the simulator to make scripts better. There were a few significant things that made it better than what we had been using. First, was the speed of script execution which was over 200x to 500x faster for math-intensive workloads. Second, mono could do byte code sharing — which means copies of the same script shared the same memory in the simulator; a gigantic advantage for SL. But the biggest gift of this update was that scripts would have 64kb of memory to work with instead of 16kb!

Even after the Mono update, and consolidating lots of tiny scripts into single but bigger and more efficient scripts; scripters in Second Life kept pushing the boundaries of what is possible in-world. Eventually projects became so complex and big, that multiple scripts were needed once again.

Over time more and more features were added to scripting, including a function for making HTTP requests. It allowed objects to have a shared memory on external servers. For example if you sold a game where it kept track of high scores across 100s of copies of the game, you could do that! But it was still an external server, so if there was ever any communication problem, or the server went offline, you had to write more code to gracefully handle those errors.

Fast-forward many years, and Second Life introduced Experience Tools. But the rub of Experience Tools is that you or your customers need to allow your experience on their land. And just to have an experience, you need a premium account. One less commonly known perk is that you can read and write key-value-pairs to a table of data associated with your experience. That table could hold up to a whopping 128 megabytes of data! So if you wanted to keep track of player scores across the grid you could, AND you wouldn’t need your own external 3rd party server. For example your key could be “player_uuid” and its value could be “player_score”. You could store this information with any object that’s on any land that is a part of the experience. Then anywhere else on the grid where the experience is allowed, another object could read or change that data.

Using HTTP and Experience Tools requires a set of connections in a chain of communication in that they both need to contact a server that is not part of the region itself. In my experience HTTP is a bit more fickle than Experience Tools because it has to travel over the greater internet, and you’re less in control of the hops it has to make to get to its destination. That’s not to say Experience Tools hasn’t suffered from SL grid-weather itself; but it still has to travel internally, so once in a blue moon there are a few issues. Not to mention the requirement of a premium account.

The Hacks We’ve Used (and Still Use)

The methods I’ve described so far all are good examples of how persistent data is traditionally stored, or data that doesn’t change after a script reset or crash. And for the most part, that’s been it – except for creative scripters trying to find solutions that don’t involve other servers. I and others have been known to use a lot of little hacks here and there, just so we don’t have to use external servers or experiences.

One of the earliest and possibly most well known methods is to save persistent data in a note card that a user can edit. But reading note cards is quite slow, and you can only read the data; you can’t ever write data to a note card. I know that sounds strange, so here’s a fun fact: Every time you save a note card it creates a new asset on the asset server.

Another option is to have another script just to store data. While it is faster than a note card, it is another script in your project which might just get wiped out if the script is ever deleted, resets, or crashes.

That begs the question; where else can scripters read AND write persistent data in an object? The object description of course! While the length of the data in an object description is limited to only 127 bytes (characters), it’s good for saving simple product configurations and user options. Most big projects in SL use this, including the well known and now Linden Lab owned CasperTech. There are a few more places to save persistent data including invisible hovertext, storing keys on hidden faces of objects, etc., etc. None of which are “private”, and may cause viewers to try to download non-existent textures. That last bit I’m not 100% sure of, but reasonably — it makes sense.

Overall, the hacks folks use only allow small amounts of data, could be slow, might just be an extra script, or might cause some problems here and there.

What IS Linkset Data?

So far everything I’ve described has some sort of gotcha or caveat. What I didn’t mention was that workarounds for all of those caveats typically take a big bite out of your measly 64kb of script memory. Despite a lot of JIRA feature requests to add persistent data storage over the life of SL, nothing has really come of it… until now!

Linkset Data is a new collection of script functions and one optional event that reads and writes key-value-pairs to a small 64kb table of data that is part of a root object. These new functions clear out a ton of hurdles scripters have faced, and solve some long-standing issues that SL scripting has had since the start.

Think of it as an invisible table of information that travels with the object, except that only scripts can read and write key-value-pairs to it. Because this data is now part of the object itself, it doesn’t need to rely on external servers. It also doesn’t add any script time or script memory to the region because it’s not a script. It’s just a small ledger of information the object carries with it.

During the Simulator User Group meeting, it was asked if this data could be protected because some creators like to give out modify objects, but not modify scripts. It took less than a week for the server developers to add llLinksetDataWriteProtected and llLinksetDataReadProtected to the feature set. The way this works is the data is protected by a password. If you try to read, write, or delete it without the password, nothing happens (note: at the time of writing, the protected functions are not listed in the wiki article). It should be noted that the data can still be deleted with llLinkSetDataReset, which purges all the data in the linkset.

You may be asking, “Well what happens if I have two prims with Linkset Data on them, and I link them together?”  The Lindens thought of this and here’s what happens:

  • The new root becomes the new Linkset Data, and all data on other links in the newly formed linkset are checked for duplicate data which is discarded.
  • Remaining data in child prims is then merged to the Linkset Data until the 64kb limit is reached, where after more data is discarded.
  • In summary, it imports what it can up to the 64kb limit.

If you boil it down it all sounds real simple, but it’s probably the biggest and most impactful change to scripting in Second Life since HTTP requests were introduced!

How Will It Change Second Life?

Most importantly, Linkset Data is persistent. A script may be deleted, reset, or crash, but it won’t clear out the data.  It’ll still be there for whenever a script needs it again.

LSD is better than Experience Tools because it doesn’t require a premium account, and doesn’t require land to allow an experience to run.  It’s better than HTTP for certain applications, because there’s not going to be any communication errors in accessing the data. It’s better than note cards and all the little hacks we use now, because it’s crazy fast, and doesn’t require a lot of code to read and write data.  In testing, it’s been reported that there can be over 6,000 reads and writes per second to the LSD.

We won’t need little “memory-bank” scripts or note cards to store large swathes of unchanging data.  For instance in The Wastelands I have non-player characters NPCs that have dozens of lines of text stored in a script which easily takes up most of a script’s memory; now I can just store all of that as key-value-pair data!

All scripts in the object can access the data stored in the LSD – and the fact that any in the object can, and can modify the data in a linkset is a complete game changer. One of the causes of simulator-side lag is the volume of “Script Events per Second” (“eps”) it has to manage.

To explain: whenever a script has an outside influence that it’s waiting for, it will trigger an event; this can be as simple as hearing chat, being touched, or as complex as getting information from a HTTP request. An object can queue up as many as 64 events before they begin to be discarded. Currently, many objects in SL (vehicles being a good example) relay on link message events: the control scripts in the root of the object which send messages to the scripts in other prims in the object, which have to listen for them; so if the object has 10 links all listening for messages from the root – that’s 10 script events. Using LSD could eliminate those link messages entirely, helping us remove some of the load from the simulator!

If all this script talk seems overwhelming; let me phrase it like this: When Second Life got Windlight skies, it was a big deal. When SL got mesh, it was a bigger deal. When Second Life got rigged avatar mesh, it changed our in-world appearances permanently. This is as big of a deal as that was, but for scripting.

As of now, these new features are testing on the beta grid.  They might be on the Release Candidate regions by time this article is published, which means that this new set of features should be on the main Second Life Servers within a couple of weeks, assuming that there are no issues with the project. I’m super excited!

I want to give my profound thanks to all the Linden region/simulator developers. I know those office hour meetings can be hard, but I am grateful you listen to the users. I want to thank Inara and Pantera for dutifully keeping track of all the office hours, and the opportunity to write this article. This all started out as a long tweet thread when I got excited about the feature!

About NeoBokrug Elytis

NeoBokrug Elytis

NeoBokrug Elytis (“Neo” to his friends) has been active in Second Life for 17 years. He has defined his time within Second Life in many ways – as a creator, a region designer, a community builder, a teacher, and an innovator. His passion for the platform has remained constant throughout his time in-world, where he has not only founded (and continues to play a lead role in managing) The Wastelands, the largest post-apocalyptic community in Second Life, he has also provided services to third-party organizations as a recognized Second Life Solution Provider.

This service, offered via his business entity, Desolate Studios, has enabled clients like Brooklyn Law School establish a presence in Second Life, as well as being contracted by the Electric Sheep Company to develop their 2007-2008  multiplayer first-person shooter and role playing game, Survival: I Am Legend, designed as a tie-in to the 2007 Warner Brothers motion picture, I Am Legend, which starred Will Smith.

Today, Neo continues to provide help and support to organizations wishing to establish a presence in Second Life, as well as continuing to help innovate the platform through the submission of considered, well-documented feature requests, many of which have been accepted and implemented by Linden Lab.

Lab announces Homesteads for Premium Plus, and some thoughts

via Linden Lab

On Tuesday, November 1st, 2022, Linden Lab announced that Homestead regions are now available to Premium Plus members directly from Linden Lab and without the need to hold a Full region.

The offering was first indicated as a “coming” Premium Plus benefit during the Lab Gab session with Grumpity and Patch Linden held on October 21st – see here for a summary of that event – and the November 1st announcement builds on this.

In short the details are:

  • Premium Plus members are now able to hold  one private Homestead region from Linden Lab against their account:
  • Regions can be requested using a Support Ticket via support.secondlife.com. Tickets should:
    • Place an order via Land & Region → Order Private Region.
    • Provide a unique name for the region (in accordance with the region naming rguidelines) and a preferred location on the grid for placement.
  • The region can be held only as long as the member maintains their Premium Plus account. Should they downgrade to Premium (or any forthcoming Premium subscription level that does not include the Homestead “benefit”) or to Basic will lose the region.

There are no other changes to Homestead ownership, including the fact that anyone is able to own Homestead regions as long as there is at least one Full private region owned on that account as well, and pay the required fees.

Does This Make Premium Plus More Attractive?

Whether the ability to hold a Homestead region when taken on its own will make Premium Plus a worthwhile upgrade is questionable.

  • If you are not already a Premium or Premium Plus member, then looking at Premium Plus purely in terms of a means to obtain a Homestead region probably isn’t a worthwhile proposition.
    • When you add the minimum monthly fee for Premium Plus (US $20.75) to the Homestead region tier of US $109, it likely comes out to more than the monthly cost of renting a Homestead region from an established private rental estate.
    • Both renting privately and holding a Homestead via Premium Plus have the same core risk: paying the monthly tier.
  • If you are currently a Premium Member, then looking at Premium Plus purely as a means to obtain a Homestead region is a little less clear-cut.
    • On the one hand, upgrading to Premium Plus from Premium costs at least an extra US $12.5 a month.
    • On the other, this fee, plus the month Homestead tier will still be a competitive outlay when compared to renting a homestead through a private estate.
  • If you are a Basic or Premium member who already sees value in other Premium Plus benefits (such as the reduced fee for Name Changes, the other reduced fees, etc.), and are attracted to the idea of holding your own region, then upgrading to Premium Plus is liable to be worthwhile and cost-effective.

This last point is really the key to this offer: obtaining a Homestead is not the sole benefit available to those upgrading to Premium Plus, so it needs to be considered as a part of the overall package of benefits, and any decision made on upgrading should be made on that basis. For example, the option of holding a Homestead region is of little interest to me – but the forthcoming Premium Plus Linden Homes do. I’m therefore waiting to see what happens on that front before I make any decision on a potential move from Premium to Premium Plus.

 

 

 

Linden Lab updates Second Life Terms and Conditions

via Linden Lab

On Tuesday, October 25th, Linden Lab announced changes to the Second Life Terms and Conditions, which will formally come into effect from November 1st, when users will have to accept them in order to access Second Life.

These updates appear to be in the light of the changes to Tilia LCC’s status following Linden Lab’s partnering with JP Morgan Payments (see the official Tillia notice on this here, and my own blog post here).

As noted within the official SL blog post on the update, the changes are specifically related to:

  • A  clarification of certain functions associated with the LindeX as well as the terms applicable to orders placed on the LindeX.
    • These changes can be found in section 3.2 Second Life may offer a Linden Dollar exchange (the “LindeX exchange” or “LindeX”)
  • The addition of a new section to the Terms and Conditions, describing the terms applicable to your use of Stored Value Accounts, including your relationship with Tilia LLC.
    • These  changes can be found in section 4. Stored Value Account, comprising four sub-sections:
      • Section 4.1 – outlining the general relationship between Second Life and Tillia LLC, and the definition of a “Stored Value Account”.
      • Section 4.2 – covering the specific relationship between Tilia LLC and your ability to purchase and hold Linden Dollars on account, as noted in section 3 of the Terms and Conditions.
      • Section 4.3 – which will be of particular note to those who (regularly or otherwise) process credit out of Second Life (aka “cashing out”) Linden Dollar values to fiat money values.
      • Section 4.4 – the overall status of funds held within a Stored Value Account and their relationship with Tilia LLC.

These changes do not appear to make significant changes to how people use Second Life or obtain Linden Dollars. They do, however, better outline the process credit operation, including general time frames involved, although reference should also obviously be made to any documentation offered in respected of the actual process credit operation and within the Tilia Terms of Service relating to same.

Questions on the changes should be addressed to SL Billing Support directly; I cannot respond to questions through these pages, and is unlikely that specific questions posted in the comments below will be seen by members of the SL billing team.

Related Links