EEP Tutorial: reflective floors

With EEP, it is now possible to have reflective floors at the parcel level that everyone can see, and contained within the parcel

Within Second Life there have been numerous ways to produce reflective floors within buildings – the most popular being to build a near-duplicate of what is in a room / building and inverting it “below” a textured, semi-transparent floor, allowing the duplicate to act as a reflection.

It’s a clever means of achieving the idea of reflections in polished floors, and has the advantage of being relatively “efficient” performance-wise (if a little hard on land impact, depending on the degree to which a person goes with the “reflected” items under the floor), as it means re-use of loaded textures and avoids rendering avatar reflections and mirroring movement. Although that said, the fact that the technique doesn’t show avatar reflections can spoil the effect.

Nitroglobus Roof Gallery provides an excellent demonstration of using a duplicate build to create the illusion of a reflective floor (although note the lack of any avatar shadow)

As has long been known, Linden Water can also be used as a means of producing reflective floorsthat can reflect avatars as well as objects. However, under Windlight, it has tended to suffer from a couple of observable weaknesses: if applied at the region level, it meant all water viewed from the region with produce the mirror effect – which could be a problem when outdoors (e.g. a mirror-flat surrounding sea); while to use it at parcel level meant using a viewer that accepted viewer-side parcel Windlight support – so anyone not using such a viewer would see a building / room with “flooded” floors.

EPP, with its simulator support for for parcel-level environment settings, means that is now possible to use Linden Water to create reflective floor effects within ground-level building that can more easily been seen by anyone entering the building, regardless of the viewer they are using. There are some pre-requisites involved, both it terms of creating the effect and viewing it, but even so, it is relatively easy to implement for anyone who wishes to do so.

Those prerequisites are:

  • As the approach uses Linden Water, it can only bee used at ground level (and on ground-level rooms of such buildings).
  • Some skill with terraforming is required, in particular:
    • Lowering / levelling land – this is important as the “reflective” floors must be at water level.
    • Ability to sub-divide land into parcel – this is particularly important if there is Linden Water is visible from outside the building with reflective floors, as you’ll be making changes to how Linden Water appears.
  • For parcels, you’ll need to have permission to set the environment at parcel level – if you do not own the region, and parcel level EEP support has been disabled via the region level controls, you will have to discuss the matter with the region holder / owner.
  • Those visiting the building must have Preferences → Graphics → Water Reflections set to All Avatars and Objects or Everything in order to see the water reflecting everything, including avatars.

The approach works best with your own builds, but can be used with pre-fab builds if they are modifiable, and can have floors modifed / replaced.

1 Prepare Your Land and Building

The first thing you need to do, is determine the shape of the floor space you wish to has as a reflective space and prepare the part of your land where it is to go.

  • Make a simple prim template of the shape of the room / building.
  • Place the template on your land where the room is to be positioned.
  • Keep in mind that depending on your location, you may want to sub-divide your land (if you have the necessary permission) so you can see natural-looking Linden Water when outside your house.
  • Use the terrafrorming tools in the Build / Edit floater to carefully lower the land under the template to expose the Linden Water.
  • Note that the “reflective floor” will, when the work is finished, need to sit just below the level of Linden Water. This means you may have to set it lower than the floors in other rooms on the ground floor of the building, or have the building itself surrounded by a mesh / prim surround to blend it with the ground level.
  • When you’re set, position the building and if necessary sub-divide your parcel.
  • Edit the building and:
    • Sset each of the floors you wish to be reflective to around 80% transparent – note that you may have to experiment with this setting, depending on the floor texture you use.
    • Apply a suitable texture for the reflective floor(s) (e.g. a wood texture for a polished wooden floor, or a marble effect for a public building).

2. Set the Water Environment

As noted above, you’ll need a suitable normal map to replace the one used for Linden Water.

  • The easiest way to do this is to use the Mirror Water environment asset that is included in the viewer under Library → Environments → Water.
  • You will need to copy this asset from its default Library location to your inventory (e.g. to the Settings folder – or a sub-folder within Settings, if you organise your EEP assets in sub-folders).
You can use the Mirror Water environment asset to help create your reflective floor. Make sure you copy it (e.g. via drag-and-drop) to your Settings folder
  • With the Mirror Water environment asset copied to your inventory, double-click on it to edit it. This will open the Fixed Environment – Water panel.
  • Within the panel, make the following changes (see the image below for reference):
    1. Set the water fog colour to white (note that depending on things like ambient lighting, the floor texture you use, etc., you may need to adjust this towards a more grey colour).
    2. Set all of the following to 0.0:
      • Fog Density Exponent and Underwater Multiplier.
      • Fresnel Scale.
      • X, Y, Z Reflection Wavelet Scale.
      • Large and Small Wave Speed.
      • Refraction Scale (Above) and (Below).
    3. Set Fresnel Offset to 0.50 (note that depending on things like ambient lighting, the floor texture you use, etc., you may want to adjust this up or down).
    4. Set Blur Multiplier to 0.80 (note that depending on things like ambient lighting, the floor texture you use, etc., you may want to adjust this up or down).
    5. From the Save / Apply Drop-down, select Save As and save your updated environment asset under a new name (e.g. “Reflective Floor”).
Adjusting the water settings for a reflective floor effect
  • Once saved, Select Apply to Parcel from the Save / Apply drop down to apply the environment to the parcel.

3. See How It Looks / Fine Tuning

You should now have a nicely reflective floor to your building, as shown below.

The finished product again, as per the banner image, note the avatar reflection and well as the reflections of in-world objects (1), and also the use of steps to access the low-set floor of the gallery from the outside “ground level” (2)

What’s more, if the building is sitting within its own parcel, when you leave the building, any visible Linden Water should look like natural water  / waves (although if you cam into the building or glimpse the “reflective floor” from outside of the parcel, it might look a trifle odd until you actually enter the parcel).

You might find that some additional “fine tuning” of the build is required to achieve a perfect result. If you’ve placed your floor a little above the level of Linden Water, for example, you may find your avatar “floats” over its reflection (below left), or if the floor is set a little too far below the level of Linden Water, the avatar and reflection may appear to “merge” at feet / ankles. But errors can be corrected with careful adjustment of your floor either down or up.

You may have to adjust the floor level relative to the Linden Water level to prevent avatar reflections giving the impression avatars are floating above the floor (l) – or standing with feet embedded in it – and actually standing on the floor (r).

Conclusion

There are still some limitations on the effectiveness of this approach: as noted above, it can only be used for ground-level interiors, and the effect does require visitors to have their graphics preferences set to reflect avatars in Linden Water. However, once set-up, it can add a certain edge to places like stores and galleries.

I’m not sure how much of a performance hit would occur in viewers trying to render a lot of avatars and their moving reflections in a ballroom or other dance venue, so these might require greater consideration. But if you do want to have a different ground-level flooring for your building, and you can meet the prerequisites noted above, it might well be worth giving it a go.

Tutorial: Viewer Camera Presets

The default viewer camera placement has long been the bane of the Second Life viewer. Placing the camera well above and behind the avatar, it gives an awkward over-the-head view of the world, rather than the more intuitive over-the-shoulder view seen in many video games.

While the camera’s debug settings have allowed a custom camera preset to be set-up, it has never really been possible to easily create, save, and swap between presets according to need.

Table of Contents

The Camera Presets controls, developed and contributed by Jonathan Yap, the developer responsible for the graphics presets options in the viewer (see Avatar Complexity and Graphics Presets in Second Life for more), changes this. It is a capability that allow users to create one more more custom camera presets within the viewer to suit particular needs and then save them. This means, for example, you can now have a camera position for general exploring, another suitable for combat games, another for building, etc., all of which can easily be accessed and used at any time.

This tutorial explains how to create and use presets via Camera Presets options.

Note: at the time of writing, the camera presets options are only available in the official viewer, version 6.4.2.541639 or later.

UI Elements

There are five UI elements associated with creating and using camera presets:

  • The Camera Presets icon and drop-down – presenting the means to quickly access and use created camera offsets.
The Camera Presets icon, found in the top right of the viewer window, and a populated version of the drop-down that can be displays on clicking on it.
  • The Camera Controls floater. This provides access to provides access to the following:
    • The familiar “on the fly” controls for positioning the camera / selecting any of the pre-set camera positions, setting the camera focus or switching to Mouselook. These can also now be used to create a custom camera preset.
    • Camera Position floater for creating new camera presets numerically.
    • Save Camera Preset floater – save any preset you have created or replace an existing preset with new values.
    • My Camera Presets floater – allows you select and delete any preset you have created, or reset your camera to one of the viewer’s default front, side or rear camera positions.
    • In addition, the Camera Controls floater includes a drop-drop menu to provide quick access to any custom camera presets you have created.
The Camera Controls and camera presets floaters – click for full size, if required

Creating a Custom Camera Preset

Using the Camera Controls

  1. Open the Camera Control floater by:
    • Hovering the mouse over the Custom Preset icon at the top right of the viewer window to open the drop-down and then clicking the Open Camera Floater button OR.
    • Clicking on the Camera Controls (Eye) button in your viewer’s tool bar, OR
    • Selecting Me→Camera Controls… from the viewer menu bar.
  2. With the Camera Control floater open, clicked the required view button (Front, Side, Rear) if required.
  3. Use the camera orbit, slide and zoom controls on the left of the camera floater to position your camera as you would like it to be relative to your avatar.
  4. When you are satisfied with the camera position and angle, click Save As Preset button in the floater, and:
    • Either make sure the Save As New Preset radio button is selected and type a name for the preset in the text box.
    • Or click the radio button for Replace a Preset, then click the button to display a list of current presets and highlight the one you wish to replace (including one of the three default positions, shown in italics).
  5. When you have entered a name or made your choice, click Save.
Using the camera controls to create a camera preset

Using the Precise Controls

If you have a numeric set of camera and focus offsets you use (e.g. such as those provided by Penny Patton, or use the table below to set your camera to some typical view points):

  1. Open the Camera Control floater by:
    • Hovering the mouse over the Custom Preset icon at the top right of the viewer window to open the drop-down and then clicking the Open Camera Floater button OR.
    • Clicking on the Camera Controls (Eye) button in your viewer’s tool bar, OR
    • Selecting Me→Camera Controls… from the viewer menu bar.
  2. In the Camera Controls floater, click on Use Precise Controls.
  3. In the Camera Position floater:
    • Enter the X, Y and Z figures for the camera offset position.
    • Enter the X, Y, Z figures for the focus offset position,
    • Use the slider to set how near / far the camera is to be positioned from your avatar.
  4. When you are satisfied with the camera position and focus, click Save As Preset button in the floater, and:
    • Either make sure the Save As New Preset radio button is selected and type a name for the preset in the text box.
    • Or click the radio button for Replace a Preset, then click the button to display a list of current presets and highlight the one you wish to replace (including one of the three default positions, shown in italics).
  5. When you have entered a name or made your choice, click Save.
Setting a precise position for a camera preset

The following table offers Penny Patton’s recommended positions for over-the-shoulder camera presets.

Over the Left Shoulder
Centre
Over the Right Shoulder
Camera Offset
X= -2.0
Y= 0.4
Z= -0.2
X= -2.0
Y= 0.0
Z= -0.2
X= -2.0
Y= -0.4
Z= -0.2
Focus Offset
X= 0.9
Y= 0.7
Z= 0.2
X= 0.9
Y= 0.0
Z= 0.2
X= 0.9
Y= -0.7
Z= 0.2
Offset Scale Slider
1.5 1.5 1.5

Using Your Custom Presets

From the Presets Icon

  1. Hover the mouse over the Custom Preset icon at the top right of the viewer window to open the drop-down.
  2. Click on the required preset name to select it.

From the Camera Controls Floater

  1. Click on the Use Preset button in the Camera Controls floater.
  2. A drop-down of custom camera presets is displayed.
  3. Click on the required preset name.
  4. The preset is selected, and the button updates to display the preset’s name.
Using a custom camera preset

Deleting or Resetting Default Presets

Notes:

  • You can only delete custom presets and reset default presets.
  • No confirmation is requested: actions will be immediately implemented – so if you have overwritten one of front, side or rear camera position presets, your custom version of that preset will be lost when reset.
  1. Display the Camera Controls floater.
  2. Click the gear icon.
  3. The My Camera Presets panel opens (may default to the top left of your screen).
  4. Hover the mouse over the preset you wish to delete or reset.
    • Custom presets will display a trash can. Click it to delete the preset.
    • Default presets will display a reset icon. Click it to return the preset to its original values.

Tutorial: Environment Enhancement Project (EEP)

Note: As I’ve had a number of Firestorm users directed here from the Firestorm Team’s EEP Beta release blog post who have commented directly to me about that release, please note that I am aware of it, and in fact blogged it at the time it was made available – see Firestorm 6.4.5 Beta: EEP and Camera Presets – which highlights some of the additional EEP / Phototools integration work the Firestorm team has carried out.  

EEP, the Environment Enhancement Project, is a set of environmental enhancements designed to replace windlight XML settings to control the water and sky environments seen in Second Life, and provide a wide range of additional capabilities for region holders, parcel holders and general users. It represents a fundamental shift in how environment settings are used and applied

In brief EEP:

  • Uses environment objects that you can keep in your inventory and / or share with others – including selling (subject to the SL permissions system) via in-world stores and on the Marketplace.
  • Provides parcel-level control of environments.
  • Allows up to four different, independently controlled sky layers.
  • Allows the Sun, Moon and Cloud textures to be replaced with custom textures uploaded to the viewer.
  • Provides an extended day cycle of up to 168 hours (thus allowing a 7-day, 24-hour day / night cycle to be defined, for example).
  • Allows users to override region / parcel settings as seen within their own viewer for the purposes of photography, etc.
  • Provides new LSL functions to allow scripts to interact with parcel environments.

In addition, key aspects of EEP are:

  • Estate / region / parcel settings are simulator-side, and so by default are automatically seen by anyone using any EEP enabled viewer on entering the region / estate / parcel.
  • Provision of a Personal Lighting capability that allows photographers, etc., to make rapid / temporary changes to an region / parcel’s environment visible only in their viewer.
  • Allows environments settings to be applied to your own avatar, allowing you to see the same environment (sky, clouds, Sun / Moon position, etc.) wherever you go in-world – useful for vehicle drivers travelling across multiple regions.
Table of Contents

This tutorial is designed to walk you through the essentials of EEP, including the terminology used. It is split into a number of sections:

  • Terminology and Concepts – key terminology and concepts with EEP.
  • The viewer UI elements associated with EEP.
  • An overview of creating and editing EEP assets.
  • An overview of applying EEP settings
  • Breakdowns of the floaters used to create Sky, Water and Day Cycles in EEP.
  • An overview of importing windlight XML files into the viewer and saving them as EEP settings / assets.
  • A summary of EEP LSL resources with links.

Some of these sections are self-contained, other can be used together (e.g. creating assets, using the Sky, Water and Day Cycle floaters, and applying EEP settings). To further assist referencing, major topics appear on their own page – please make sure you use either the table of contents or the page numbers at the foot of each page for ease of navigation.

Official information on EEP can be found in the EEP section of the SL wiki.

Note: at the time of writing this piece, the official Second Life viewer – version 6.4.0.540188, dated April 15th (or later) to see / use EEP capabilities. However, TPVs will be releasing version supporting EEP in due course. Check their websites, listed in the panel on the right, for updates that may not be covered in these pages.

My sincere thanks to Rider Linden, EEP maestro, for his assistance in the writing of this tutorial.

As well as bringing a range of new environment capabilities, EEP also lets you use custom textures for the Sun and Moon (and clouds). So Isla Pey can appear with Earth slowly setting, and Jupiter and one of the Galilean Moons also strangely in the sky! Note that both the size of the “sun” and “moon” textures can also be adjusted

Terminology and Concepts

EEP uses some key terminology that should be understood.

  • Settings: used to define the environment you see. There are three settings types:
    • Sky: define the atmosphere and lighting for a day (or night); the movement, density, etc., of the clouds; and the appearance of the Sun and  / or the Moon (which remain in a fixed point in the sky).
    • Water: define the appearance of Linden Water (prim or mesh animated water is not affected): water colour and reflection; wave movement; amount of light refraction, etc.
    • Day Cycles: collections of Sky and Water settings that are combined to present a dynamically changing environment over a user-defined time period representative of a “day” (by default this is set to the legacy Second Life day / night cycle of 4 hours, but can be extended out to represent physical world time periods of up to one week).
    • Note that Sky and Water settings are referred to as Fixed Environments.
  • EEP assets: physical “containers” for storing EEP settings. These are inventory items that by default, are stored in the new Settings folder in your inventory (see below), they are split into three types:
    • Sky – Sky settings. Icon: a blue sky with clouds.
    • Water – Water settings. Icon: a water droplet.
    • Day Cycle – for Day Cycles. Icon: a split Sun / Moon.
    • EEP assets (permissions allowing) can be exchanged, given away, and / or sold through a store or via the Marketplace.

Note that EEP settings are:

  • Created or edited using their corresponding EEP asset (e.g. to create Sky settings, you use the Sky asset type).
    • New EEP assets can be created directly from inventory, just like any other system inventory asset type (notecard, clothing item, gesture, script, body part).
    • Creating / editing EEP assets and settings is covered in depth in my EEP tutorial.
  • By default stored within a new system folder in inventory – the Settings folder. This folder may be hidden until such time as an EEP asset is created.
By default, EEP assets are stored and created in the Settings folder in your inventory (l). If you want, you can manually sub-divide your settings into suitable folders for easier tracking (r)

EEP Permissions

There are a few notes on permissions associated with EEP settings / assets.

  • Copy/no-copy: EEP settings assets may never be marked no-copy. A person who owns a setting object may always make a copy of it in their inventory.
  • Transfer/no-transfer: the no-transfer permission is persistent. If you import any no-transfer day or water setting into a day cycle, that day cycle will also become no-transfer. Once saved, this change can not be undone.
  • Modify/no-modify: these permissions behave as normal.

EEP Library Assets

EEP includes a collection of around 200 Sky, Water and Day Cycles, together with a set of textures that can be used for clouds and / or to replace the Sun and Moon, etc.

  • These are located in Inventory (CTRL-I) → Library → Environments.
  • They can be used in once of two ways:
    • Unmodified, directly from Library → Environments.
    • By copying them to your inventory (e.g. to your own Settings folder, if it is visible through the creation of an EEP asset; if not, any other folder can be used), where they will become modifiable, allowing you to adjust them / use them to create your own settings.
    • See my EEP Tutorial for editing / modifying EEP assets and settings.

Differences to Windlight

  • EEP settings are stored in inventory assets, not as XML files saved to your computer.
  • Because they are server-side, EEP settings are by default seen by any viewer affected by the. This can mean:
    • Parcel owners using a specific set of environment settings no longer have to request visitors manually switch to them.
    • Settings are no longer dependent on visitors to a parcel with a custom environment having the precise Windlight XML file stored on their computer.
  • EEP setting do not require any external storage (e.g. Dropbox) in order to be shared with other users, if they are to be given away.

Tutorial: Second Life Names Changes

via and © Linden Lab

Second Life offers Premium Account holders the opportunity to change the the first name, the last name or both the first and last names of their account at any time, or to revert to any name they name have used in the past (again, first name, last name or both).

This Tutorial is intended to provide an overview of using the Name Change capability.

Important Points

First some points to note:

  • Premium members may change their first name or their last name or both their first and last name whenever they wish.
    • First names are free-form.
    • Last names are selected from a list, with the available names updated periodically.
  • There is a fee applicable each time the capability is used. This fee is displayed as a part of the Name Change process.
    • VAT at applicable rates will be added to accounts in VAT-paying countries.
  • Once a first name+ last name combination has been applied to an avatar account, it cannot be used by any other account (so “Josephine Bloggs” cannot use Name Change to become “Inara Pey”).
  • It is possible for you to revert back to any previously-used name assigned to your account.
  • If you are Premium and use the Name Change capability, then subsequently downgrade to Basic, you will retain whatever avatar / account name you have at the time you downgrade. You will not not “revert” to any past name you may have had, and you won’t be able to change you name again until such time as you re-up to Premium.
  • Name Changes is not replacing Display Names – these will remain available at no charge to all who wish to use them.
  • Name changes are made via the Second Life dashboard, and you must be logged-out of Second Life in order to make sure any Name Change you make is correctly applied to your account.

Changing Your Name

Note: It is possible (and based on some feedback received), that a name change might take a little time to propagate through SL’s various services, which may have some impact on things like scripted objects such as security systems.

Premium Members can change their names as follows:

  • Log out of the viewer if you are currently in-world.
  • Log on to your dashboard at secondlife.com.
  • Click Account on the left-menu.
  • Click on Change Name.
  • The Change Your Account Name page is displayed. This comprises:
    • The account availability of Name Changes (including a link for Basic account holders to upgrade to Premium.
    • The fee that will be applied to your account, including and VAT that may be added.
    • A reminder than you can change your first name, your last name or both.
    • An option to go ahead and change your account name.
The Change Your Account Name page
  • Click the Next Step button to proceed.
  • The Choose a New Name page is displayed. This comprises three parts:
    1. The Change First Name option.
    2. The Change Last Name option with a list of currently available last names names.
    3. A list of previous last names you have used – if you have not previously used Name Changes, only your current last name is displayed.
The Choose a New Name page, showing the three options for changing your first name (1); selecting an new last name from a list of currently available names (3), and for any previously-used last names (if available – 3)

Change Your First Name Only

  • Leave the Change First Name option checked.
  • Use the text input field to enter your desired first name.
  • Uncheck the Change Last Name option.

Change Your Last Name Only

  • Uncheck the Change First Name option.
  • Leave the Change Last Name option checked.
  • Click the radio button next to last name you would like to use.

Change Both Your First and Last Names

  • Keep both the Change First Name option and the Change Last Name option checked.
  • Enter your desired first name in the text input field under Change First Name
  • Click the radio button next to last name you would like to use.

Reverting to a Previously Used Name

If you have previously used Name Changes, and would like to change back to an “old” name:

  • Enter the first name in the Choose a First Name text input field (if required).
  • Click on the require last name from the list of your previously used Last Names (if available).

Completing the Change

  • When you are happy with the name(s) you have set / selected, click the Review Changes button.
  • A summary of your changes is displayed (if you have made no changes, you’ll be taken back to the Change Your Account Name page).
The Name Change summary – use it to make sure you are happy with the name(s) you have selected
  • Make sure the details are as you want them, or use the Go Back link to change your selection(s).
  • If you are certain of the changes:
    • Log out of the viewer if you have not already done so.
    • Click on Continue to Checkout.
  • On the check-out page, you are presented with your payment options:
    • Via an US dollar balance on your Tilia account.
      • Requires acceptance of the Tilia Terms of Service, if you have not already done so.
      • If you have a sufficient US dollar balance on your Tilia account, but do not with to use it, click the Don’t Use button.
    • Via any credit / debit card already tied you your Second Life Account.
    • By clicking the More Payment Options… and making a selection (e.g. assigning another credit / debit card to your account).
  • When you have selected your preferred payment method, click the blue Buy Now button to complete your Name Change.
Name Change payment options

SL Jira Tutorial part 2: feature requests

Introduction

This tutorial has been written as a guide to filing SL bug reports and feature requests using the Second Life Jira. It comprises two parts:

Bug Reports:

  • What is / is not a bug report.
  • Filing a bug report.
  • What a Security Exploit is.
  • Filing a Security Exploit report.
  • What happens to a report once filed.

Feature Requests (this section):

  • What a feature request should be.
  • Filing a feature request.
  • Using a proposal.
  • What happens to a feature request once filed.

Both sections are self-contained and can be bookmarked / referenced independently of one another for ease of use. However, to further assist in finding information, the table of contents on the right can be found in both part of the tutorial, and can be used to reference specific sections of either one.

Table of Contents

Acknowledgements and Thanks

I would like to express my thanks to the following people for their input into this tutorial and for sanity checking the contents: Alexa Linden, Grumpity Linden, Kyle Linden, Soft Linden and Whirly Fizzle.

What is the Jira For?

As noted above, the Jira is primarily for:

  • Filing reports on bugs that impact Second Life (covering the viewer, the simulator and the web), and which in doing so adversely impact the user experience.
  • Putting forward suggestions on features and capabilities that might enhance Second Life for users.

The Jira can also be used by third-party viewer (TPV) developers to have their viewer added to the TPV Directory, or for reporting TPVs that may be violating the TPV Policy / Second Life Terms of Service. Both of these options fall outside the scope of either part of this tutorial.

When using the Jira, please keep in mind:

  • It should not be used to report problems which are specific to you or for general enquiries about things like log-in issues; tier payments; running Second Life on a specific hardware configuration, land issues, and so on.
  • If you believe the bug presents a security risk (such as allowing griefing or exposing sensitive information), you should use the SEC bug report, details of which can be found in Security Exploits.
  • When adding comments to a report / feature request (see Commenting on filed requests), these should focus on technical feedback / input pertinent to the issue/ request being made. Personal opinion or general discussions on a bug / feature request can be held through the Second Life forums.

Feature Request Overview

Feature requests are ideas for the technical improvement of Second Life that are submitted to Linden Lab by users. While not all are accepted / actioned, many enhancements have come about as a direct result of submitted feature requests. However, when considering filing a feature request, some basic points need to be considered:

  • The chances of how and when a feature request being adopted depends on a number of factors, including:
    • How well the case is written up:  the more informed a feature request is, the more likely it is to be considered by Linden Lab. Think of a feature request as a mini project proposal.
    • Scope: requests that are focused on achieving a single, clearly defined goal are more likely to be viewed positively than requests that call for sweeping (and potentially vague) changes to SL.
      • It is better to file multiple feature requests on ideas / suggestions than to try to cram multiple ideas into a single request.
      • Remember, the Lab need to be able to digest your idea(s) and be able to see how they might fit with current work being carried out, or might fit with future work being planned. Keeping to one idea per feature request helps with this.
    • How the idea fits with the current roadmap of improvements: the Lab is constantly working to improve Second Life, and look at feature requests in terms of what is on their current roadmap of improvements. Requests that match what is planned many be implemented sooner than others.
    • How well it benefits the entire Second Life community: LL is especially interested in ideas that improve everybody’s experience. It is rare that resources are available for very special case needs.
    • Offer of code (viewer feature requests only): if a request for a new viewer feature includes code supplied under a contribution agreement, the feature might be adopted ahead of others / alongside of the Lab’s own work in enhancing the viewer, again allowing for the above points.
  • Use images and attachments.
    • Providing a mock-up image of how you’d like a new panel in the viewer to appear, or a diagram showing the flow of how a new feature would be used, etc., can be a lot clearer than a wall of text.
    • If the idea warrants it, don’t be afraid to provide an outline in the Feature Request form and then provide a more comprehensive project proposal as an attachment (see Using a Proposal, below).

Before You File a Feature Request

It is possible that the idea you have may already be the focus of a feature request, so please consider using the Jira search capability to look for similar ideas before submitting a request.

If you find that a feature request already exists for the idea, you can opt to click the Watch option (top tight of a feature request, under People) to receive updates to the Jira via e-mail (you can uncheck Watch should you no longer wish to receive these updates).

You can receive e-mail updates on a Jira by clicking the Start Watching… (l) option (under People in the top right of a displayed Jira). The option will update to Stop Watching… (r), indicating you’re receiving updates. Click the option again to stop receiving updates; the option will revert to Start Watching.

Filing A Feature Request

Setting the Project and Issue Type

  • Log-in to the Second Life Jira using your Second Life log-in credentials.
  • Click on the blue Create button in the top menu bar.
  • Check the top of the form and make sure:
    • Project is set to 1. BUG Project (BUG).
    • Issue Type is set to New Feature Request.
    • Use the drop-downs to set either, if required.
When filing a feature request, make sure Project is set to 1. BUG Project (BUG), and Issue Type to New Feature Request.

Completing the Form

  • Summary (required field): provide a concise summary of the feature request (also forms the request title).
    • If the request is related to a specific project (e.g. EEP), please include the project name at the start of the summary in square braces (e.g. [EEP]).
  • How Would You Like This Feature To Work (required field): provide an outline of how your proposed feature should work.
    • Be as clear and concise as possible.
    • Try to provide a step-by-step guide to how the feature would work.
    • If the feature is viewer-related and requires a new or updated UI panel, offer image mock-ups of how it should look using the Attachments option, and reference them here.
  • Why Is This Feature Important To You? How Would It Benefit The Community? (required field): describe why the feature would be useful to you / to Second Life users in general.
    • Be as clear as possible.
    • If the request is intended to overcome a specific shortfall in SL, outline what that shortfall is.
    • If there are a number of potential benefits, list them in turn.
    • If possible, include a use case on how the featured would be used, if implemented.
    • Include any relevant images that may help explain things, and reference them here.
  • Attachment: use this option to add any suitable attachments to the request (e.g. mock-ups of new / updated viewer panels).
    • Multiple images can be submitted, but ensure each is clearly labelled / annotated and properly referenced in the relevant text fields in the first part of the feature request form.
    • Keep in mind that individual images can be no larger than 10 Mb in size.

Note that feature requests do not have to be long or complicated. The image below illustrates a simple, straightforward request that has been accepted by the Lab.

Sample feature request, showing that they need not necessarily all be long and complex – click to enlarge, if required

Using a Proposal

If you are offering a significant feature request – such as a new user interface option for users, a new viewer or simulator capability, etc., – consider offering a complete proposal to the Lab, submitted as an attachment to a feature request.

A proposal can:

  • Let you summarise your idea in the Feature Request form, and then go into greater detail in your proposal.
  • Allow you to structure your idea clearly, and present it logically and together with related images (UI mock-ups, etc.).

Keep your proposal to a single idea, and don’t forget to explain how it should work and why it would be of benefit. It doesn’t have to be a treatise, just so long as it explains the idea, why you believe it is important and how it would benefit the SL community.

A proposal can be attached to a feature request as a .PDF file or included as a link to a publicly viewable Google Docs file.

For a good example of a feature request see the Hover Height proposal submitted to Linden Lab in 2015, and which led to the inclusion of the “on the fly” hover height adjustment capability in the viewer.

Submitting Your Feature Request

When you have confirmed the information is correct and as clear as possible, and any images / files you wish to include are attached, click the Create button at the bottom right of the form to file your bug report.

Refer to What Happens Next?, below, for information on what happens to a filed bug report.

Commenting on Filed Requests

Sometimes after filing a feature request, there may be additional information you wish to add. You can generally do this via the Comment button at the bottom of a feature request page.

  • Who can comment on a feature request depends on a variety of factors, including general permissions, the security level for the report (Public or Triagers and Reporters), together with the current status of the report (Open, Needs More info, Accepted).
  • If the Comment button is unavailable, you will need to request permission to make Jira comments. Send  an e-mail to letmein-at-lindenlab.com, giving your avatar name and a clear reason for requesting access.
  • Note that you do not need comment rights in order to file bug reports or feature requests.

What Happens Next?

The Jira Workflow

A submitted feature request follows a set workflow, as shown in the diagram below.

The Jira workflow – simplified
  • Awaiting Review: when you submit a feature request, it enters a queue for review (triage) by the Lab’s QA and Product teams.
  • Triage: incoming requests are triaged on a weekly basis. The outcome is generally one of the following, as indicated in the status area of the report:
    • Needs More Information: if the report is vague or not easy to understand or doesn’t contain sufficient information needed to understand the request, it will be flagged by the Lab as requiring more information from the reporter.
      • This sets the Needs More Info flag on the feature request, and in addition a comment is generally provided by the Lab as to what is required.
      • The reporter should review the request and any comment(s) recorded by the Lab and attempt to provide the missing information.
    • Information Provided: when additional information has been added to a request, it is essential the Info Provided button is clicked. This will update the bug report to inform the Lab that the information has been supplied. Note that a failure to click the button could result in a delay in a request being further actioned.
The Needs More Info flag (arrowed) and the Info Provided button
  • Accepted: the feature request is accepted by the Lab and cloned into their internal JIRA system for tracking.
    • However, Accepted does not mean a feature request will acted upon immediately. Rather, it may mean the Lab are sufficiently interested in the idea to keep track of it, but implementation may be held until such time as it fits / can be slotted into the SL development road map.
    • Sometimes, on further reviewing a bug report / feature request, Linden Lab may request even more additional information, and will re-open the original (see Needs More Information, above).
    • Once an accepted report / feature request has been implemented, the originating Jira will be Closed with a status of Resolved.
  • Closed: the request is not to be taken any further. Typically, a feature request will be closed and annotated with one of the following reasons:
    • Duplicate: there’s another feature request covering the same idea.
    • Unactionable: the described feature has been declined by the Linden Lab feature request review team.
    • Not Applicable: the reporter has decided to close the issue.
    • Resolved: the request has been implemented.

Where Next?

SL Jira Tutorial part 1: bug reports

Introduction

This tutorial has been written as a guide to filing SL bug reports and feature requests using the Second Life Jira. It comprises two parts:

Bug Reports (this section):

  • What is / is not a bug report.
  • Filing a bug report.
  • What a Security Exploit is.
  • Filing a Security Exploit report.
  • What happens to a report once filed.

Feature Requests:

  • What a feature request should be.
  • Filing a feature request.
  • Using a proposal.
  • What happens to a feature request once filed.

Both sections are self-contained and can be bookmarked / referenced independently of one another for ease of use. However, to further assist in finding information, the table of contents on the right can be found in both part of the tutorial, and can be used to reference specific sections of either one.

Table of Contents

Acknowledgements and Thanks

I would like to express my thanks to the following people for their input into this tutorial and for sanity checking the contents: Alexa Linden, Grumpity Linden, Kyle Linden, Soft Linden and Whirly Fizzle.

What is the Jira For?

As noted above, the Jira is primarily for:

  • Filing reports on bugs that impact Second Life (covering the viewer, the simulator and the web), and which in doing so adversely impact the user experience.
  • Putting forward suggestions on features and capabilities that might enhance Second Life for users.

The Jira can also be used by third-party viewer (TPV) developers to have their viewer added to the TPV Directory, or for reporting TPVs that may be violating the TPV Policy / Second Life Terms of Service. Both of these options fall outside the scope of either part of this tutorial.

When using the Jira, please keep in mind:

  • It should not be used to report problems which are specific to you or for general enquiries about things like log-in issues; tier payments; running Second Life on a specific hardware configuration, land issues, and so on.
  • If you believe the bug presents a security risk (such as allowing griefing or exposing sensitive information), you should use the SEC bug report, details of which can be found in Security Exploits.
  • When adding comments to a report / feature request (see Commenting on filed reports), these should focus on technical feedback / input pertinent to the issue/ request being made. Personal opinion or general discussions on a bug / feature request can be held through the Second Life forums.

What Makes a Good Bug Report?

Ideally, a good bug report should:

  • Focus on a single issue.
    • Even if problems appear to be related, resist the urge to incorporate multiple issues on a single report, as this can confuse matters when trying to triage a report.
    • Instead, file multiple bug reports and cross-reference them. Those with authority to do so can then formally cross-link the reports as related issues.
  • Be a set of directions, providing:
    • A summary of the issue encountered that can form the title of the bug report.
    • A clear description of what happened when the issue occurred.
    • A set of step-by-step instructions on what you were doing when the issue occurred that allow someone else to follow them and (hopefully) encounter your issue, helping them understand it.
    • A description of what you were expecting to happen had you not encountered the issue.
    • Information on the viewer you were using, your location in Second Life at the time the problem was encountered, etc., all of which can easily be obtained from the viewer, as described in the instructions, below.
    • Relevant supporting information. This might comprise one or more of: any error message which may have been displayed; a screen shot of the problem; the inclusion of relevant log files, if appropriate.

As a reminder: when filing a bug report please keep in mind that if the problem you’ve encountered doesn’t require Linden Lab to make a change that can affect all users, then it probably isn’t appropriate to file a bug report against it.

Before You File a Bug Report

Known Bugs

It is possible the issue you are encountering is already known, or the subject of an existing bug report. So before you file a new bug report please consider:

  • Checking the viewer release notes to see if the bug is listed as a Known Issue. This can be done in one of two ways:
    • From within the viewer you’re using via Help → About, and then clicking on the Release Notes link at the top of the panel.
    • By checking the release notes for viewers listed on the Alternative Viewers pages to see if the issue is recorded among them.
  • Using the Jira Search option to see if the issue has already been reported.

If you find that a bug report already exists for the issue, you can opt to click the Watch option (top right of a bug report, under People) to receive e-mail updates on the Jira (you can also uncheck Watch at any time to stop receiving updates).

You can receive e-mail updates on a Jira by clicking the Start Watching This Issue (l) option (under People in the top right of a displayed Jira). The option will update to Stop Watching This Issue (r), indicating you’re receiving updates. Click the option again to stop receiving updates; the option will revert to Start Watching This Issue

A Note to Users of Third-Party Viewers

Third-party viewers (TPVs) surface options / include capabilities that may not be visible / available in the official viewer. Because of this:

  • If you encounter a problem with a TPV that you think might affect users on other viewers, please check to see if it can be reproduced on the official SL viewer.
  • If you can reproduce the bug on the official viewer, please file a bug report through the Second Life Jira using / referencing the official viewer, not your preferred TPV.
  • If the bug only occurs with the TPV you are using, please file a bug report with the developers of the TPV through whatever means they provide. Bug reports filed on the Second Life Jira that only reference a TPV are subject to being closed without action.

Official SL Bug Report Information

Official information on the SL bug reporting is available at :

Filing A Bug Report

Setting the Project and Issue Type

  • Log-in to the Second Life Jira using your Second Life log-in credentials.
  • Click on the blue Create button in the top menu bar.
  • Check the top of the form and make sure:
    • Project is set to 1. BUG Project (BUG).
    • Issue Type is set to Bug.
    • Use the drop-downs to set either, if required.
When filing a bug report, make sure Project is set to 1. BUG Project (BUG), and Issue Type to Bug.

Providing Details of the Bug

Required Fields

The following fields of a bug report are mandatory:

  • Summary: provide a concise summary of the issue (also forms the report title).
    • If the bug is related to a specific project (e.g. Animesh), please include the project name at the start of the summary in square braces (e.g. [Animesh]).
  • What Just Happened?: provide a description of the actual behaviour you saw as a result of the bug.
    • Be as clear and concise as possible – the more information of a clear nature you can give, the better the issue can be understood and the bug investigated.
    • If you received an error message as a result of the bug, you can type or copy/paste it here.
  • What Were You Doing When It Happened?: give step-by-step instructions on how to reproduce the problem.
    • Treat this section of the form as if you are explaining the bug to someone who has never encountered it and / or has never used the function / capability being used when the issued occurred.
    • Make sure you list all the necessary steps that are needed to reproduce the issue as you encountered it, no matter how obvious these steps might appear to be.
    • Use the Attachment button (see below) to include any images of the issue as you saw it and which help to explain things. Make sure they are clearly annotated and cross-referenced in this section.
  • What Were You Expecting To Happen Instead?: give a clear and concise description of what you were expecting to happen instead of the bug.
    • If it helps, use step-by-step instructions here as well.
    • Use the Attachment button (see below) to include any images of what you expected to happen, if required / possible. Make sure they are clearly annotated and cross-referenced in this section.
  • Environment: use this section to provide information on the environment – viewer and simulator – in which you encountered the problem. This information can be obtained directly from the viewer as follows:
    • Make sure you are in the region were you encountered the issue (this must be done when reporting possible simulator bugs).
    • In the viewer, go to Help → About Second Life → Info tab.
    • Click on the Copy to Clipboard button at the bottom of the tab.
    • Paste the information into this field of your bug report.
Obtaining environment information through your viewer
Optional Fields

The following fields are optional, and can be used to provide any additional information you may feel is useful is helping to understand / reproduce / resolve a bug.

  • Is There Anything You’d Like To Add? use this section to add any further information you think might be of value in assessing the bug – or leave blank if not required.
  • Where: an additional field for entering the SLurl for the region where the issue was encountered (a Map link can also be used).
  • System: two fields to help refine the nature of the issue.
    • The first allows you to select the affected area of Second Life: viewer, simulator, SL website, Linden-made content in SL.
    • The second offers a series of further options based on the first section.
  • Attachment: use this option to add any suitable attachments to the report, such as images of the issue and / or of error messages or your viewer’s log files (see Log Files for more).
    • Multiple images can be submitted, but ensure each is clearly labelled / annotated and properly referenced in the relevant text fields in the first part of the bug report form.
    • Note that individual attachments can be no larger than 10 Mb.
  • Security Level: a drop-down to select the security level to be assigned to the report. These are:
    • Public – viewable to anyone logged-in to the Second Life Jira.
    • Triagers and Reporter: only viewable by those with specific Jira access and the person raising the report – anyone else trying to view it once filed will receive a “permission violation” message.
    • If you are unsure of which to set, leave this option as Public.

Log Files

One of the most useful aids for helping to deal with bug reports are Second Life log files. All viewer log files can generally be found in the following locations:

  • Windows log files location: C:\Users\[user name]\AppData\Roaming\SecondLife\logs.
  • Mac OS log files location: /Users/[user name]/Library/Application Support/SecondLife/logs.

The relevant log files you should include with your bug report are:

  • SecondLife.log: stores status and debugging output from the Viewer during the current logged-in session.
    • This file grows while the viewer is active. If it gets too large, it is trimmed by the crash logging application.
  • SecondLife.old: when the viewer re-starts, it renames the existing SecondLife.log to SecondLife.old. SecondLife.old is used when the Viewer reports a freeze in the previous execution.
  • SL_Launcher.log: stores status and debugging output of the launch and update processes that start the viewer or update it. This file is appended to, not overwritten, but will be trimmed over time.
  • SL_Launcher.old: back up copy of SL_launcher.log created from the prior launch.
  • SecondLife.start_marker: a marker file that should only live as long as the Viewer is running.

You can combine these log files into a compressed (ZIP) file for easier attachment to your bug report.

Submitting Your Bug Report

When you have confirmed the information is correct and as clear as possible, and any images / files you wish to include are attached, click the Create button at the bottom right of the form to file your bug report.

Refer to What Happens Next?, below, for information on what happens to a filed bug report.

Security Exploits (SEC)

A Security Exploit report is a special kind of bug report designed to deal with threats to Second Life, its Residents or content. Examples of Security Exploits include:

  • Exposure of real life Resident identity without consent.
  • Risk of destruction of content.
  • Permitting unauthorised access to Second Life/Linden Lab resources.
  • Compromising a client or server host, subjecting it to remote control, potential griefing vectors, etc.

There are two ways to file security exploits:

  • Via a Second Life Security Exploit report, as described here. This is the preferred method of raising such issues.
  • Via email to security-at-lindenlab.com.

Notes:

  • By their very nature, SEC bug reports are not available for public viewing.
  • SEC issues should be reported as soon as they are identified, together with all relevant viewer / simulator environment information.
  • The SEC project (and security mailing list) is only for reporting security exploits that might compromise a Residents identity or the Second Life Grid. All other requests including account issues and account security will not be addressed – these should be reported directly via the Second Life Support Portal.

SEC Bounties

Linden Lab offer a L$10,000 (approx US $40) bounty for each previously unknown exploit that can be verified. These bounties are generally awarded after the reporter helps confirm that an issue has been fixed, and are contingent on not disclosing the issue prior to Linden Lab resolving the issue.

Filing A Security Exploit Report (SEC)

  • Log-in to the Second Life Jira using your Second Life log-in credentials.
  • Click on the blue Create button in the top menu bar.
  • Check the top of the form an make sure Project is set to 2. Second Life Security Exploit (SEC). Use the drop-down to set it, if required.
  • Note that Issue Type will automatically default to Bug.
When filing a SEC report, make sure the Project drop-down is set to 2. Second Life Security Exploit
Basic Tab
  • Summary (required field): provide a concise summary of the exploit (also forms the report title).
  • Environment (required field): use this section to provide information on the environment – viewer and simulator – in which you encountered the problem. This information can be obtained directly from the viewer as follows:
    • Make sure you are in the region were you encountered the issue (this must be done when reporting possible simulator exploits).
    • In the viewer, go to Help → About Second Life → Info tab.
    • Click on the Copy to Clipboard button at the bottom of the tab.
    • Paste this information into this report.
  • Description (required field): provide a clear and unambiguous description of the exploit.
    • Provide step-by-step instructions on how the exploit can be revealed / leveraged and to ensure a “solid reproduction” of the issue.
    • Include information on all notable uses, events, indicators, outcomes, information exposed, etc., related to the exploit (and as relevant to the exploit).
    • If the exploit is specific to a location in Second Life, supply a SLurl or map reference to that location.
  • Attachment (optional): use this option to add any suitable attachments to the report, such as images showing how the exploit works and / or its outcome.
    • Multiple images can be submitted, but ensure each is clearly labelled / annotated and properly referenced in the relevant sections described above.
    • Note that individual attachments can be no larger than 10 Mb.
Advanced Tab
  • Priority (optional): set your considered priority for the issue. Note that this may be adjusted when the SEC report is triaged.
You can use the Advanced tab to set the severity of the exploit (This can also be done by the Lab when the issue is triaged)
  • Please do not complete any other parts of the Advanced tab of the form.

Submitting Your SEC Report

When you have confirmed the information is correct and as clear as possible, and any images / files are attached, click the Create button at the bottom right of the form to submit your bug report.

Refer to What Happens Next?, below, for information on what happens to a filed SEC report.

Commenting on Filed Reports

Sometimes after filing a bug report, there may be additional information you wish to add. You can generally do this via the Comment button at the bottom of a bug report page.

  • Who can comment on a bug report depends on a variety of factors, including general permissions, the security level for the report (Public or Triagers and Reporters), together with the current status of the report (Open, Needs More info, Accepted).
  • If the Comment button is unavailable, you will need to request permission to make JIRA comments. Send  an e-mail to letmein-at-lindenlab.com, giving your avatar name and a clear reason for requesting access.
  • Note that you do not need comment rights in order to file bug reports or feature requests.

What Happens Next?

The Jira Workflow

A submitted bug report follows a set workflow, as shown in the diagram below.

The Jira workflow – simplified
  • Awaiting Review: when you submit a bug report, it enters a queue for review (triage) by the Lab’s QA and Product teams.
  • Triage: incoming bug reports are triaged on a daily weekday basis. The outcome is generally one of the following, as indicated in the status area of the report:
    • Needs More Information: if the report is vague or not easy to understand or doesn’t contain sufficient information needed to reproduce a bug, it will be flagged by the Lab as Needs More Information from the reporter.
      • This sets the Needs More Info flag on the report. In addition, a comment is generally provided by the Lab as to what is required.
      • The reporter should review the report and any comment(s) recorded by the Lab, and attempt to provide the missing information.
    • Information provided: when additional information has been added to a report, it is essential the Info Provided button is clicked. This will update the bug report to inform the Lab that the information has been supplied. Note that a failure to click the button could result in a delay in the report being further actioned.
The Needs More Info flag (arrowed) and the Info Provided button (highlighted in red)
  • Accepted: the report is accepted by the Lab and cloned into their internal Jira system for tracking. However:
    • Accepted does not mean a bug report will acted upon immediately. There are a number of factors which may influence if / when it may be actioned, including things like the severity of a bug and work in progress which may help resolve a bug. As such, a bug report can remain as Accepted for an extended period of time. before any action is taken.
    • Sometimes, on further reviewing a bug report internally, Linden Lab may request even more additional information, and will re-open the original report to comment / update to allow users to do so. Therefore, you should always maintain a watch on the bug reports you have filed.
    • Once an accepted bug report has been actioned and the issue resolved, the originating report will be Closed with a status of Resolved.
  • Closed: typically, a bug report will be closed and annotated with one of the following reasons:
    • Contact Support: the issue is not a bug and should be handled through the Support Portal or Second Life Answers.
    • Expected Behaviour: what has been reported is seen as “normal behaviour”, and so no further action will be taken.
    • Duplicate: there’s another issue about the same problem.
    • Cannot be reproduced: the bug, as described, cannot be reproduced, and therefore cannot be investigated / resolved.
    • Unactionable: the described issue is not in a form that allows action to be taken (e.g. the report doesn’t define a bug / problem, etc.).
    • Not Applicable: the reporter has decided to close the issue.
    • Resolved: it is believed the issue has been fixed / resolved.

Where Next?