Improved Searching for Users and Worlds

We’ve updated Kitely today with new features for searching for users and worlds. We also made improvements to the advanced permissions system in Organizations.

Improved Search on Our Website

The Explore Worlds page now lets you select which Organizations you want to search in:

The default option is “Kitely and All Organizations”. This option finds the most possible worlds, since it searches for worlds in three places:

  • Public worlds in Kitely
  • Public worlds in any Organization
  • Private worlds in Organizations in which you are a member

Another option is “Kitely”. This option searches only for worlds that belong to Kitely, and excludes worlds that belong to Organizations.

If you belong to any Organizations then they’ll also appear in this listbox. This lets you search only for worlds that belong to a particular Organization. In the screenshot above, the option “Durion School of Wizardry” appears because I’m a member of that Organization.

In the search results, worlds that belong to an Organization have the Organization’s name appended to the world’s name. For example, see the search result “Orcs of a Feather @ Durion School of Wizardry”.

Find New Worlds

There are now over 15,000 Kitely worlds, and that number continues to grow. In order to help you discover new worlds, we’ve added the ability to choose the sort order in the Explore Worlds page. You can choose between these options:

  • Visitors – sorts worlds based on how many people are currently visiting them (the most crowded worlds appear first).
  • Newest – sort worlds based on when they were created (the most recently created worlds appear first).

Improved Search in the Viewer

As with the “Explore Worlds” page on our website, the search window in the OpenSim Viewer (Firestorm) now also lets you search by Organization, and enables you to sort the search results.

Another improvement is that the viewer search window now displays a list of worlds when you open the Search window (before you’ve even typed in a search query). This is the same behavior as in the Explore Worlds page, and it enables you to easily find new and active words.

We’ve also improved how you can find other users from inside the viewer. You can now search for users in a particular Organization, just as you can when searching for worlds. (However, unlike with worlds, you won’t see a list of users in the viewer search window unless you enter a specific query. We also don’t include Sort options for users, since they can create privacy issues.)

The following screenshot shows some search results, including a user that belongs to a different Organization. That user’s Organization name is displayed next to the user’s name.

As with World searches, you’ll only be able to see private Organization users if you belong to that Organization. But you’ll always be able to see any public users that belong to the Organization. The next section explains how Organization Admins can choose whether an Organization user can be found in searches.

Search Permissions for Managed Users

By default, Managed Users can’t search for external users or worlds. (“External” users and worlds are users/worlds that don’t belong to the Organization). Also, by default, Managed Users can’t be found in searches performed by external users. If you are an Organization Admin then you can change these behaviors by giving additional permissions to some of the Organization’s users.

For example, users that belong to the following User Group (“Teachers”) can find and be found by external users:

The permission to search for external users is explicit: you enable or disable it by clicking on a checkbox. In contrast, the permission to search for external worlds is implicit: it’s automatically enabled for users that are allowed to visit Kitely worlds. There’s no explicit checkbox for this permission, because it doesn’t make sense to allow someone to search for a world but not to visit it, or vice-versa.

As always, you can use the User Permissions tab to see which permissions a user has. For example:

Other Improvements

We’ve improved the process of adding custom grids to Kitely Market. This process is used when you want to deliver products from Kitely Market to a different grid. You’ll now get better validation that the Grid URI that you’ve entered is valid and leads to an active grid, so that if there’s a problem with the grid information that you’ve entered then you’ll be notified about it faster and more clearly.

We’ve improved the performance of the llListen LSL function.

Introducing Organizations (Virtual Grids)

We’re excited to introduce the biggest addition to Kitely since Kitely Market: Organizations. Organizations are a way to create a virtual grid inside Kitely. Use our new offering to take advantage of Kitely’s robustness and advanced management tools and avoid having to deal with the technical complexity of running a standalone grid.

Organizations enable you to create and manage your own users, with precise control over which worlds they can visit and what they can do in-world. They provide administrative capabilities that enable you to manage groups of users and worlds with unprecedented ease.

Kitely’s Organizations are designed for companies, educators, roleplaying groups, and any other collection of people that has its own members and needs to control what they can do in-world.

Types of Organizations

We offer three types of organizations:

  • Starter Organizations – can have up to 100 users and 10 worlds, for $49.95/month.
  • Standard Organizations – can have up to 400 users and 40 worlds, for $99.95/month. This type of organization can use advanced features that aren’t available to Starter Organizations.
  • Custom Organizations – contact us to discuss your needs if they aren’t met by our Standard Organizations. This option can include custom features.

The prices listed above include the Organization and its users, but not the worlds that you manage using the Organization. Those have to be paid for separately.

Some organizations (e.g., schools) aren’t active year-round. To save on costs, we allow Organizations to be Stored. A Stored Organization is disabled, and its price is reduced by 50%. This reduced price is paid daily, using KC, until the account is switched back to active mode.

How to Create an Organization

The Settings page has a new section called “Organizations (Virtual Grids)”. This section lets you create an Organization.

An Organization has a Name and a Short Name. The Short Name is used in the Organization’s domain names: its Management Website and Grid URI.

For example, here’s how to create an Organization called “Durion School of Wizardry”:

The Kitely user that creates the Organization becomes its owner. The owner pays for the Organization, and if the owner’s account is deleted then the Organization is also deleted. Therefore, if you’re creating an Organization that matches a real-world organization such as a school or a company then consider creating a special Kitely user just to own the Organization. This way, if you leave the real-world organization then you can transfer control of this Kitely user to a co-worker.

Management Website And Private Virtual Grid

Each Organization gets the following:

Management Website – a website where the Organization’s administrators can manage the Organization: its users, worlds, permissions, etc. (This is not a public website for the Organization’s regular users: it’s only used by the Admins.)

Private Virtual Grid – a private grid that runs inside Kitely. This is a “Virtual” grid because it uses the same servers as the main Kitely grid. But it has its own Grid URI, and the Admins can control who may visit the grid’s (Organization’s) worlds.

For example, suppose you created an Organization whose Short Name is durion. Then the organization’s URLs would be:

  • Management Website – https://durion.kitely.org
  • Grid URI – grid.durion.kitely.org:8002

This is what the Management Website looks like (this is the Dashboard):

This is what the grid looks like in Firestorm:

Adding Users

Organizations can have two types of users:

Managed Users – users that are created by the Organization. The Organization Admins have full control over these users. Managed Users can’t login to the main Kitely website.

Independent Users – regular Kitely users who have agreed to join the Organization. The Admins only control what Independent Users do when they’re visiting the Organization’s worlds. However, the Admins can’t control what Independent Users do outside the Organization.

Typically, an Organization will have only a handful of Independent Users, and many Managed Users. An Organization probably has a list of students/employees that should be given access to the Organization, and one of the Admins will create accounts for all of these users. To make this process easier, you can create multiple Managed Users at once by uploading their details in a CSV file. This process is called Batch Create Users.

Admins have full control over Managed Users. Admins can:

  • Create and delete Managed Users
  • Choose which avatars they can use (their appearance)
  • Control which worlds they can visit
  • View the worlds that they visited
  • Prevent them from uploading assets into the system

To add Independent Users, Admins send them an invitation by email. If the invited user clicks on the link in the invitation then they become a member of the Organization. Independent Users can be members of an unlimited number of Organizations, and they can cancel those memberships from the Settings page in their Kitely account.

You can manage the Organization’s users in the Users page of the Management Website:

You can view and edit all of the properties of Managed Users:

Adding Worlds

All worlds must be owned by an Independent User that is a member of the Organization. The user assigns a world to the Organization in the world’s Manage World dialog:

Since the world owner is an Independent User, they can remove the world from the Organization at any time. So make sure that the Organization’s most important worlds are owned by yourself, by the Kitely account in which you created the Organization, or by someone you trust…

You can manage worlds in the Worlds page of the Management Website:

You can optionally set one of the Organization’s worlds as the Default World. This world should be open to visits from all of the users in the Organization. When users login to your Organization’s virtual grid for the first time (without specifying which world they want to visit), they enter the Default World. Users also enter the Default World if they try to visit a world that has been deleted, or that they don’t have permission to visit.

In addition, anyone that tries to teleport to your Organization’s Grid URI without specifying a world will enter the Default World (assuming they have permission to visit it, of course).

Managing Permissions Using Groups

Users and worlds belong to Groups. Permissions are assigned to User Groups. These permissions determine which worlds the users can visit, and whether they’re allowed to upload assets.

For example, consider a school called the “Durion School of Wizardry”. The school offers three courses: Divination, Enchantment and Potions. Only students that are enrolled in a course are allowed to visit the course’s classrooms (virtual worlds).

You can implement this scheme in your Organization as follows:

  • Create three User Groups: Divination, Enchantment and Potions. Add the users that are enrolled in each course to the corresponding User Group.
  • Create three World Groups, also called Divination, Enchantment and Potions. The World Groups contain the worlds that are used to teach each of the courses.
  • Give each User Group permission to visit the corresponding World Group.

Here’s what the Users Groups hierarchy looks like (we’ve included some other groups, too):

The number in parentheses after each User Group is the number of users in that Group.

And here’s what the World Groups hierarchy looks like:

The number in parentheses after each World Group is the number of worlds in that Group.

Here are the permissions that were set on one of the User Groups:

The permissions in this screenshot show that users that belong to the “Divination” User Group are allowed to visit worlds in the “Divination” World Group. However, they’re not allowed to upload assets.

What about teachers? We want them to be allowed to visit any classroom (even if it’s not their own). So the Teachers User Group gets permission to visit the top-level group “Classrooms”. This automatically allows them to visit the worlds that are included in the World Groups below “Classrooms” in the World Groups hierarchy. In addition, teachers are allowed to upload assets:

If you view the permissions tab of a World Group then you can see the reverse permissions, i.e. which User Groups are allowed to visit that World Group:

If you want to verify that you’ve set the permissions correctly then choose any user and view their permissions. This shows you which worlds they can visit. You can also click on the “i” icon to see an explanation of why they have (or don’t have) the specified permission.

External Users and Worlds

Because Organizations are Virtual Grids inside Kitely, external users (users that don’t belong to the Organization) can visit the Organization’s worlds directly (without having to use the Hypergrid). However, you control which worlds (if any) external users can visit. You do this by giving (or withholding) permission for the “External Users” group to visit your worlds.

Likewise, your Managed Users can visit external worlds in Kitely without having to use the Hypergrid. But again, you choose whether to allow this, by giving (or withholding) permission for your users to visit worlds in the “External Worlds” group. Note that if you do allow your users to visit External Worlds then they can visit any external world: you can’t control precisely which external worlds they can visit.

Finally, you can choose to allow (or prevent) Hypergrid users to visit your Organization, and/or for your Managed Users to visit worlds in the Hypergrid.

World Visits

You can view every world visit made in your Organization in the Visits page. This includes visits made to your Organization’s worlds (even visits by external users), and all visits made by your Managed Users (even visits to external worlds in Kitely, but not visits to Hypergrid regions outside Kitely). Visits that are currently active are highlighted.

History

You can view a detailed list of changes that were made to the Organization in the History page. Many of the history events can be clicked to get additional information.

If your Organization has multiple Admins then there will likely be times when you’ll want to know who made changes to your Organization. This information is shown in the “Requested By” column.

You can export the History table to a CSV file.

Avatars

You can choose which initial avatars your Managed Users can use. A new Organization gets two sets of default avatars:

  • 7 avatars that are identical to the default Kitely avatars. These avatars can change all of their clothes, including their underwear.
  • 6 avatars that have a similar visual style to the Kitely avatars, but have underwear that is part of their skin layer (so they can’t get fully naked by taking off all their clothes).

You’ll probably only want to use one of these sets, but not both. For example, the Durion School of Wizardry has chosen to use only the non-naked avatars, so they’re the only ones that are enabled in the screenshot below. (You can delete avatars that you don’t need, but you might want to just disable them, as this gives you the option of enabling them in the future.)

The picture button lets you upload an image for the avatar: this is the image that your users see when they choose their avatar. The arrow buttons change the order in which the avatars appear.

You can add your own custom avatars to this list by copying the current appearance of your own avatar, or that of any of the Organization’s Managed Users. You can’t copy the appearance of any Independent User, however (except yourself).

The Setup Kitely Program

Setup Kitely is a program whose purpose is to help the Organization’s users, who might never have heard of OpenSim, visit the Organization’s worlds for the first time.

Setup Kitely runs on Windows and Mac computers. It helps the users download the correct version of Firestorm for their computer; add your Organization’s Virtual Grid to Firestorm; choose their avatar; and enter one of the Organization’s worlds.

For example, here’s the avatar selection page of Setup Kitely:

Setup Kitely’s ability to add your Virtual Grid to Firestorm is particularly useful, because adding grids is a highly technical operation that many people, especially ones new to OpenSim, encounter problems with.

Learn more about Setup Kitely here.

Regular Kitely users (that don’t belong to an Organization) can also run Setup Kitely, but its only benefit is to change their avatar to one of the default avatars that we offer.

Kitely Market

Since Organizations are Virtual Grids inside Kitely, you can use non-exportable items from Kitely Market in the Organization’s worlds and avatars.

Managed Users can’t use Kitely Market because they can’t login to the main Kitely website. So if you want a Managed User to get items from Kitely Market then one of the organization’s Independent Users will have to buy the items themselves, and deliver them to the Managed User from Kitely Market as a gift.

This is Just the Beginning

While Kitely Organizations already provide you with many advanced tools for managing a virtual grid, this is just the initial launch of the service. We consider this new offering to be an important part of our future business and will continue adding many features to it in the foreseeable future.

Some of our features are considered Advanced Features, and are only available to Standard Organizations and Custom Organizations (but not to Starter Organizations). Currently, the following Advanced Features have been implemented:

  • Batch create users by uploading a CSV file
  • Download History reports as a CSV file
  • Use filters to search History and Visits

Upcoming Advanced Features include:

  • Customize the viewer login page (what appears in Firestorm before you login)
  • A user signup form that you can host on your own website
  • A tool to help you transfer content ownership between users in your Organization
  • An API for managing the Organization
  • Use your own domain name for the Organization

If you encounter any issue with our service, want to give us feedback about it, or have followup questions then please let us know in our forums.

Try an Organization now risk-free with our 14-day money back guarantee. Order Now

GDPR Compliance and Improved Privacy Settings

On May 25, 2018, privacy regulations enacted by the European Union called the General Data Protection Regulation (GDPR) will take effect. Today’s Kitely update contains numerous changes in order to comply with the GDPR. We’ve updated our Privacy Policy and Terms of Service, and added tools to the Settings page that let you view and control your personal information better.

All Emails are Now Opt-In

The GDPR requires active consent in order to send any non-critical emails, so we had to disable all of the optional emails that we used to send to you. This includes highly useful emails such as ones notifying you when another user sends you a message. If you have a Kitely Market store then you will also no longer receive an email when that store makes a sale. You need to opt-in if you want to receive these emails again.

One-Time Privacy Information Dialog

The next time you login to Kitely you will be asked to accept our new Privacy Policy and Terms of Service, and optionally opt-in to our emails:

We don’t send many emails, so we recommend selecting Enable/disable all emails to enable all of these emails. (Note that the last three checkboxes in this screenshot will only appear if you have a Kitely Market store.)

If you try to visit one of Kitely’s worlds before accepting the new Terms of Service then the login attempt will fail with this message:

Hypergrid Users Need to Accept our Terms of Service

People who visit Kitely using the Hypergrid also need to accept our updated Terms of Service. When a Hypergrid user tries to teleport into Kitely, they will get this message:

When they open this link in their browser they will see this web page:

After they accept our Terms of Service they’ll be able to visit the Kitely grid without having to repeat this approval process.

Mandatory Age Verification for All Users

The GDPR limits our ability to sign up users who are under 16 years old. We’re now required to obtain the consent of the parent or guardian of such users before we allow them to use our service.

Until now, Kitely didn’t require you to specify your age (only to assert that you’re over 13 years old). We only asked for your age if you tried to change your account’s Maturity Rating to Adult. In order to comply with the GDPR, we now require all of our users to specify their age range.

If you provided us with your date of birth in the past then we have converted it into an age range, and deleted your exact date of birth.

If you haven’t provided us with your date of birth in the past then you’ll be asked to select your age range the first time you login to Kitely:

If you select an age under 16 then you’ll also be asked to provide us with the contact information of your parent or guardian:

We’ll send an email to the parent or guardian, asking them to approve your account. Once they do so you’ll be able to create a Kitely account (or continue using your existing account).

You can view and change your age range in the account Settings page. However, if you’re under 16 years old then we’ll ask your parent or guardian to approve the new age range that you choose.

Modify your User Names

You can now view and change two names in the Settings page:

Account name – this is the name that appears in the Kitely website (e.g., in the Account History page and in the forums). It’s the name that you chose when you signed up to Kitely.

OpenSim avatar – how you appear in OpenSim. This name is usually the same as the Account name, but sometimes it’s slightly different.

In the past you were only able to choose your Account Name, and only when you created your account. We then generated your OpenSim Avatar name automatically based on your Account Name. Usually these names are the same, but sometimes we have to make the OpenSim name different from your Account name. This can happen for several reasons: e.g. because your name is already in use in our OpenSim grid (which doesn’t allow two avatars to have the same name), or because your Account Name contains characters that are unsupported in OpenSim. This can cause some users to have OpenSim names like “John Smith_2”. If you wish, you can now change your OpenSim Avatar name.

We strongly recommend that you make your Account Name and OpenSim Avatar Name identical, or at least as similar as possible. Otherwise things will get very confusing, as you’ll be known by different names in our OpenSim grid and on our website (which includes the forums).

One last warning: if you change your OpenSim Avatar name then you might not see the results of the change until you clear your viewer cache. Similarly, other users who meet you in OpenSim will also see you using the old name, unless they also clear their viewer’s cache. So you should think carefully before you change your OpenSim name.

Modify your Email Address

You can now view and change your email address:

For security, you’ll need to enter your password in order to change your email address. We’ll send a verification email to the new email address, and a notification email to your old address.

Disconnect your Kitely Account from your Facebook or Twitter Accounts

If you created your Kitely account using Facebook or Twitter (instead of using an email and password), then you can now view and delete your link to these services. If you remove your link to Facebook or Twitter then you’ll be able to login to Kitely using your email and password instead.

Download Usage Reports

You can download your account’s usage reports:

Some of these reports have existed before today’s update, but the purchases report is new. (Note that the sales report option will only appear if you have a Kitely Market store.)

Delete your Account

You can now delete your Kitely account without having to ask us. To start this process, select Delete account in the Settings page:

You will need to confirm that you want to delete your account by first entering your password, and then by clicking on a confirmation email that we’ll send to your email address. Once you do this your account will be deleted immediately. All of your Kitely worlds will be deleted, and if you have a Kitely Market store then it will also be deleted.

Your Right to be Forgotten

We keep some information about your account even after you delete it. We need this information for security, so that bad people don’t come into Kitely; wreak havoc; and then quickly erase all the traces that can help us identify them. This retained information will be removed from our system 30 days after you delete your account. After that, some information may still exist in our backups, but even that information will be deleted within 90 days.

Information relating to your PayPal and Kitely Credits transactions will be stored indefinitely, even if you delete your account, in order to comply with anti-money laundering regulations and accounting regulations.

Deleting a Hypergrid User

Hypergrid users also have the option to delete their information from Kitely. Since Hypergrid users don’t have a Kitely account, they can’t go to their Settings page to delete themselves (as Kitely users do). Instead, we’ve added a sign in the Kitely Welcome Center that enables Hypergrid users to delete their information. This sign is located in the information kiosk area (hop://grid.kitely.com:8002/Kitely Welcome Center/63/127/25).

When you click on this sign a web page will open in your browser, where you can tell us to delete all of the information that we’ve collected about your avatar. (If you’re a Kitely user and you click on this sign then we’ll open your account’s Settings page instead.)

Better control over email settings

We updated our system today with several privacy-related improvements. We’re working to make Kitely compliant with the upcoming General Data Protection Regulation (GDPR). This is a wide-ranging privacy law enacted by the European Union. Many of the changes we’re making are behind the scenes, but some are user-visible, and one of these changes is included in today’s update.

Email Settings

We now provide you with more control over which emails we send you. The Settings page now contains an “Email Settings” section where you can opt in or out of all types of emails.

If you have a Kitely Market store then the Settings page will also show you Store-related email settings. These settings were moved here from the Store page.

We will implement other GDPR-related changes in future releases.

Removed Support for Facebook Friends, Twitter Followers, and Twitter Lists

For users who created their Kitely account using Facebook or Twitter, we used to provide the ability to restrict access to their worlds to users who are their Facebook Friends; Twitter Followers; or in one of their Twitter Lists. This feature has now been removed. It was very rarely used, and it has become difficult to enable due to Facebook’s and Twitter’s recent privacy-related changes.

You can still restrict access to your Kitely world by selecting OpenSim groups whose members will be allowed to enter the world. To do so, go to the Access tab in the world’s Manage World dialog.

Other Changes

We’ve made it easier for Kitely Market merchants to redeliver a product to many customers.  When merchants update a product, they sometimes want to redeliver it to all of the customers who had previously purchased the product. But these deliveries can fail if the destination grid is down. We show an error message when that happens, but until now that message didn’t specify which customer failed to receive the item. This is a problem when delivering to many users at once. We’ve now improved this error message to show which item and customer failed to receive the redelivery.

Easily Deliver Product Updates; Help Users of Grids That Have Shut Down

We updated our system today with a couple of features that were requested by Kitely Market merchants. It’s now possible to easily deliver product updates to all the people who had purchased them in the past. We also added a feature that allows users of grids that had shut down to regain access to their Kitely Market purchases.

Deliver Product Updates

Kitely Market merchants often make tweaks and improvements to their products even after they’ve been released. They’ve told us that they would like to have an easy way to deliver the new version of their products to all the people that had bought them in the past. This is now possible using a feature called “Batch Redeliver”.

To redeliver a product to all the Kitely avatars that had received it in the past, go to the product’s Edit page and click on Batch redeliver:

You will be asked to confirm, and then the latest version of the product will be added to the inventories of all of the Kitely avatars to which it was delivered in the past. These avatars will receive an IM telling them that they received the updated product. (Or an Offline IM, if they’re currently offline.)

This feature doesn’t deliver the updated product to avatars from other grids (i.e. non-Kitely avatars), because that’s very error-prone due to the many problems that can occur when communicating with other grids. The merchant can, however, send a product update to a specific non-Kitely avatar by going to the Sales History page and selecting the “Redeliver” option for that avatar.

Transfer Hypergrid Orders to Kitely

This feature allows Kitely Market merchants to select orders that were originally delivered to another grid, and redeliver them to Kitely avatars.

This feature is intended to be used when a grid shuts down. When that happens the grid’s users lose their inventory, including their Kitely Market purchases. By using this feature the merchant enables their customers to get back their Kitely Market purchases, using their Kitely avatar. Kitely Market has been used to deliver orders to hundreds of OpenSim grids. Since dozens of grids shut down each month, this feature can be very useful for merchants that have customers from a grid that no longer exists.

It is completely up to the merchant to decide whether to use this feature or not. They might use it if they’re contacted by someone who had an avatar on the now closed grid, and transfer only that avatar’s orders. Alternatively, if a merchant hears that a grid has closed, they might decide to transfer all of the purchases that were delivered to any avatar on that grid.  Lastly, the merchant can decide that they would rather handle such cases in other ways and not use this feature at all.

This feature is described in detail here: Transfer Hypergrid Orders to Kitely.

Other Improvements and Bug Fixes

In the Kitely Market Sales History page, it’s now possible to search for orders by entering the name of the avatar that received the purchase. Until now it was only possible to search using the name of the user that bought the order. Usually the user that buys the order is also the receiving avatar, but they’re different in the case of Gifts, or when the order is delivered to an avatar on another grid.

We fixed a bug that caused a few fonts to stop working in OpenSim. The affected fonts were the Microsoft ClearType fonts, including Cambria and Calibri.

Improved Wish List and Demos in Kitely Market

We’ve updated our system today with several improvements that were requested by our users. Among other things, we’ve made it easier to use the wish lists in Kitely Market, and to add Demo items to Kitely Market product listings.

Improved Wish List Usability

It’s now easier to buy items that are in your Wish List. The Wish List contains a “Buy” link next to each item. Previously, clicking this link would switch to the Shopping Cart, where the item would appear. This made it cumbersome to add multiple items from your Wish List to the Shopping Cart, because you’d have to flip back and forth between these two pages for each item.

Now, clicking “Buy” adds the selected item to the Shopping Cart but doesn’t switch to the Shopping Cart page. This makes it much faster to buy multiple items from the Wish List.

Simplified Demos Creation

Kitely Market has built-in support for adding Demos to product listings. Previously this feature required a lot of work from content creators, because they had to create a Demo item for each of the product’s variations. Products in Kitely Market often have many variations, so this quickly became tedious. It was also mostly unnecessary, since usually a product only needs one Demo, regardless of how many variations it has. For example, even if a dress is available in 8 colors, it’s often enough to provide a demo in only one color.

To address this issue, we’ve now changed Kitely Market so that if a product has any Demo, in any of its variations, then that Demo can be used by all of the variations. This eliminates the need to create multiple Demos for the product.

Of course, you can still create individual Demos per variation if you want. Each variation uses the following Demo, in order of preference:

  1. The variation’s own Demo.
  2. If that doesn’t exist: a Demo from the nearest previous variation in the Variations table.
  3. If that doesn’t exist either: a Demo from the nearest succeeding variation in the Variations table.
  4. If none of the above exist then the product has no Demo.

Removed Warnings for Standard OpenSim Assets

Kitely Market has built-in tools for finding and fixing problems in products. When content creators add a product to Kitely Market, we check their product and show warnings if it contains references to non-existing assets. However, sometimes these references are for standard predefined OpenSim asset identifiers. These predefined identifiers aren’t regular assets, but they’re not missing, and therefore shouldn’t cause our system to display warnings. We maintain a list of such assets, and we’ve now added several additional asset identifiers to that list to eliminate a few incorrect warnings that our system had previously displayed.

Enabled OSSL Functions

We’ve enabled the following OSSL functions for use by everyone. Previously they were only enabled for the world owner, but this was too restrictive:

To learn more, see this list of our supported OSSL functions.

llCastRay v3

We’ve switched to using llCastRay v3, which provides more accurate results than llCastRay v2.

Updated OpenSim 0.8.2.1

We upgraded to using a newer version of OpenSim 0.8.2.1. This update contains a few minor changes that only affect the backend, and no user-visible changes.

Search for People, Groups, Places, Events and Classifieds

Following many requests from our users, we’ve now implemented the viewer’s in-world search tabs. Click Ctrl+F to open the Search window, and then click on the tab that you want to search.

Search Events

People

This tab lets you search for avatars.

Groups

This tab lets you search for OpenSim groups.

Places

This tab lets you search for parcels. Only parcels that have enabled the “Show Place in Search” checkbox can be found (see details at the end of this post).

Events

This tab lets you search for Events. These are the events from our events system.

If you’ve created an event then we highly recommend that you specify the event’s location, as described in How to Add Events. Now that people can search for events in the viewer, they will want to click “Teleport” to go to the location of the event — but that’s only possible if the event creator has entered a valid location for the event.

Classifieds

This tab lets you search for Classified Ads.

We’ve implemented a complete Classifieds system, so you can now buy Classified Ads (using Kitely Credits). Each Classified Ad runs for one week, and you can choose to have it be renewed automatically.

The minimum price of a Classified Ad is 50 KC (per week). In Search, the Classified Ads are sorted by the price that the classified’s creator chose to pay for the ad: from highest price to lowest price.

A few people had created classifieds in the past. Those ads have been deleted, because we didn’t charge people for classifieds until now, and we don’t want to start charging people unexpectedly.

Web Search

This is the only tab that worked even before today’s update, and it hasn’t changed. It still lets you search for People or Places.

Note that in the “Web Search” tab, searching for places searches for Worlds. In contrast, searching in the “Places” tab searches for Parcels.

Add Your Parcels to Search

If you have a parcel that you’d like people to visit then we highly recommend that you make it visible in Search:

  • Open the About Land dialog (using the menu: World > Parcel Details)
  • Give the parcel a good name and description, to make it easy to find in Search. (When people search for Places, the results are sorted by the best match to the parcel’s name and description.)
  • Enable the “Show Place in Search” checkbox (in the Options tab of the About Land window).
  • Set a Landing Point.
  • Set a snapshot (not required, but recommended).
  • Select an appropriate Category.

Parcel Options

When you make changes to your parcel, it may take a few minutes before these changes are visible in Search.

Parcel Maturity

When searching for Places, it’s possible to select the desired maturity rating: only parcels that have this maturity rating will be shown. Therefore, you should set your parcels’ maturity rating correctly. But this is a bit tricky, because the region’s maturity rating limits which maturity rating you can assign to the parcel:

  • If your region has a maturity rating of  “General” then all the parcels in the region are also “General”.
  • If your region has a maturity rating of “Moderate” then you can choose, for each parcel, whether it’s “General” or “Moderate”.
  • If your region has a maturity rating of  “Adult” then all the parcels in the region are also “Adult”.

You can change the region’s maturity rating, but note that this only takes effect after the world is restarted.

It’s possible to set a region maturity rating (in OpenSim) that’s different from the world maturity rating (which is chosen in the Kitely website), but this is confusing so we recommend that you keep the two maturity ratings the same. In other words, if you change one maturity rating then you should also change the other one to match.

To change a world’s maturity rating, go to the My Worlds page on the Kitely website and click the Manage link next to the world you wish to change. This will open that world’s Manage World window. The option to change the world’s maturity rating is found in that window’s Access tab.

Database Storage System Upgrade

We upgraded our infrastructure today with a faster storage device for the main system database. Until now, this database was stored on a regular (magnetic) hard disk. This hard disk was sufficient for our needs until a couple of days ago, when it started limiting the speed in which our system could handle database requests. We have therefore decided to upgrade our database to run on an SSD (a fast flash-memory-based hard disk) to help us keep up with the increasing usage of Kitely worlds.

By the way, the world nodes (the servers that run OpenSim) have been using SSDs since 2014.

Automatic World Optimization and Other Improvements

We updated Kitely today with several features that improve the in-world experience, including a system that automatically optimizes Kitely worlds so they’ll start faster.

Automatic World Optimization

A common problem in OpenSim is that objects that have complex physics meshes can cause the world to start slowly. A physics mesh is the part of the object that determines where it’s solid, and where avatars can walk through it. For example, suppose you have a large arch in your world. The object’s physics mesh would also be in the shape of an arch: this is what allows users to walk back and forth under the arch.

Most physics meshes are simple and don’t cause a problem. However, if these physics meshes are very complex (i.e., they contain many triangles), then it takes OpenSim a long time to parse them. This makes the world start slower, because this parsing is performed when the world starts. In some cases we’ve seen worlds that take an extra 10 minutes (!) to start, just because of the time that they have to spend parsing complex physics meshes.

Note that all objects have a physics mesh; not only mesh objects. However, in practice, usually only mesh objects (and some sculpties) can have a physics mesh that’s complex enough to cause a problem.

In the past, when we’ve seen this problem we used to contact world owners and ask them to fix their objects: either by simplifying the physics mesh, or by making the objects phantom (since a phantom object’s physics mesh isn’t used, and therefore it doesn’t take any time to parse during startup). But this took a lot of work both on our part, and on the world owner’s part, who had to track down all of the objects and fix them.

Therefore, in today’s update we added a feature that automatically handles this problem. When Kitely worlds start, any object that takes 1.5 seconds or more to parse is automatically made phantom. Because this is done automatically, world owners no longer need to track down the objects themselves. We also send an email with a detailed list of all the objects that we had made phantom, so if the world owner prefers to optimize their physics meshes and make the objects non-Phantom then they can easily locate the objects in-world.

Here’s an example of part of such an email:

Dear Oren,

Your Kitely world Bridges contains some objects with complex physics meshes. These
meshes were causing the world to start slowly, because of the time that it takes
OpenSim to process them.

[...]

Slow mesh: 4266 ms
    Object:
        Name: Tennis Racket High
        UUID: af322f3d-e937-4876-b060-c908762f8e5f
        Location: (402.1, 249.4, 20.9)

This feature is now live in all Kitely worlds.

Enabled llRequestURL in the Same Region

Before today’s update, there was a problem with llRequestURL: the URL that it returned only worked when it was called from other regions. However, when it was called from a prim in the same region, it didn’t work. This happened due to a security feature in OpenSim whose details are too technical to explain here. If you’re interested, see this forum thread for more information.

We’ve now fixed this problem, by having llRequestURL provide URLs that contain an IP instead of a hostname.

More Offline IMs

Some of our users have said that they often reach the limit on Offline IMs (which was 25), causing them to miss some IMs. Therefore, we’ve increased the number of Offline IMs that are saved for each avatar from 25 to 50. This is the same limit that Premium Account users in Second Life get.

Events System and Other Improvements

We updated the system today with a feature that makes Events in Kitely much easier to find and attend. This update also includes several other bug fixes and improvements.

Events

Events are a great way to meet other people and have a good time. In this update we’ve made it much easier to see the list of active and upcoming events. The list of events in Kitely is now shown in the viewer’s login page:

Events List

Click on an event to see its details. Then, click on the event’s location to enter the world where the event is taking place.

Event Details

The Kitely Events Calendar is maintained by the Kitely community. If you’d like to add your own events to the calendar then see How to Add Events.

New Design for the Viewer Login Page

We redesigned the viewer’s login page in order to make more information visible, while taking up less screen space. We heard from our users that the previous design (where the panels appeared one below the other) was too tall, so some users didn’t see the lower panels because they appeared below the bottom of their monitor.

Therefore, we’ve changed the design. The four main panels now appear in a 2×2 square. Each panel only shows part of its information. To see the full panel, simply move the mouse into the panel: it will immediately expand to show more information.

Viewer Login Page - 2x2

By the way, you can view this page from a regular browser if you want (not just from a viewer). The URL is: http://www.kitely.com/viewer_login.

Email Notifications for Group Notices

Kitely has an option to send emails when a user receives IMs or Group Notices while offline. In today’s update, we’ve split this option into two parts:

  • Send me an email if I receive an Instant Message from a person while offline  (Default: on)
  • Send me an email if I receive a Notice from one of my groups while offline (Default: off)

Offline IM Settings

The reason for this change is that some users want to receive email notifications only when someone sends them an IM, but not when one of their groups sends a Notice, because Notices aren’t directed personally at them.

We’ve made the new option (send email on Notice) set to Off by default. So if you do want to receive emails on Group Notices then go to your Settings page and turn this option on.

Other Improvements

We fixed a bug that sometimes caused IM’s to stop working after a user teleported to another world.

In a previous update we added the ability to redirect a Kitely Market order from a Kitely avatar to a Hypergrid avatar. We’ve now improved this feature so that even if the order contained some No-Export items (which can never be delivered to a Hypergrid avatar), we’ll still redeliver all of the Exportable items that are in the order, instead of refusing to redeliver anything.

Some products in Kitely Market have demo versions. We don’t allow sending Demos to Hypergrid avatars; they can only be sent to Kitely avatars. Previously, if you had selected a Hypergrid avatar then we silently ignored your choice and sent the items to your Kitely avatar instead. But this wasn’t clear: people were left wondering why the Demo items weren’t delivered to their Hypergrid avatar’s inventory. So now we show an error message if you attempt to deliver Demo items to a Hypergrid avatar.

Try Demo

We created a server-side workaround for a viewer bug that causes viewers to fail to load the avatar’s inventory when some of the inventory items contain unusual characters in their name or description.

We fixed a rare problem in Kitely Market Analytics that could cause some Views and Impressions to be double-counted.

We updated the version of the Facebook API that we use to version 2.6. This shouldn’t have any visible effect, but if you have a Facebook-connected Kitely account and do notice a problem then please let us know.