To understand what this project consists of, it is necessary to explain how electronic commerce works within virtual worlds similar to SecondLife and derivatives such as those based on "Open Simulator". In this section I include a small glossary in which I explain some basic concepts.

Primitive. Every existing object in a virtual world is composed of primitives.. These are basic building blocks that can be transformed in many different ways. For example, change its size in any of its dimensions, its rotation, change colors and textures in each of its faces, etc. The primitives can be grouped into a single object forming buildings, vehicles, weapons, etc. Since a few years ago it is also possible to create an object externally using tools such as Blender, Maya, 3D Max Studio, etc. and upload them to secondlife in dae format.

Everything is made of Primitives. [Illustration 1: Everything is made of Primitives]

Inventory. Every user of secondlife and other virtual worlds has an inventory where he keeps all his stuff. That inventory is accessible using the client with which it connects to that virtual world. In this inventory are stored things such as objects, clothes, textures, scripts, animations, ...

The interesting thing for the project that concerns us is that the primitives also have their own inventory and can contain anything inside. The scripts that are inside the inventory of an object may be working, in fact it is the only way a script can work.

Inventory of an object. [Illustration 2: Inventory of an object]

Economic transactions in SecondLife. There are three very different ways of buying something within secondlife and its derivatives. The first and oldest is to put an object for sale. This is done by editing the object to put a price on that object. It is also possible to specify if what is being sold is a copy of that object, the object itself or only the content that is inside the inventory of the object. Normally objects that are for sale are within the inventory of a primitive conveniently decorated in many different ways. For example as a gift box with a pink ribbon or as a cardboard box. Basically it depends on the imagination of the creator. Any avatar can buy that object by paying the specified amount. Unless you buy the object itself when making the purchase the object will appear within the inventory of the avatar that makes the purchase.

Object to sell. [Illustration 3: Object to sell]

The second way to buy something in the virtual world is through the intermediation of a script. The user who makes a purchase makes a payment to an object and that object delivers the object that he has purchased to the buyer.

And finally it is also possible to purchase products through a website belonging to the company that created the virtual world. If it is specified in the configuration of that web page, it is possible that it sends a message to an object within secondlife every time a purchase is made. In this way it is possible for a merchant to have all their sales information unified.

LSL script. LSL (Linden Script Language) is the script language used within secondlife. It is an event-oriented language with which you can do things such as manipulating any aspect of the primitives that contains it as well as the other grouped primitives. You can move that object as if it were a vehicle allowing an avatar to control it with the cursor keys and the most interesting thing for the project that concerns us:

  1. Receive an event when an avatar makes a payment.
  2. Deliver objects that are within the same inventory.
  3. Communicate through emails or through http requests with other objects or external servers.

Automatic Vendor. It is an object whose purpose is to sell objects, animations, textures, sounds, etc. that are contained within their inventory. The avatar that wants to buy something selects the object to buy by clicking primitives in the form of arrows and a photo of the selected object appears on the main screen. When the buyer makes a payment for the specified amount, the selected object that is within his inventory is delivered to him.

The above description refers to classic vendors that do not require communication with external http servers. The drawback of these vendors is that their configuration is more complicated and if the merchant has several stores owned or rented, if he need to make a change, he have to make that same change in each and every one of the vendors.

In contrast, networked vendors have their configuration centralized on an external server. Typically an Internet hosting based on LAMP technology or similar. The user performs the configuration comfortably in a web form and a PHP script sends the configuration to each and every one of the vendors. They also have their inventory centralized in one or more objects called dropbox.

Classic Vendor. [Illustration 4: Classic Vendor]

dropbox. It is a primitive with a script inside (in its inventory) and that also contains all the objects that are for sale by a system of automatic networked vendors. In this way, instead of maintaining as many inventories as there are vendors, it remains unified in one place. The following illustration shows a diagram of how a complete networked vendor system works.

Networked vendor system diagram. [Illustration 5: Networked vendor system diagram]

The previous diagram shows how a purchase process is:

  1. A buyer pays a vendor.
  2. The vendor sends the request to the server.
  3. The server sends the request to the dropbox.
  4. The dropbox sends the product to the buyer.
If any of these steps fail it is necessary to make a "back step" (rollback) by returning the money to the buyer.

dropbox. [Illustration 6: Dropbox]

In the previous illustration you can see several dropboxes. They are usually a primitive with textures that mimic a personal computer or a futuristic computer. Some usually have a display in which they show some data and in some cases they can be authentic works of art. Everything depends on the imagination of the creator.

Object DNS. In order for an object within secondlife or another similar virtual world to communicate with another object, it is required that it knows either its UUID (to communicate via email) or its URL (to communicate through http requests).

For this to be possible there is a series of web pages that function as DNS for objects within the virtual world. These websites are maintained by users of these worlds and are not very reliable because they can stop providing the free service at any time. The sales systems servers are implicitly a DNS of objects although considerably much more sophisticated.

Rental Box (rentbox). It is basically a primitive with a script inside. This script accepts payments and when you receive enough money you start a descending time counter. When there is very little time left for the counter to reach 0 it sends warning messages to the tenant that can lengthen the remaining time by making more payments.

As happens with the vendors, there are also payment boxes that work in a network although this feature is basically for convenience in the configuration since a payment box can have many options.

Rental box. [Illustration 7: Rental box]

Updater. Sometimes a sold object containing scripts may contain bugs or may be obsolete. If new versions appear it is necessary to send the updated version to the buyers. This can be done in many different ways:

This last method has two variants:

In some systems like the dissapeared HippoTech the updater system is a different product and separate from the sales system and uses a different dropbox while in other systems such as caspertech the dropbox is the same.

Object delivery. A object delivery is similar to a sales system but delivers items for free when a user clicks the mouse on the object. It is usually a landmark (like a URL but containing coordinates within the virtual world) or informative text notes. Sometimes they can contain restrictions, for example to deliver an object or gift only if the user belongs to a group or if their age in the virtual world is greater or less than a specified age.

Redeliver. Sometimes an avatar can lose or accidentally delete an object or not be able to find it in a very messy inventory. For this reason, network sales systems can forward an object that has been previously purchased at the request of the user.

Again there are two philosophies, or a separate system as was the case of HippoTech or as an integrated feature in the vendors that is the case of CasperVend.

Redeliver system. [Illustration 8: Redeliver system]

Lucky chair. It is a chair that has a sign in which it shows a letter. If the name of the avatar begins with that letter when sitting in the chair receives a gift. The letter of luck changes every so often or sooner if an avatar sits in that chair. Traditionally this has been a product that did not work in a network but Caspertech markets a network version that works in conjunction with its sales system, reusing the dropbox for new functionality.

Lucky chair. [Illustration 9: Lucky chair]

Midnightmania It is an object that when it is midnight in California delivers a gift to all avatars that have clicked to register. But there is a condition to receive the prize. The number of avatars indicated by the panel must be reached. If the desired number is not reached by midnight, the panel is set to 0 without delivering gifts.

Midnightmania. [Illustration 10: Midnightmania]

Gacha. It is a special vendor in which you do not choose what you buy, instead it delivers a random product. All these products have the same price and are not copyable, that is, you can transfer them to another avatar but in doing so you lose it.

Usually they are accompanied by a poster that shows the different products you can get and some of those products are marked as "rare" because there is less chance of getting a rare product.

Gacha. [Illustration 11: Gacha]

Commission Vendors or affiliate vendors It is an automatic vendor that can be delivered to another avatar to sell products in exchange for a commission. There are establishments specialized in selling objects on commission. To avoid problems it is very important that the sales system is fully transactional and only do the partition when the operation has been delivered correctly.

Commission Vendors [Illustration 12: Commission Vendors]

Message board. It is a panel that can contain any text. This text can be configured through an order in the chat or through a web page. When you have several panels in different sites it is an advantage to be able to configure them externally from a web.

Message board. [Illustration 13: Message board]

Visit counters and greeters. It is an object that counts the number of avatars that visit a site. Sometimes these also send a greeting to the visitor and even send him things such as a landmark, a text note, a gift, etc. These visit counters often send the information to an external web server in order to make all kinds of statistics or send subsequent publicity to visitors. Although this last point may not be legal due to the GDPR law or even some previous law.

Advertising panel They are panels that are placed in places such as discos, sandboxes, etc. and that show advertising showing a texture. When you click on the panel, it usually delivers a landmark or a text note. Many panels are for rent and work in a similar way to a rental box.

Again there is the possibility that these are connected to an external server to configure many at once. There is also the possibility of panels that show several ads by slices of time, that is, changing the advertisement visible every several minutes.

Advertising panels. [Illustration 14: Advertising panels]

Teleportation networks. Most teleportation networks belong to a single user and have a single-region scope. But there are teleportation networks that belong to more than one user and covers the entire virtual world. The best known are the stargate networks.

Some networks such as OpenGate try to minimize the dependency of external servers by means of self-organizing algorithms that create a graph creating links between different nodes. but even so a server is needed to locate an entry point.

Another type of network that has been seen from time to time are the chains, similar to the ones that existed years ago in the web pages. These teleporters have three buttons, visit the next site, visit the previous site and visit a random site.