👩‍💻 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

Moving From JIRA

Moving From Jira, Pt. 1


image4.png

This is the first installment of a series of posts on moving Second Life issues from Jira to a new community engagement portal, feedback.secondlife.com as well as Github Issues.

jira.secondlife.com is Second Life’s venerable bug reporting repository, development tracker and feature request system. It is used by thousands of users and the entire SL development team to envision, fix and build the future of Second Life.

Unfortunately, Jira Server, the software and license agreement we use to host Second Life’s jira.secondlife.com site, is being discontinued and its official replacement cannot handle the number of users (over 300,000) that Second Life needs. Long story short: we need to move off of Jira before support ends in early February, 2024.

As part of this migration effort, we’re excited to announce that we are opening up a new community feedback portal for early preview: feedback.secondlife.com. This site will host feature requests, bug reports and ultimately replace the public BUG project on jira.secondlife.com.

Support issues should still be reported to support.secondlife.com. We will keep using Freshdesk for all personal and content-sensitive tickets.

Where are my issues going?!

Your issues will be preserved and will not be deleted. Second Life has a 20 year history, and Jira represents one of its best sources for documentation. Jira will remain in operation until we migrate all issues to a new home on Github. We will share more information about working with the issue archive in a future blog post.

Feedback Portal

Second Life has a long history of collaboration with its residents. Rather than be bummed out by needing to leave Jira, we wanted to take this opportunity to select a community site that offers a better experience to both users and staff.

You can check out the new engagement portal at feedback.secondlife.com. This new site uses canny.io, a platform designed for receiving and responding to community feedback. We believe it will be a demonstrably better experience for residents due to features such as:

A public roadmap

image2.png

We will be providing a public roadmap of user-suggested features which have been accepted and will be implemented. This will provide greater transparency into the future of Second Life and drive accountability for us, so that we deliver what we say we would. 😜

Multiple boards

image4.png

The new feedback portal provides boards for different areas of Second Life: general feature requests and bugs, website bugs and features, scripting, etc. This will allow users to easily read up on bugs and feature requests pertaining to their area of interest, and allows triagers on our side to more easily figure out who should review new information.

Board features

  • Markdown – Text can be formatted using a simplified version of Markdown
  • Issue merging – Staff can merge issues instead of marking them as duplicate
  • Trending Posts – Boards may be sorted by trending posts, which combines freshness and popularity

Better Process

We have come to realize that the effects of some of our Jira workflows were, intentionally or otherwise, rather adversarial to engagement (read: unfriendly.) We are fixing this by acknowledging the following problems and resolving them with different behavior on the new feedback site:

Conversations remain open
One of the most detrimental features of our public Jira workflow was how it locked conversations (comments, etc.) after tickets were marked as accepted. This is not the default behavior in the new portal: comments will be allowed throughout the entire lifecycle of the request!

Know when your idea ships
The “clone issue” process on Jira resulted in a large portion of user-submitted issues never being marked as completed when their respective issues were shipped. This will be much less of an issue on feedback.secondlife.com because issues will be directly tied to their internal development tickets and automatically closed when the change ships.

Voting is Encouraged!
Vote to your heart’s content. We want to hear from you which issues are most important.

Behind the Scenes

Part of the rationale for moving to Canny, the software behind feedback.secondlife.com, as opposed to alternative issue tracking solutions is that it is a very focused product that is tailor made for responding to user feedback and prioritizing ideas. In addition, the platform fit the bill by providing the following necessary requirements:

  • Single sign-on (SSO) – Users can log in using their Second Life account
  • Github Integration – Posts can be linked to Github Issues, the platform we are adopting for software development, and automatically marked as completed when the Github issue is finished.
  • Triage Tools – Canny provides a fast, unified view for triaging issues, prioritizing work, and getting it onto a roadmap.

image1.png

 

Public issues are not the only thing moving off of Jira –internal tickets will be migrating to Github Issues. Canny provides easy ways to create and link issues on Github, providing a better workflow than the previous “Clone” system we used on Jira.

image5.png

 

Open Source Collaboration

On the topic of Github, we will be making it easier for open source contributors to engage with Second Life project maintainers and our OSS projects through Github and Github Issues. Canny provides convenient integration with Github Issues, and we will be exploring ways of opening up Second Life development to open source contributors by more directly working in the open.

😖 Differences from Jira

Not everything is perfect. Both staff and residents have developed a lot of well established mental wiring, process and infrastructure around Jira. Canny is also not a Jira replacement: it’s a community engagement tool which may require changes to behavior:

  • Limited attachment support – Canny only supports image attachments. All other media types will need to be linked to.
  • No private posts – If your report contains sensitive information then please redact/censor private information. If this is not possible, because it is material to the issue being filed, then please file a support ticket if it is personal in nature or security report if it represents a vulnerability.

Timeline and migration details

Jira access will end in early February. In the time leading up to that date we will be performing backups, migrating existing issues to their new home on Github, and allowing residents to use and provide feedback on the new engagement portal.

image3.png

Details about the issue migration process, such as how to find Jira issues post jira.secondlife.com shutdown will be talked about in a future post. Until then, we are excited to see new feature requests and reports over at feedback.secondlife.com.

Conclusion

Making a significant change like this is no small task. Staff and residents alike have grown deeply familiar with jira.secondlife.com through countless hours spent using the site. We hope you will have patience as we migrate data, build documentation, develop new muscle memory and smooth out wrinkles in tools and processes. These updates, along with changes like moving our engineering organization to Github and Github Actions, are part of a larger initiative to modernize Second Life development. The future is exciting, and we hope you can bear with us as we drive down the path to get there.

Have A Great Rest Of Your Week And Weekend From All Of Us At Zoha Islands/Fruit Islands

Happy New Year

Join the Excitement of Fun and Educational Community Events in Second Life!

 

American Cancer Society.jpg

Happy New Year, Second Life Residents! If you’re eager to kick off 2024 with a burst of excitement, here are some fun and educational community-driven activities and events lined up throughout the year. Enroll in building classes, attend lively festivals, and immerse yourself in educational conferences throughout the coming year. 

Relay For Life – Unveiling the Power of Unity

desination-preview-image-american-cancer-society

American Cancer Society

The official home of the American Cancer Society in Second Life. Since 2005, cancer patients, caregivers, and volunteers have been able to receive services and support from the ACS in SL without having to leave the virtual world. Visit the island to learn more or to make a donation to fund the world’s largest and most successful cancer research program. More info at relayforlife.com/secondlife

Go on a journey of compassion and support as Relay For Life of Second Life events kick off this year. Mark your calendars as registrations open this month. SL Living Expo, Fantasy Faire, and other event dates have already been announced. Don’t miss out on any details – follow the American Cancer Society Google calendar for all the info! 

Burn2 – Festival of Community, Art, and Fire

desination-preview-image-burn2

Burn2

Experience BURN2, the festival of community, art, and fire that brings the culture and cool of Burning Man to the metaverse. Learn more at www.burn2.org

Experience the virtual rendition of Burning Man in Second Life with Burn2! With captivating events every quarter, their first event, Winter Burn, starts on January 26th. Explore the details on their website and get more info about their weekly meetings and events in their Google calendar. It’s a virtual festival you won’t want to miss!

VWBPE – Unleashing Educational Innovations

VWBPE-Official-Logo.png
The Virtual Worlds Best Practice in Education (VWBPE) is a community-based open conference that provides opportunities for participants in all virtual worlds to share current teaching, learning, and research practices in 3D virtual environments. This year’s theme is “Mythic Origins” and it runs from March 14-16, 2024. Join the event for three days of lectures, workshops, discussions, games, and fun! It’s a must-attend event for anyone passionate about the intersection of virtual environments and education. Learn more on their website at vwbpe.org.

VWEC – Igniting Educational Conversations

Continue to elevate your educational journey with the Virtual Worlds Education Consortium (VWEC) Eduverse! If you’re passionate about fostering collaboration among educators and navigating the virtual landscape, this is the destination for you. You can learn more about VWEC from the Spotlight interview of three of their coordinators. Additionally, you can check their website and their Google Calendar to attend their daily events and fireside chats.

Virtual Ability – Empowering Lives in Virtual Worlds

Virtual Ability, a non-profit corporation founded in 2007, is dedicated to enabling individuals with a wide range of disabilities to flourish in online virtual worlds. They have two major events throughout the year, keep an eye on their website for more information coming soon: 

  1. Mental Health Symposium (May): In recognition of Mental Health Awareness Month, Virtual Ability hosts the annual Mental Health Symposium. This event serves as a platform to share crucial information about mental health and disabilities with the broader population. The cross-disability community within Virtual Ability includes members dealing with various mental health issues. The symposium not only offers a chance for community members to learn from experts they might not encounter otherwise but also opens the doors for the general public to attend a professional conference at no cost.
  2. International Disability Rights Affirmation Conference (October/November): Taking place around October/November each year, this conference is a testament to Virtual Ability’s commitment to advocating for disability rights globally. Join this empowering event that brings together voices from the disability community to discuss, affirm, and advance the rights of individuals with disabilities.

Builder’s Brewery – Crafting Dreams Since 2008

For all aspiring builders out there, Builder’s Brewery is your go-to destination. Established in 2008, it stands as one of Second Life’s oldest hubs for learning. Dive into free training classes covering everything from building to scripting, textures, mesh, animations, and more. Check their schedule of classes on their Google Calendar.

 

Find even more educational destinations and exciting events in the Education, Help & How To, and Featured Events categories on the Destination Guide throughout the year!

But wait, there’s more! Along with these community-driven activities, we here at Linden Lab also have a lot in store for 2024 – including the Valentine Shop & Hop which is about to open on February 1st, and of course our 21st birthday celebrations in June! 

Get ready for a year filled with excitement, creativity, and unforgettable experiences in Second Life. Don’t miss out on the action – stay connected: follow our Featured News blog, sign up for our weekly email newsletter, and connect with us on social media.

Let the adventure begin, happy 2024!

Happy New Year From All Of The Staff At Zoha Islands/Fruit Islands Stay Tuned For Estate Updates and Upgrades.

Project Viewer: Group Bans

Editor’s Note: Thank you to the blog “Living in a Modemworld” which provided the basis for this post.

One of the peskiest problems that businesses, clubs and other public groups have are griefers and other pests who join groups, spam the group and then leave or are kicked out only to return over and over again. Or a disgruntled former employee or customer decides to use the group as a venue for airing their grievances. Either way, having a “click here to join” open group means that you are also opening yourself up to problems.

So how to solve this? Other than simply chasing out each person as they cause trouble, and watching them come back over and over again, or they create alts to wreck havoc and spam your group, there has not been a viable solution until now.

As of June 18, 2014, Linden Labs has released a project viewer that allows for group ban. This viewer was actually released on June 17th, but wasn’t active on all servers until June 18th. This viewer (version 3.7.8.290887), as its name suggests, allows group owners (and those they nominate by role) to ban individuals from their group.

These group bans are enforced on the server side, similar to the way that parcel and estate bans work, and provides a viable way to remove pests from a group and keep them from re-joining. Eventually this will be part of the release viewer, but this project viewer allows users to get a taste of the features of this viewer. This will make SL group chat a lot more peaceful for most residents.

In the blog Living in a Modemworld, the author noted the following:

• By default, only a group’s Owners role has the Manage Ban List ability for banning other avatars from a group /removing avatars from the ban list

• The ability can be granted to other roles, if required

• Roles which are granted this ability are also granted the Eject Members from this Group and Remove Members from Roles abilities

• The ban list for a group can store a maximum of 500 entries. When this limit is reached, some avatars must be removed before others can be added

• Group Owners cannot be banned from a group (just as they cannot be ejected)

• When a group member is banned from the group, they are automatically ejected and will receive the usual ejection notification, but will not receive any notice that they have also been banned

• A user who is banned from a group cannot join it either directly or through an invitation

• If a group member is banned while using group chat, they may be able to continue using it until they close the group chat window (this problem also exists when ejecting someone from a group when they have the group chat window open)

• Any attempt to invite one or more banned avatars into a group, whether individually or as a part of a list, will generate the message: “Some residents have not been sent an invite due to being banned from the group.”

Obviously, it is not without it’s limitations, as if the avatar causing a problem has group chat open when they are banned, they can continue to continue to post even after being banned, and if someone is serious about spamming your group, or airing their grievances, if they leave the group chat window open indefinitely and don’t log out, they would be able to continue to cause a problem. However, hopefully eventually they will tire of their silly behavior and move on.

In the Release Notes from the project viewer wiki, it answers some important questions for group owners:

How do I ban somebody from my group?

1. Login with a viewer that supports group ban
2. Ensure that you have “Manage ban list” ability
• This information is found in the group info floater, under ‘Roles’ -> ‘ROLES’ -> ‘Allowed Abilities’ panel -> ‘Group Ban’ section
3. To ban via the group member list,
• Open the group info floater’
• Open ‘Roles’ -> ‘MEMBERS’, and select the group members you wish to ban
• Hit the ‘Ban Member(s)’ button
• The selected group members will be ejected from the group and added to the ban list
4. To ban any user from your group (a member or not)
• Open the group info floater
• Open ‘Roles’ -> ‘BANNNED AGENTS’
• Hit the ‘Ban Resident(s)’ button
• Using the people picker floater, find the avatars you wish to ban
• Hit the ‘Ban Residents’ button
• The avatars will be added to the ban list. If they were group members, they will also be ejected from the group.

Conversely, the wiki discusses how to unban someone:

How do I unban somebody from my group?

1. Login with a viewer that supports group ban
2. Ensure that you have “Manage ban list” ability
3. Open the group info floater
4. Open ‘Roles’ -> ‘BANNNED AGENTS’
5. Select the banned agents you wish to unbar
6. Hit the ‘Remove Ban(s)’ button

This group ban viewer is compatible with Windows, iOS and Linux.

Please visit the Modemworld blog; Inara Pey has some awesome pics and more information.

This viewer is a huge step forward in giving group owners a tool for removing and permanently dealing with disruptive avatars.

Related links:

Living in a Modemworld
Release Notes/Second Life Project Group Ban

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

Phoenix Firestorm Question and Answer Session

One thing that SLers often disagree about, is which viewer to use — the SL official viewer, Firestorm, Singularity — the list goes on. Each person has their favorite, and each person’s system handles one viewer better than another.

For me personally, I was madly in love with Singularity. It did everything I wanted it to, it was user friendly, it had the best features of Firestorm and SL viewer meshed into one… I was a happy girl. However, for some reason the last time I upgraded the viewer, I’ve been having rendering problems, and sadly I’ve had to start trying out other viewers. I saw that Firestorm finally had a 64-bit viewer, so I downloaded it, albeit a bit apprehensively, since both the SL viewer and Firestorm used to make me crash like crazy.  I was hoping the 64-bit version, coupled with the graphics card upgrade I made recently, would prevent the crashies like I used to have.

I’ve been using Firestorm for about a week now, and I really like it. I still miss some of the simpler features of Singularity, but the rendering problem was just too much for me to deal with. It was impossible to view SL properly.

One of the nicest things about Firestorm, is that it is the leading third party viewer, and it has amazing in-world support, including free classes that Firestorm staffers teach in-world. Recently, they taped a two-hour session where they discussed some of the issues that Firestorm users have brought up, starting with a discussion about the problems many users have been having with Norton Anti-virus and other anti-virus software. It sometimes interfering with the ability to use Firestorm properly, because the software identifies the Firestorm coding as a trojan horse and often quarantines it before it can be stopped, and the user cannot get it out.

After doing a “flame and shame” post on Twitter, they got an immediate tweet back from Norton apologizing for the problem, and within the hour, a representative from Norton had created an SL account and logged his avatar in world, found the Firestorm sim and came over to help facilitate the problem! This was someone who had never been in SL before in his life, and they felt the problem was serious enough to create an avatar to come help. Firestorm staffers were very impressed.

The video is quite long, but you can listen to it in the background while you do other things but it addresses many of the common issues, besides the anti-virus problem. It is very interesting to get an insider’s view of the viewer creation and update process, and the burnout many support people experience after a new release is issued and the vitriol that comes at them from users who have problems with the updates. It also has many good tips on how to deal with viewer problems, especially ones that seem to crop up overnight and for which they get blamed.

Have a listen; even if you’re not a Firestorm user, it has some very good insights into the workings of the viewers and their interactions with SL.

As always I remain respectfully yours,

~ Suzanne Piers, ZI Social Media Manager