👩‍💻 Scripting changes coming soon

News from the Second Life Team – January 2024 Edition

 

Happy New Year! We’re off to a great start to the year at the Lab and happy to share more Second Life updates with you. You’ll find news on scripting additions, PBR Materials, Project Viewers, and an update on the Second Life Mobile Private Alpha program. Enjoy!

A handful of new, useful scripting features will be getting released in the coming weeks:

llComputeHash

LSL’s old llMD5 function has a significant flaw: it always adds a “:” character to the input string. This makes it useless for most hashing purposes. Enter: llComputeHash! This new function can generate a hash of an input string using any of the following hashing algorithms: md5, md5_sha1, sha1, sha224, sha256, sha384, and sha512.

 
default {
touch_start(integer count) {
string message = your-test-message-here;
 
list algorithms = [md5, md5_sha1, sha1, sha224, sha256, sha384, sha512];
 
integer algorithmCount = llGetListLength(algorithms);
llOwnerSay(message=’ + message + );
 
integer i = 0;
for (i = 0; i < algorithmCount; ++i) {
string algorithm = llList2String(algorithms, i);
string hash = llComputeHash(message, algorithm);
llOwnerSay(algorithm + = + hash);
}
}

llGetNotecardLineSync

You know how it takes an incredible amount of time for your furniture to boot up after resetting its scripts? Argh! Yeah, it’s annoying, and likely due to your sofa/throne/maypole reading configuration from one or more notecards in its inventory.

The new llGetNotecardLineSync function makes loading data from notecards in object inventory much faster by providing a synchronous access method with the caveat that the notecard must be in the region’s asset cache.

 
string NOTECARD_NAME = notecard;
key gLineCountId;
 
default {
state_entry() {
// Request number of notecard lines.
gLineCountId = llGetNumberOfNotecardLines(NOTECARD_NAME);
}
 
dataserver(key id, string data) {
if (id != gLineCountId) { return; }
 
integer count = (integer)data;
integer i;
for (i = 0; i < count; ++i) {
string line = llGetNotecardLineSync(NOTECARD_NAME, i);
if (line == EOF) {
llOwnerSay(—EOF—);
}
else if (line == NAK) {
llOwnerSay(—NAK—);
}
else {
llOwnerSay(line);
}
}
}

BTW, if you’re interested in knowing more about the scripts that power a huge amount of Second Life’s furniture, vehicles and more check out the open source AVsitter project. 🪑

llGetCameraAspect, llGetCameraFOV, and llWorldPosToHUD

Several functions have been added to help content creators position HUDs:

  • llGetCameraAspect – Returns the aspect ratio of the wearer’s screen as a float (width/height)
  • llGetCameraFOV – Returns a float value for the current camera’s field of view
  • llWorldPosToHUD – Returns HUD position of an in-world object
 
integer gHasPerms = FALSE;
 
function printCameraInfo() {
float aspect = llGetCameraAspect();
float fov = llGetCameraFOV();
llOwnerSay(aspect = + (string)aspect + FOV = + (string)fov);
}
 
default {
on_rez(integer a) {
llResetScript();
}
 
state_entry() {
llRequestPermissions(llGetOwner(), PERMISSION_TRACK_CAMERA);
}
 
run_time_permissions(integer perms) {
if (perms & PERMISSION_TRACK_CAMERA) {
gHasPerms = TRUE;
printCameraInfo();
}
}
 
touch_start(integer count)
{
if (gHasPerms) {
printCameraInfo();
} else {
llRequestPermissions(llGetOwner(), PERMISSION_TRACK_CAMERA);
}
}

Scripting roadmap

Status of these upcoming changes and more are visible on Second Life’s new public road visible at feedback.secondlife.com. If you have ideas or feedback on the scripting system check out the Scripting Features and Scripting Bugs boards.

🧪 Project Viewers

😀 Emoji

This viewer is also in RC and is based on a contribution by Kitty Barnett, and adds the ability to insert emojis in text chat.

Maintenance W

This Viewer brings many fixes (see list here), including a fix to a long standing issue with voice failing after quickly restarting your viewer

Maintenance X

This Viewer brings many usability improvements, including:

  • Saving you some clicks by allowing the deletion of folders containing worn items. 
  • In case you only wish to detach, Alt+Shift+R will now detach selected attachments so you can remove those less fashionable items at rapid speed.
  • The time format has been changed to show the more superior SLT instead of PDT.
  • The group join fee will be shown when leaving a group so you can be extra sure you want to leave it.
  • Shift+Alt+N will now open the Notifications floater 
  • Group notices can now be accessed directly from the People floaters Groups tab. Hover that mouse cursor over the group name for access.
  • Group notices will now default as being sorted by date with the newest first 

Maintenance Y

With this Viewer, you can now preview your outfit photos when hovering your cursor over outfits in the Outfit floater. You can also now remove locations from history via the context menu located in the Places floaters Visited tab.

image4.png

See the list of additional fixes here.

Default Viewer

🎨 GLTF PBR Materials

At the end of November, we announced in this blog post that PBR became available grid wide! The PBR Materials project brings increased realism and enables bringing GLTF content into Second Life with expected results. Now you can create scenes with real reflections which mimic how our eyes have learned to identify that a surface is metal, plastic, or some other material. Whether you create objects in Second Life or simply enjoy seeing and wearing them, PBR Materials will provide a big step up in the appearance of the Second Life world.

Individually faceted disco ball reflections
image1.png

As of January 8th, 2024, the PBR Materials Maintenance 1 viewer became the default viewer for Second Life. See Release Notes here. There are 17 new Materials available in the Library so you can start building with PBR today!

📱 Mobile Update

On December 12th, we announced our Mobile Private Alpha, bringing the richness of the Second Life virtual world to your Android or iOS mobile device. Qualifying Premium Plus members can apply now for the Private Alpha. If you are Premium Plus, you can learn more at this link.

Check out this video if you haven’t already!

We’ve had an incredible amount of interest, so if you’ve applied but haven’t been added yet, you’re still on our list. Future testers will be added and notified as the Private Alpha continues to expand. Thanks again for your patience as we process the ongoing demand and we look forward to your participation!

Have A Great Weekend From All Of Us At Zoha Islands/Fruit Islands

MadPea’s UNIA Game is Open!

Unia
MadPea has really outdone themselves with this game. I have not yet tried it, but plan to this weekend when I have some time. This is their most complex game to date, and it operates much like an MMO, with a combat HUD and everything. They call it an “MMO within and MMO” and it is likely to be their best yet!

Please see their website for full details on how to participate in this game. I highly recommend reading it, as it is very complex, but so exciting!

See you in UNIA!

Click here to read more! How To Play UNIA!

I remain respectfully yours,
~ Suzanne Piers

Unia: Unleash the Monster Within

Squee!!

As those of you know who read this blog regularly, I am a huge MadPea fan. They just finished “Buried.” Coming up on April 20th is Unia. I cannot wait!!

Unia by MadPea

(p.s. I hope you realized that Wednesday’s Post was an April Fool’s joke by Linden Lab. 🙂 )

I remain respectfully yours,
~ Suzanne Piers, ZoHa Islands Blogger/Social Media

MadPea’s Lost Mine Hunt ~ Part 1

MadPea Productions croppedI am not normally a huge fan of hunts, because they are simply a gratuitous attempt to get people to come into stores. It’s a great advertising gimmick, but I find the hunts frustrating as people crowd into a sim, pushing and shoving to try to get the prize. It reminds me of the basement sales at Macy’s and crazy women grabbing the same sweater and fighting over it. Not that I’ve ever done that. *Ahem*

However, one of the organizations in SL that takes hunts to the next level and is consistently and unfailingly over the top is MadPea Productions. I first stumbled across MadPea Productions a few years ago when I was between relationships and bored in SL and trying to find something to do. These diabolical and intricately woven, highly detailed games are way more than just a simple hunt. The point of these hunts is to showcase products by the game’s sponsors; of course. But the game is what the players come for. The rewards at the end are just icing on the cake.

MadPea Productions spends months on their productions. And productions is certainly what they are. They carefully craft a back story, and create the convoluted and fascinating journey through whatever trails led by the clues you collect along the way. Just when you think you’ve got a handle on it, it takes a twist and you are not quite through! I always feel a sense of exhilaration when I finish, along with a sense of disappointment that it’s over, because it is so exciting and intellectually challenging.

Lost Mine 2 entrance croppedThe Lost Mine Hunt is no exception, and it did not disappoint. At first, however, I was a bit concerned that it was not going to live up to previously held high expectations. Then, as I got deeper into the game, I realized that it was much more than the deceptively simple beginning.

Lost Mine 3 croppedThe game is divided into three parts. When you first land at the landing point, you are required to invest $150L in the HUD. The hours of entertainment you will derive from this investment is well worth the $150L, believe me. This time, you also can opt in to purchase the collecting pouch (more for show than anything) and new to this game, was an “assistant”, which, they readily admit, allows you a “huge advantage” in the game. This “assistant” (a cute round ball with arms and legs and big eyes — mine was pink) susses out where the clues are and tells you in local chat (that only you can see, so you don’t spoil it for others on the hunt who don’t want to do it with a cheat) when you’re getting close.

Lost Mine 7 helper cropped

Here I am with my faithful assistant by my side:
Lost mine 8 hud before cropped

The instructions you are given is that you are to find pieces of the map to the mine, which have been torn up, crumpled, and scattered throughout the town. Normally, I wouldn’t use a “cheat” such as the assistant in the hunt, but I was low on time as I had a blog deadline to keep, so I attached my assistant and off we went. At first, with the assistant telling me “No objects close by within 20 meters” every few seconds, I wandered the sim, waiting for my assistant to sound the alarm, which she did and I could zero in on the object with her instructions until she finally said “OOOH! You’re sooo close! It should be right next to you! (less than 5m).” At which point I would look around nearby until I found the crumpled paper. When I clicked on the pieces, my avi would bend down, swoop up the piece of paper and stuff it in her pouch. And a piece of the map would fill in on my HUD.

Lost Mine 6 rainy street croppedSounds simple, right? Especially with the assistant telling you where to zero in on. But no, not with MadPea. First of all, the sim is dark and rainy (don’t cheat and change your windlight settings!). Secondly, other people are out hunting nearby, and if they swoop in and pick up the piece of paper you just found before you do, then you’re out of luck! It disappears. My recommendation is try to go when fewer people are there, and if there are other hunters nearby, find a different area and hunt by yourself. I found myself frustrated over and over again as others picked up papers I’d just zeroed in on. (But don’t worry; come back in a few minutes and it will have reappeared).

When I picked up all the map pieces, my map transformed into a solid map, and I thought to myself, “Ahh then I must be done. The map will take me to the treasure, where I’ll pick up my prizes from the sponsors. Hmm kind of short and disappointing, but still fun,” I thought to myself.

But alas! I was hardly done. In fact, I’d just finished just part one, and little did I know that Part 2 and Part 3 were coming! When the map was finished, it said in local chat to click on the map and it would teleport me. I clicked on it, expecting to come to the end, and instead I stepped out into this beautiful forest setting, where Dwarfins live.

Stay tuned — Part 2 of 3 of MadPea’s Lost Mine Hunt!

I remain respectfully yours,

~ Suzanne Piers, ZI Social Media Manager