Resources – Hypergrid Business https://www.hypergridbusiness.com Covering virtual reality, immersive worlds, and other emerging technologies Tue, 25 Apr 2023 13:56:59 +0000 en-US hourly 1 https://wordpress.org/?v=6.6.2 https://www.hypergridbusiness.com/wp-content/uploads/2019/02/cropped-HB-logo-512-32x32.png Resources – Hypergrid Business https://www.hypergridbusiness.com 32 32 How to choose your OpenSim grid type https://www.hypergridbusiness.com/2019/06/how-to-choose-your-opensim-grid-type/?utm_source=rss&utm_medium=rss&utm_campaign=how-to-choose-your-opensim-grid-type https://www.hypergridbusiness.com/2019/06/how-to-choose-your-opensim-grid-type/#respond Tue, 11 Jun 2019 11:56:36 +0000 https://www.hypergridbusiness.com/?p=65068 If you’re new to OpenSim, you’re probably here because you’ve heard about the ridiculously low land prices.

Many grids offer regions for $10 a month — or less — and you can get a whole grid for free by running your own

Superlow land prices on commercial grids

If you look at the Hypergrid Business list of OpenSim grids that rent regions, you’ll see that the prices are ridiculously low when compared to Second Life.

A “standard region” — 256 meters by 256 meters, capable of holding up to 15,000 prims — can be had for less than $5 a month, and is perfectly fine if you want a place to do some light building and maybe have a couple of friends over.

More typically, expect to pay around $15 a month. That’s what the largest commercial grid by land area, Kitely, charges. Even OpenSim’s most successful closed commercial grid, Tag Grid, charges just $15 a month for a standard region.

And you typically get much more functionality than you get with a standard Second Life region. Kitely regions, for example, called “worlds” on their website, are two-by-two islands that can hold up to 100,000 prims. On Tag, you can choose the size of your region, either standard size, or a two-by-two, or a four-by-four, at no additional cost.

These kinds of features — more prims, more land, more users — are commonly available throughout the OpenSim grids, sometimes for free, sometimes for a small additional cost.

But you don’t have to settle for land on someone else’s grid. You can have your own.

Get a mini-grid

When I had my own grid, Hyperica, it was a mini-grid, hosted by Dreamland Metaverse.

A mini-grid is an OpenSim grid that fits on a single computer or server. There’s a limit to how big they can get, since all the regions have to fit on that one computer. Mini-grids, technically known as “standalone” grids, are typically four to 16 regions in size, but can get bigger if you have a more powerful computer.

At Dreamland Metaverse, a standalone mini-grid starts at $45 a month.

With a mini-grid, you get your own domain name and hypergrid address, and a stripped down website.

If your hosting provider uses DreamWorld to set up your mini-grid, the website will look something like this:

92 Miles grid default home page.

If your hosting provider uses the Diva Distro version of OpenSim, your home page will be a “wifi” page that looks something like this:

Grid Nirvana’s Wifi page.

That gives your users the ability to create new accounts and to check grid statistics. Some grids create a nice-looking official home page, then link to the “DreamWorld” or “WiFi” page for the stats and user account functionality.

A mini-grid is a great option for people who want to have a small grid of their own to play on, to hold classes or business meetings, or to hold small events. And you don’t have to deal with any grid politics — as long as you don’t violate any laws, the grid is your own, and you can do on it whatever you want. You decide who gets to be a user, you decide what content is allowed on the grid, and you decide whether to allow hypergrid teleports or turn them off.

But once you start to rent out land, hold a lot of big events, and have more regions than what a single computer can hold, then its time to upgrade to a full grid.

Run your own full-size grid

The difference between a full grid and a mini-grid is that a full grid can be spread over several servers or computers. That means that it can grow almost indefinitely.

You can also put each region on its own server so that if a region goes down, it doesn’t take down any other regions with it. That’s useful if you are renting regions out to people who expect a certain level of stability.

Running your own grid takes quite a bit of technical skill.

So what do you do if you don’t have those technical skills, and don’t want to manage programmers? You use an OpenSim hosting provider.

I already mentioned Dreamland Metaverse. Their prices start at $45 a month for the central grid service, plus $30 each per region. There’s no set up fee, and they’ll have your grid up and running in three days.

Another popular option for commercial grid hosting is DigiWorldz.

The full list of independent OpenSim hosting providers doesn’t include DigiWorldz because they don’t have a webpage up that explains their grid hosting offer. You will need to contact them and negotiate a custom price based on your requirements.

Run your own for free

If you have a spare computer sitting around, and a decent Internet connection, you can run your own OpenSim, for free.

The most popular option is to download the OSgrid OpenSim Installer and you can have as many regions as you want, for free, on OSgrid. Not only does OSgrid let you have regions for free, but they’re also the biggest testing ground of new OpenSim features, so please donate. The donations help cover the costs of the servers they need to handle all the central grid services, such as the map, messages, user inventories, and the asset database.

Metropolis has a similar system, but you have to pay 1.50 Euros a month for the connection.

If you don’t want to be part of any grid, but have your own little grid for fun and friends, then a mini-grid might be the best option. A mini-grid — technically called a standalone — is a grid where all the regions can fit on a single computer. So the more powerful your computer, the bigger your mini-grid. Typically, mini-grids start at four regions, then go up to 16, and then up from there.

Currently, the single best way to set one up is with DreamWorld.

You can do it either on a spare computer, or a server you rent from an online hosting provider.

“I have a 2016 Server with 8 GB and 2 cores somewhere overseas, I forget where, just for testing,” said dreamWorld creator Fred Beckhusen. “It runs about $25 for a grid — 8 regions or so, a couple of gigabytes of prims.”

But most people just get a cheap PC, or use an old PC at home and save the money, he said.

“A used $300 PC from Ebay is more than enough for most,” he said. “Like an I3 or I5 with lots of RAM, and a router that works.  A small SSD is nice — 128 GB is dirt cheap and large enough to run my 100 region grid –) but not really necessary.  I would look for 16 GB of RAM which is a decent amount that will run anything you want.”

Another option is the DivaDistro version of OpenSim, from hypergrid inventor and OpenSim core developer and all-around superhero Crista Lopes.

Finally, there’s a full grid. Most commercial grids are full grids, with centralized grid services such as Robust.

The regions don’t have to all be on the same computer. The central grid server organizes everything so you can have as many regions as you want — just add more computers, or more online servers, and you can grow the grid indefinitely.

A full grid also offers additional management capabilities that a mini-grid doesn’t have, and, if you want, you can let people attach their own, self-hosted regions.

Beckhusen has a version of OpenSim that lets people easily create a full grid. It’s called DreamGrid, and you can download it for free as well.

“As for capabilities, it has more than most grids,” he said. “Unlike major grids, it has a Icecast server, Tides, Partners, Birds, Crash detect, auto restart on Interval, auto backup, auto update, and it takes just one click to set up a working grid, if your router is any good.  One DreamGrid can run many region servers, just like OSgrid or Metropolis,  and many hundreds to thousands of regions.”

It requires more computing capacity than a mini-grid, but Beckhusen is working to change that.

“One day soon, hopefully by year end, there will a DreamGrid update so you can run any size grid you want in just 8 GB, even on a Craptop,” he said.

If you’d rather handle all the technical setup details yourself, you can also download OpenSim from the main OpenSimulator website.

]]>
https://www.hypergridbusiness.com/2019/06/how-to-choose-your-opensim-grid-type/feed/ 0
How to set up your new mobile VR viewer https://www.hypergridbusiness.com/2016/06/how-to-set-up-your-new-mobile-vr-viewer/?utm_source=rss&utm_medium=rss&utm_campaign=how-to-set-up-your-new-mobile-vr-viewer https://www.hypergridbusiness.com/2016/06/how-to-set-up-your-new-mobile-vr-viewer/#comments Sat, 04 Jun 2016 14:21:40 +0000 https://www.hypergridbusiness.com/?p=55772 All my Cardboard headsets

Did you just get a Cardboard-compatible virtual reality headset?

You can tell if you have a mobile headset by the fact that it weighs very little, costs very little, and does not plug in to your computer. Instead, it has a place where you put in your smartphone. Then, if the package does not say “Gear VR” on it, you have a Cardboard-compatible viewer.

Before you do anything else, download the Google Cardboard app from the Google Play store for Android or from the iTunes store for the iPhone.

Configuring your viewer

Now you have to tell your phone what kind of headset you have. This is important, because different lenses distort the picture differently, and the phone has to know the curvature of the lenses, and how far they are from the phone, and so on. To do this, you need a Google Cardboard QR Code.

It looks like a regular QR Code, except that there’s a Cardboard outline in the middle. For example, here’s the Google Cardboard QR Code for the Mattel View-Master:

QR-code-ViewMasterVR-150x150

You might find one printed on the headset itself, in its instructions, or on the box it came in. If you can’t find it, check to see if it’s on our QR Codes page. Keep in mind that some headsets are sold under multiple brand names, so make sure that the picture matches your particular headset. If you still can’t find your QR Code — there are hundreds of manufacturers and I don’t have the codes for all of them — then I recommend that, first, you contact the seller and complain. Then, email me and ask for help, at maria@hypergridbusiness.com. You can also try the QR Codes for other sets until you find one that is close enough, or create your own — it only takes a few minutes.

Okay, you now have a Google Cardboard QR Code.

Now open the Google Cardboard app and click on the three dots in the top right corner of the screen.

Cardboard - Switch Viewers 1 -- with arrow

That brings up the settings menu.

Cardboard - Switch Viewers 2 -- with arrow

Click on the first option, “Switch viewer.”

Cardboard - Switch Viewers 3 -- with arrow

This activates your phone’s camera. Point the camera at a picture of your QR Code. If you use our QR Code page, click on the QR Code first to open up the image, so that it’s the only QR Code on your computer screen.

Cardboard - Switch Viewers 4

You should then get a confirmation message.

Where to get VR apps

You can run any of the apps that are recommended in the Google Cardboard app.

There is also a list of VR apps that Google recommends on its featured Cardboard Apps page.

WeArVR screen 2

There is also a large catalog of VR apps for both Android and iPhone, as well as other VR platform, at WeArVR.com. They also have ratings and lists of recommended apps in various categories.

AppZoom also offers a complete list of all Google Cardboard applications for Android and iOS, which you can sort by popularity, user rating, price, and other features.

Finally, you can search for the keyword “VR” on either app store.

The most popular app for Cardboard users is YouTube. Here is how to watch YouTube videos in VR.

 

]]>
https://www.hypergridbusiness.com/2016/06/how-to-set-up-your-new-mobile-vr-viewer/feed/ 17
How to watch YouTube on Cardboard viewers https://www.hypergridbusiness.com/2016/06/how-to-watch-youtube-on-cardboard-viewers/?utm_source=rss&utm_medium=rss&utm_campaign=how-to-watch-youtube-on-cardboard-viewers https://www.hypergridbusiness.com/2016/06/how-to-watch-youtube-on-cardboard-viewers/#respond Sat, 04 Jun 2016 14:06:56 +0000 https://www.hypergridbusiness.com/?p=55778 The latest version of the YouTube app can play any video in virtual reality mode, on both Android smartphones and iPhones.

Just open up the app on your smartphone, and pull up any video.

Take, for example, this  Cirque du Soleil virtual reality video.

Cirque du Soleil 1 with arrow

Notice the little Cardboard outline at bottom right? It’s circled in the image above.

Hit play and then click on Cardboard icon to switch to VR mode.

Now you should see the side-by-side virtual reality view where you feel in the middle of the action.

Cirque du Soleil 2

Now put the smartphone into your Cardboard-compatible viewer and enter the video.

But what if you want to watch a regular video, one that wasn’t filmed in 360-degrees?

You can still watch it with your headset. It will feel a bit like you’re sitting in an extremely dark movie theater, watching the video on a giant movie screen.

Again, open the video on your smartphone.

Jimmy Fallon 1 with arrow

Start the video, then click on the three-dot settings button at the top right.

A menu will pop up.

Jimmy Fallon 3 with arrow

Click on the Cardboard icon.

Jimmy Fallon 2

Now the screen will switch to side-by-side view, and you can put the phone into your headset.

Want to find more 360-degree and VR videos? YouTube has a VR channel.

]]>
https://www.hypergridbusiness.com/2016/06/how-to-watch-youtube-on-cardboard-viewers/feed/ 0
Free gates on Hyperica https://www.hypergridbusiness.com/2014/10/free-gates-on-hyperica/?utm_source=rss&utm_medium=rss&utm_campaign=free-gates-on-hyperica https://www.hypergridbusiness.com/2014/10/free-gates-on-hyperica/#comments Sun, 19 Oct 2014 18:37:48 +0000 https://www.hypergridbusiness.com/?p=48393 Now that the Hyperica hyperport is starting to get into shape, I’ve set out some free hypergates for people.

Just teleport over to hg.hyperica.com:8022 and pick them up.

I’ve got some all-in-one gates, like the one from The Hypergates, and a Blamgate from Pathfinder, and Diva Canto’s teleporter.

That's a gate from The Hypergates in the background, and a couple of boxed panels on the counter.
That’s a gate from The Hypergates in the background, and a couple of boxed panels on the counter.

The gate from The Hypergates is the one that looks like a Stargate, and you can dial it to go to any destination on their network.

And I’ve also got some two-piece gates, where you slide a square or circular panel inside any frame you like.

Linda Kellie's Froggy gate, Pathfinder's Blamgate, and Diva's Teleporter.
Linda Kellie’s Froggy gate, Pathfinder’s Blamgate, my castle gate, and Diva’s Teleporter. Telephone booth gates are boxed on the counter.

For example, you could use Linda Kellie’s Froggy gate, and slide in my circular panel gate. Each gate works differently.

My panels, for example, are programmed by changing the name of the object to the name of the destination, and the description to the hypergrid address. Then click once on a panel to set it, and walk through it to teleport. The panels automatically go black if the destination is down.

The flat panel has a white label on top with the name of the destination. The round panel has hovertext.

I personally prefer not to use hover text since it’s kind of hard to see, but it does open up a lot of design options.

What the round panel looks like up close.
What the round panel looks like up close.

If you just want the script for the round gate with hover text, you can download it here: MetaMarias Round Hypergate Panel Script with Hypertext v1.0

To use the round gate script, just create a cylinder, flatten it, rotate it to the orientation you want, and put the script in it, and the texture below on the top face:

CC0 portal 16-cell animation
(Click for full-size image.)

All of my content is CC0 licensed, for use in any way whatsover, as is Linda Kellie’s. The other gates have their own license terms.

]]>
https://www.hypergridbusiness.com/2014/10/free-gates-on-hyperica/feed/ 2
Hypergate script with region restart fix https://www.hypergridbusiness.com/2014/10/hypergate-script-with-region-restart-fix/?utm_source=rss&utm_medium=rss&utm_campaign=hypergate-script-with-region-restart-fix https://www.hypergridbusiness.com/2014/10/hypergate-script-with-region-restart-fix/#comments Sun, 19 Oct 2014 06:56:21 +0000 https://www.hypergridbusiness.com/?p=48389 The Hyperica hyperport gets a decent amount of traffic, and has a few scripts running on it. Plus, I recently rearranged the grid, and my hosting company updated our software.

Let’s just say that region restarts are common place.

And my gate scripts kept breaking.

It’s turns out, this wasn’t a coincidence. Fred Beckhusen tracked down the problem, and it was in the llDetectVolume command. This script command allows a gate to be phantom, allowing avatars to walk through it, but still detect it as a collision.

And it gets reset the wrong way when a region is restarted.

Beckhusen posted a fix to the problem, which I incorporated into my script.

I’ve also set it up so that it automatically changes the size of the font based on the length of the name of the destination. It’s adjusted to fit well with the gate frames I have. If you have differently-shaped frames, you may need to fiddle with that.

You can download the new script here: MetaMarias Hypergate Panel Script v1.0

Now, I have a lot of gates up on Hyperica. And, like anyone else running a hyperport, I find that updating all these scripts is a never-ending challenge.

Fortunately, Beckhusen saved the day here, as well, pointing me to his script in the Phaze Demesnes free LSL script library that allows me to update all the scripts in all the gates all at once, from a single controller. Whoo hoo!

It was remarkably easy to use. I put the client script in my gate prim. And the control script in a controller box. Then I put a gate script in the gate prim. When I dropped an updated version of that same script — with the same name — in the controller box, is was automatically sent to the gate prim.

Or, at least, in worked in my lab!

Newly updated gates on Hyperica.
Newly updated gates on Hyperica.

Assembling the gate

To put a working gate together, you need four things — the script above, a swirly water animation, a flat panel for the gate, and a frame to go around the whole thing.

To create the gate, rez a box, change the texture to plain white, and change the following settings, leaving the rest to their default values:

  • Size X: 3
  • Size Y: 4
  • Size Z: 0.005
  • Rotation X: 90
  • Taper Y: 1
  • Top Shear Y: 0.25

Click on “Select Face” and put this water texture on just the bottom panel:

CC0 portal 16-cell animation

Adjust the scale on the bottom panel:

  • Horizontal scale: 0.25
  • Vertical scale: 0.25

For the white section on top, adjust the texture scale to the following:

  • Horizontal scale: 1
  • Vertical scale: 0.25

Then build a frame around the whole thing using any materials you’ve got on hand, like this:

The gate is just the flat panel and can be slid into a gate frame.
The gate is just the flat panel and can be slid into a gate frame.

The reason I switched away from my old round gates to this style of gate is because I can have the text label generated by the same script that operates the gate, and because it’s easier to walk into when it has a flat bottom. You can just as easily make the gate frame a full circle, of course.

Also, I prefer to use text labels instead of hover text because hover text is hard to see — and it doesn’t work at all with the Oculus Rift.

]]>
https://www.hypergridbusiness.com/2014/10/hypergate-script-with-region-restart-fix/feed/ 5
How to make quick metal and silk textures in GIMP https://www.hypergridbusiness.com/2014/10/how-to-make-quick-metal-and-silk-textures-in-gimp/?utm_source=rss&utm_medium=rss&utm_campaign=how-to-make-quick-metal-and-silk-textures-in-gimp https://www.hypergridbusiness.com/2014/10/how-to-make-quick-metal-and-silk-textures-in-gimp/#comments Sun, 12 Oct 2014 00:42:18 +0000 https://www.hypergridbusiness.com/?p=48203 I just spent an hour Googling around for this because half the tutorials out there are for older versions of GIMP, so they no longer work!

But I needed some quick gold and silver textures — and this technique works for silks, as well.

Here’s how to do it.

Create a new image, sized the way you want it. Mine is 512 by 512.

Then go to Filters -> Render -> Clouds -> Solid Noise. Set X and Y both to “5” and click on “Tileable.”

This is what you get:

Gold texture Step 1 -- clouds

Then go to Colors -> Brightness-Contrast  and set the “Contrast” slider to 25. Then go to Filters -> Blur -> Gaussian Blur — I set both X and Y to 10.

This is what you get:

Gold texture Step 2 -- blur

Now pick a gradient in the Gradient Dialog window, circled in red below.

Choosing a gradient

If your screen doesn’t look like mine, but has separate docks hanging out all over the place, go to Windows -> Single-Window Mode. This way, you won’t be losing your tool boxes all the time. But maybe it’s just me.

Then go to Colors -> Map -> Gradient Map.

This is what you get:

Gold texture Step 3 -- gold gradient

(Click on the image for full-sized version.)

You can make different versions of this by picking different gradients in the gradient dialog box.

For example, you can make a nice silky effect by picking the “Four bars” or “Three bars sin” gradients.

Here it is with the “Three bars sin” gradient:

Four Bars gradient map

That makes for a nice, silky effect. Now if it was only in color…. which brings me to the last kind of gradient — one of the most useful ones of all, the foreground-to-background gradient.

First, change your foreground and background colors.

The foreground and background color picker is at the bottom of the tools dock.
The foreground and background color picker is at the bottom of the tools dock.

I chose a dark red as my background color, and a light shade of the same color for the foreground.

Then I selected the “FG to BG” gradient, which is fourth from the top, and clicked on Colors -> Map -> Gradient Map again. Ta da!

Two colors gradient map

Here it is again, this time with a dark blue and light blue combination:

Two colors gradient map -- blue

But, you might ask — is it still tileable after applying all these gradients? It should be. Let’s check. I go to Filters->Map->Tile and choose 1024 as the new height and width.

And here’s the result:

Red silk -- tiled

So tileable is a definite go. I might pick a different cloud pattern, however, to avoid that slight vertical line effect.

So now you don’t have to hunt all over the web for just the right shade of silk, with the right license terms, because you can make your own in just a couple of minutes.

As always, every image in this tutorial can be downloaded and used in any way shape or form, since I’m releasing it under a CCo “public domain” license.

]]>
https://www.hypergridbusiness.com/2014/10/how-to-make-quick-metal-and-silk-textures-in-gimp/feed/ 2
Easier Google Spreadsheet Visitor Logger https://www.hypergridbusiness.com/2014/10/easier-google-spreadsheet-visitor-logger/?utm_source=rss&utm_medium=rss&utm_campaign=easier-google-spreadsheet-visitor-logger https://www.hypergridbusiness.com/2014/10/easier-google-spreadsheet-visitor-logger/#comments Thu, 09 Oct 2014 02:50:35 +0000 https://www.hypergridbusiness.com/?p=48164 One of the most popular articles on this site is Log your visitors to Google spreadsheet, which I wrote in 2012, and which Zuza Ritt updated the following year.

Here’s an easier way to do it, and the script to go with it.

Step One: Create the form

Sign in to your Google Drive (formerly Google Docs) account, click on the big red “Create” button and select “Form.” Name it something like “Visitor Tracker” or “My Guestbook” — the title doesn’t matter.

Then add exactly two questions, both plain text fields. Name the first Location and the second Avatar.

Create new form -- step one

You might see some settings options at the top of the form — leave them all unchecked.

Step Two: Get the special Google Forms link

Now look up at the menu, and under “Responses” click on “Get Pre-filled URL.”

Prefill form -- step two

Under “Location” type the word “Location.”

Under “Avatar” type the word “Avatar.”

Hit “Submit.”

You will get a long link to copy. Copy that link.

Save link -- step three

Step Three: Use that link to create the visitor logger

Now go in-world. Create any old object. Paste the link you copied into the description for that object.

Then cut and paste the following script into it:

Easier Google Spreadsheet Visitor Logger

The script pulls all the info it needs out of that link, and doesn’t need any further editing or configuration.

This script records a time stamp, and saves both the region name and the grid name. So you can use it on multiple regions. Or, say, if you have stores on several grids, you can track all of those visitors in a single spreadsheet.Visitor spreadsheet

This script records a time stamp, and saves both the region name and the grid name. So you can use it on multiple regions. Or, say, if you have stores on several grids, you can track all of those visitors in a single spreadsheet.

Next, I plan to add in a landmark giver and put it into a welcome medallion that would go on the ground in the middle of the welcome area.

When that’s done, I’ll put the whole thing up on the Kitely Market.

Visitor Logger

A hard-coded alternative

For some reason, once I moved the script to another grid, it stopped working. In particular, the osGetGridName command returned an error message instead, and the llParseString2List function insisted on working incorrectly — breaking up a number into two pieces even though there was no separator or spacer there. (If anyone has heard of this happening, please let me know!)

So here’s an alternative to the above script in case other people have similar issues. Instead of copying-and-pasting the long submitted form URL, you have to open up the script and paste it into the first three lines of the script.

Parsing the form URL

Copy everything in the first half of the URL — up to, but not including “/viewform?…” and paste it into the first line. Do not include the slash. The first line of the script currently says the following:

string FrontPart = "https://docs.google.com/forms/d/#########################################";

So this script will not work out of the box — you will have to update it with your own info.

Then the second line in the script sets the LocationKey, which is the next longer number in the URL, the third line sets the AvatarKey, which is the last long number in the URL.

Finally, the fourth line lets you set the grid’s name.

So you still have to edit the script, but at least you don’t have to look around for where to make the edits. By hardcoding this data, it also makes the script shorter and less liable to break.

It still looks up the current region name, so as long as you have it on the same grid, once you have it updated with your own info you can just copy this script around to any object that needs it.

Download the script here: Easier Google Spreadsheet Visitor Logger — hardcoded

]]>
https://www.hypergridbusiness.com/2014/10/easier-google-spreadsheet-visitor-logger/feed/ 33
Hypergate script with built-in threat level check https://www.hypergridbusiness.com/2014/09/hypergate-script-with-built-in-threat-level-check/?utm_source=rss&utm_medium=rss&utm_campaign=hypergate-script-with-built-in-threat-level-check https://www.hypergridbusiness.com/2014/09/hypergate-script-with-built-in-threat-level-check/#comments Mon, 29 Sep 2014 23:50:42 +0000 https://www.hypergridbusiness.com/?p=48003 The gate is just the flat panel and can be slid into a gate frame.
The gate is just the flat panel and can be slid into a gate frame.

One annoying problem I’ve had with hypergate teleport scripts is that some regions have the right threat level settings to run walk-through scripts, while others don’t, and require a different command to activate the teleport.

Users had to know what their threat levels were — and who knows that? And they were the wrong types of threat levels, the users had to go into the script and edit it, replacing one command with another — and who wants to do that?

Unfortunately, there’s no function in OpenSim to tell you what the threat levels are. Which is too bad — it would be convenient to have one.

But there is a work-around, and it’s explained on this page.

The sample script provider loops through and checks the availability of most of the major functions you’d want to run. And I recommend that you grab a copy to use until someone creates an OSSL command.

But I only needed to check one function — osTeleportAgent. So I rewrote the script just to check that one function. If you need to check just one function for a script you’re writing, here it is: Check for osTeleport function.

Then I took that script, and smooshed it together with my easy hypergate script, updated with my own special effect, and moved the various pieces around until it worked.

Just put the script in any object, change the name of the object to the name of the destination, and the description to the destination’s hypergrid address. The script even checks whether the destination region is active or not — and turns black if its down.

I recommend creating a flat panel for the gate itself — as described here — and making the frame of the gate a separate object.

Download the CCO hypergate script for flat panel with whoosh, status and threat level check.

I’ve also updated the Kitely Market listing for this gate.

]]>
https://www.hypergridbusiness.com/2014/09/hypergate-script-with-built-in-threat-level-check/feed/ 5
How to install OpenSim https://www.hypergridbusiness.com/2014/09/how-to-install-opensim/?utm_source=rss&utm_medium=rss&utm_campaign=how-to-install-opensim https://www.hypergridbusiness.com/2014/09/how-to-install-opensim/#comments Tue, 23 Sep 2014 16:07:59 +0000 https://www.hypergridbusiness.com/?p=47931 OpenSim is a free, open-source platform for creating immersive, 3D virtual worlds. The user interface looks almost exactly like Second Life.

The OpenSim software comes in two major parts. The viewers allow you to explore OpenSim worlds, while the server software allows you to create your own world.

I want to explore OpenSim worlds

The current recommended viewer for OpenSim is Firestorm.

You will also need to create a user account on an OpenSim grid.

If you are interested in an account on a grid that allows you to travel throughout the metaverse, try Kitely.

Follow the instructions to create a new account and log into Kitely for the first time. To travel to other OpenSim virtual worlds — more than 150 at last count — pull up the Map window (CTRL-M) and past the destination’s hypergrid address into the search field, hit the “Search” button and then press “Teleport.” The Hyperica directory lists hundreds of hypergrid destinations. Also check out the Hypergrid Destinations Google Plus community.

The Hypergrid Safari visits the Hyperica hyperport.
The Hypergrid Safari visits the Hyperica hyperport.

I want to create a small, free virtual world for myself or my friends

If you are looking for a small world — up to 256 virtual acres of land– set up a mini-grid with Sim-on-a-Stick.

This installer sets up the virtual world servers, its associated MySQL database and the Apache Web server. Then use the Firestorm viewer from above to enter your world.

You will be able to use your new avatar to travel to other grids as well, and have residents of other grids visit your world, if your home network is properly configured. More details here.

Sim-on-a-Stick's Ener Hax.
Sim-on-a-Stick’s Ener Hax.

I want to create a big world where I can rent out land

You will need the full grid version of OpenSim, which you can download from OpenSimulator.org.

The mini-grid version of OpenSim runs all regions and central grid services inside a single server — more exactly, within a single instance of OpenSim. As a result, it can only get as big as that one server can handle.

The full version of OpenSim uses separate servers for the central grid services and for the regions, allowing a grid to scale indefinitely. However, configuration can be tricky. Read the instructions here.

OpenSim full grid architecture. (Image courtesy OpenSimulator.org.)
OpenSim full grid architecture. (Image courtesy OpenSimulator.org.)

I changed my mind and would rather pay someone to do that for me

OpenSim regions equivalent in size and performance to standard Second Life regions start at just $5 a month (compared to $300 a month on Second Life). With no setup fees. (Compared to the $1,000 setup fee on Second Life.)

If you want someone to run a whole grid for you, prices start at $25 a month for central grid services, and then regular rates would apply for the regions you want to have on the grid.

Renting regions instead of running them at home means that you can have more visitors on a region, and someone else takes care of backups and maintenance. Outsourcing full grid management allows grid owners to focus on creating content, building the community, and marketing their grids instead of dealing with the technology.

Check out the full list of OpenSim hosting providers here. Or just browse through the bargain-priced vendors or the editors’ picks.

]]>
https://www.hypergridbusiness.com/2014/09/how-to-install-opensim/feed/ 26
Copy this Terms of Service policy for your grid https://www.hypergridbusiness.com/2014/07/copy-this-terms-of-service-policy-for-your-grid/?utm_source=rss&utm_medium=rss&utm_campaign=copy-this-terms-of-service-policy-for-your-grid https://www.hypergridbusiness.com/2014/07/copy-this-terms-of-service-policy-for-your-grid/#comments Sun, 20 Jul 2014 13:26:41 +0000 https://www.hypergridbusiness.com/?p=47181 (Image courtesy Sebastien Wiertz via Flickr.)
(Image courtesy Sebastien Wiertz via Flickr.)

In doing this month’s stats report, I updated the Terms of Service and Intellectual Property Rights policy links for a few grids. And I got to wondering about all the other grids that don’t have these policies posted. Out of 213 active grids this month, I only have links to 23 Terms of Service pages, and only 14 pages that explain how to get infringing content removed from a grid.

The lack of good content protection is keeping many creators away from OpenSim.

But I understand that creating a policy is hard work, and grid owners have a lot of other stuff they’re dealing with all the time. So here’s I’m offering a basic policy that any grid can use. I am not a lawyer, and this is not intended as legal advice, but is for informational purposes only.

Feel free to copy and paste, and adapt for your own needs.

In particular, if you have a redeemable currency on your grid, you’ll need to have a real lawyer draw up your policy because the laws on this are very strict. The policy below is for grids with no in-world economies or fictional currencies only.

I’m releasing this sample policy under a CC0 license, which is as close to putting it into the public domain as you can get. My goal in writing this is to have a common-sense policy that a human being will actually be able to read, instead of just blindly agreeing to them.

TERMS OF SERVICE
Our grid's goal is to have a safe, respectful virtual environment for our residents and visitors. By logging in, or teleporting in via hypergrid, you agree to abide by our rules.

We promise:
To protect your privacy as much as legally possible. (In other words, in all cases except a legal subpoena.) We will use your personal contact information only for billing, service announcements, and for other communications that you have previously agreed to. If we need to look at your personal data for any other reason, such as support, we will ask your permission first.
To respect intellectual property by promptly taking down infringing content, and by asking for permission before using users' content in marketing materials or in any other way other than what's required for normal grid operations.

To make sure to give adequate notice before we shut down the grid so that you can make backups of all exportable content and get a refund of any money owed to you by the grid.

To allow you to make backups of your own creations, and of content marked exportable by its creators.

You promise:

To not harass other users, or personally attack them based on race, gender, sexual preference, religion, or other affiliation.

To respect the intellectual property rights of others by uploading only appropriately licensed content, and by exporting only content that you yourself have created or have permission to export.

To respect maturity ratings by rezzing only appropriate content and engaging in appropriate behaviors.

To respect  the privacy of fellow users.

You agree:

That when you upload your content to our grid, or create new content on our platform, that we have your permission to distribute that content to other users per your specifications. This allows you to have other users see your content, and enables you to sell or transfer your content in-world.

That we also have the right to showcase your content in directories and destination guides.

That we can transfer these rights to new owners if we sell the entire grid, so that the new owners can continue to offer the same services without interruption.

That we are only asking for the rights to use your content as part of the virtual world -- you retain all the copyrights to the original content.

That we can shut down your account at any time.

That any in-world currency is fictional, to be used for entertainment purposes only.

That there might be outages, or content losses, or other disruptions, and that we're not liable for any damages that may result.

That the only exportable content is content that you yourself have created or content that is marked with the "export" permission. If the "export" permission is not yet enabled, exportable content is full-perm content.
]]>
https://www.hypergridbusiness.com/2014/07/copy-this-terms-of-service-policy-for-your-grid/feed/ 9
Copy this copyright policy for your grid https://www.hypergridbusiness.com/2014/07/copy-this-copyright-policy-for-your-grid/?utm_source=rss&utm_medium=rss&utm_campaign=copy-this-copyright-policy-for-your-grid https://www.hypergridbusiness.com/2014/07/copy-this-copyright-policy-for-your-grid/#comments Sun, 20 Jul 2014 13:25:56 +0000 https://www.hypergridbusiness.com/?p=47174 (Image courtesy Sebastien Wiertz via Flickr.)
(Image courtesy Sebastien Wiertz via Flickr.)

In doing this month’s stats report, I updated the Terms of Service and Intellectual Property Rights policies for a few grids. And I got to wondering about all the other grids that don’t have these policies posted. Out of 213 active grids this month, I only have links to 23 Terms of Service pages, and only 14 pages that explain how to get infringing content removed from a grid.

The lack of good content protection is keeping many creators away from OpenSim.

But I understand that creating a policy is hard work, and grid owners have a lot of other stuff they’re dealing with all the time. So here’s I’m offering a basic policy that any grid can use. Feel free to copy and paste, and adapt for your own needs.

If you’re a commercial grid, I also strongly recommend that you register with the US Copyright office to get DMCA safe harbor for a one-time fee of $105. Several big grids have already done so, including InWorldz and Virtual Highway. You can register even if your grid is based outside of the United States — after all, who’s more likely to sue you than your U.S. users? One international grids that’s done that is Kitely, which is based in Israel.

Remember that the DMCA isn’t a special US law that forces websites or grids to take extra steps to protect content. Every country out there has pretty much the same steps. The DMCA registration is insurance to protect you against being sued as long as you follow those steps.

I’m releasing this sample policy under a CC0 license, which is as close to putting it into the public domain as you can get. I am not a lawyer, and this is not intended as legal advice, but is for informational purposes only.

My goal in writing this is to have a common-sense policy that a human being will actually be able to read and use.

INTELLECTUAL PROPERTY RIGHTS POLICY

Our grid respects the rights of content creators and will immediately take down infringing content.

Users who repeatedly infringe on others' intellectual property rights will be banned. 

Export of non-exportable content via OAR region backups, IAR inventory backups, viewer-based exports or hypergrid teleports is not permitted. 

If you are a content creator, and discover copies of your content on our grid without your permission, please email admin@ourgrid.com with the following information:
  • Your legal name and real-world contact information, including address, telephone, and email.
  • Enough information for us to locate the infringing content, such as in-world locations and owners' names.
  • Enough information for us to know that you are the original copyright holder, such as a link to your Second Life Marketplace, Kitely Market, or InBiz listings for that content.
  • The following legally-mandated statement:  "I have a good faith belief that the use of the described material in the manner complained of is not authorized by the copyright owner, its agent, or the law. I swear that the information in the notification is accurate and, under penalty of perjury, that I am the copyright owner or am authorized to act on behalf of the owner of an exclusive right that is allegedly infringed."

You can also create an online form for takedown requests, such as what Kitely has here.

Why the need for legal names? Because copyright ownership is a legal thing, associated with legal persons and corporations. A typical avatar has no legal standing. A grid can choose, if it wants, to take down infringing content without a legal complaint, but it isn’t required to do so. Plus, the “John Smith” who uploaded the allegedly infringing content to your grid might actually turn out to be the creator themselves, under a different name.

]]>
https://www.hypergridbusiness.com/2014/07/copy-this-copyright-policy-for-your-grid/feed/ 10
Template for Content Provider Agreement https://www.hypergridbusiness.com/2014/07/template-for-content-provider-agreement/?utm_source=rss&utm_medium=rss&utm_campaign=template-for-content-provider-agreement https://www.hypergridbusiness.com/2014/07/template-for-content-provider-agreement/#comments Mon, 07 Jul 2014 17:51:31 +0000 https://www.hypergridbusiness.com/?p=47036 I recently contracted with a builder to do some work on the Hyperica hyperport, and created a new provider agreement for the project.

At the start of the project, before we had negotiated any terms, there were a bunch of options to pick from. The ones that were relevant to our project are included in this agreement, and might be relevant to yours, as well.

google-doc-download-icon
Click to open then save copy.

Most of it should be self-explanatory. Here are some explanations for the more technical parts:

EIN or SSN

In the United States, most companies have an EIN — an Employer Identification Number — provided free by the IRS through a quick-and-easy online application. An EIN allow companies to hire employees and open bank accounts. If a company is a single proprietorship — which most freelance designers are — a Social Security number serves the same purpose.

The reason you need this information is that content design is a business expense, and you will be deducting it from your taxes. If you get audited, the IRS will want to know who you paid the money to. If you pay more than $600 to a particular designer, you will also need to file a 1099 form at the end of the year.

Outside the U.S., you should replace this part with your local equivalents.

Work and delivery schedule

Sections 1 and 2 of the agreement are where you spell out what you expect from the designer, and when.

Be as specific as possible here. The vaguer you are, the more likely it is that there will be room for misinterpretation. Do you need OAR files? IAR files? Regions of particular sizes? Buildings? Other types of content? The template includes some of the things that people usually forget about, including sketches for the proposed build, a palette of colors and materials, and a navigation plan for the build.

Set up a schedule of when you expect everything delivered.

For large builds, it’s best to do this in phases, with payment linked to successful completion of each phase. That way, if a project is going completely wrong, you’ll know early on, and can cancel the agreement and find another provider before you get in too deep.

Rights and licenses

Sections 3, 4, and 5 spells out all the rights and licenses involved.

To start with, you need to have the provider make sure that they have the rights for all the content they’re providing you, either because they’re creating it from scratch, or because they have the proper agreements for the third-party content they’re using.

If you have any doubts at all as to where your provider is getting their stuff, ask them to start with a blank slate of public domain images, scripts and objects. The Linda Kellie collection is a good place to start.

Having proper provenance is particularly important for schools and corporations who might be attractive targets for content infringement lawsuits. You can also provide your creator with a budget that they can use on the Kitely Market, which does an exemplary job of protecting creator rights.

This part should be non-negotiable. If a creator can’t guarantee provenance of content, or be willing work within a limited selection of pre-approved, safe content, you should get another creator.

What you can negotiate is what rights you will get to what the creator builds. If at all possible, ask for “work for hire” or “all rights.” In the U.S., “work for hire” means that, for all effects and purposes, you created the content yourself. You own the copyright, and you can do anything with the content that you want. In jurisdictions where “work for hire” contracts aren’t legal, you want to default to an “all rights” contract which is almost the same thing. In particular, it means the creator can’t reuse the stuff they built for you with other clients.

But maybe you don’t care if your content is unique. Say, you’re hiring someone to build a classroom. Do you care if a school on the other side of the planet has the same exact classroom? If you don’t care, ask the creator for a discount in return for more limited rights. You get to save money, and the creator gets to resell the same work to other clients.

Finally, Section 5 also covers some other rights-related issues. For example, even if you have a “work for hire” contract with the creator, you may allow them to take pictures of the work — or actual copies of the work — to use in a portfolio. That way, future customers can see the kinds of things this particular creator has done in the past.

This section also covers attribution. Some creators just want to get paid. Others want to see their names up in lights. Discuss this up front so that nobody’s feelings get hurt. You might also get a discount if you agree to put the creator’s name or logo in a prominent location on the build.

Payment schedule

Sections 6, 7 and 8 cover how much the creator will get paid, when they get paid, and how they get paid. Being clear and specific about this up front will save a lot of headaches down the line.

One thing you might want to spell out is who pays the fees for any money transfers. As a general rule of thumb, the customer pays any fees associated with sending the money, and the vendor pays any fees associated with receiving the money. So, for example, with a wire transfer, the originating bank might have a fee to send the wire out — the customer pays this. Then, when the wire is received, money may be taken out by the intermediary and destination banks — the vendor covers that part. Similarly, for PayPal transactions, the charge comes out on the vendor side — there is no fee to the customer for sending the money.

If the creator wants to have these fees paid by the customer, they should be included in the total cost of the project and spelled out up front.

Legalese

Sections 9, 10, 11, 12, and 13 are pretty standard for this type of contract. The vendor agrees that they’re an independent contractor, not your employee, indemnifies you against any costs associated with problems that they have caused — such as copyright infringement. It spells out the country whose laws apply, who will cover legal costs if there’s a problem, and, finally, says that there are no side agreements.

That last section is worth paying attention to, by the way. It means that, after the contract is signed, you can’t say, “Oh, by the way, I forgot this one thing — can you do it?” without adding it to the contract and re-signing it. Otherwise, you’ll end up with a situation where the creator will insist that you never said anything, and you’ll say that you put it in an email, and the creator will say, “Oh, yeah, I forgot all about that — I was just going by the contract.”

Because they will.

Click to open then save copy.
Click to open then save copy.

The agreement is licensed CC0, for anyone to use, edit, or distribute without restriction.

]]>
https://www.hypergridbusiness.com/2014/07/template-for-content-provider-agreement/feed/ 4
Sound and explosion effects for hypergate portal https://www.hypergridbusiness.com/2014/05/sound-and-explosion-effects-for-hypergate-portal/?utm_source=rss&utm_medium=rss&utm_campaign=sound-and-explosion-effects-for-hypergate-portal https://www.hypergridbusiness.com/2014/05/sound-and-explosion-effects-for-hypergate-portal/#respond Thu, 29 May 2014 22:20:34 +0000 https://www.hypergridbusiness.com/?p=46451 Today, I decided that what my gates were missing were sound and light effects. Other gates had whooshing noises and particle explosions — I wanted them, too.

I couldn’t find any that I liked. Maybe I didn’t search hard enough but anyway, I looked up the instructions for llPlaySound and llParticleSystem and — after a couple of hours of trial-and-error — created my own.

The script attached is completely public domain, CC0 license, for use in any way, shape or form, including commercial. Go nuts.

Particle effect
I can’t get enough of that light show.

Put the script on any box, touch it, and watch the effects. Feel free to play around with the numbers on the llParticleSystem parameters to change the particle colors, sizes, speed, and other attributes. I recommend changing one number at a time to see what it does. Or you can use this handy particle effects tutorial here.

When I put the script inside a gate, however, I plan to change it so that it’s activated when someone walks into a gate, instead of when someone touches it.

The sound effect is actually the system teleport sound.

llPlaySound("d7a9a565-a013-2a69-797d-5332baa1a947", 1);

Makes a very nice whoosh-y noise, and, of course, the teleport sound is appropriate. You can find more system sounds here.

Download the script here: Whoosh effect for teleports.

]]>
https://www.hypergridbusiness.com/2014/05/sound-and-explosion-effects-for-hypergate-portal/feed/ 0
New interactive hypergate script https://www.hypergridbusiness.com/2014/04/new-interactive-hypergate-script/?utm_source=rss&utm_medium=rss&utm_campaign=new-interactive-hypergate-script https://www.hypergridbusiness.com/2014/04/new-interactive-hypergate-script/#respond Sun, 27 Apr 2014 18:32:07 +0000 https://www.hypergridbusiness.com/?p=45842 We’re in the process of redoing the Hyperica hyperport.

Part of the process is updating all the gate scripts.

Over the past couple of weeks, I’ve gone through and got rid of all the non-working scripts, so all the gates on hg.hyperica.com:8022 are usable.

It doesn’t necessarily mean that they work — the destination might be down, or might have moved. But the gate script itself is sound, though basic.

But I wanted to add a checking function, to see if the destination was actually up or not.

And to create a gate that would work better inside a nice shaped gate frame, and would also automatically show its destination as text on a prim, not just floating text, which can be hard to read.

The object on the left is the scripted functional gate. You can slide it into the gateway of your choice.
The object on the left is the scripted functional gate. You can slide it into the gateway of your choice, as I did with the gate on the right.

This is my current gate setup, which I’m sharing here.

The way it works is that you set the destination by editing the description line of the gate itself. For example, a description like “WELCOME,1” would automatically look up the top welcome region destination on Hyperica. In this case, LBSA Plaza on OSgrid.

Other options include EDUCATION, RETAIL, and VENUES. Venues are places where events are likely to happen, like clubs or concert halls.

Touch the gate and it will look up the destination on Hyperica and reset itself. It will also check if the destination is active, and turn black if it is not.

To use the gate, just walk through it. Right now, it’s set to instant teleports, but I’ve also included a line in the script for map-based teleports.

Instant teleports are nice — you walk through and bam, you’re there — but require appropriate threat level settings on your region, since the instant teleport function can easily be abused!

Map-based teleports bring up the map of the destination, and wait for the user to click “Teleport” before actually teleporting them over.

Download the script here: Hyperica Look up script 2014

]]>
https://www.hypergridbusiness.com/2014/04/new-interactive-hypergate-script/feed/ 0
Easy sticky note script https://www.hypergridbusiness.com/2014/03/easy-sticky-note-script/?utm_source=rss&utm_medium=rss&utm_campaign=easy-sticky-note-script https://www.hypergridbusiness.com/2014/03/easy-sticky-note-script/#comments Tue, 25 Mar 2014 01:35:01 +0000 https://www.hypergridbusiness.com/?p=45306 So there I am, making plans to redo the website, and put out some special reports and I realized that what I was really missing was an in-world project planning board.

Now, last time I just used a Google document and media-on-a-prim, but this time I wanted something a little bit more … tactile.

I wanted colored Post-It notes on a big board. I searched around and I couldn’t find one. Progress was stalled until I built one on my own.

Fortunately, OpenSim has a way to put text on in-world surfaces without creating a new texture each time, so the project was doable.

Unfortunately, it’s been a while since I wrote anything in LSL and I had to look up each and every command. And find out how to say “is not equal to” and set colors and everything else that goes into making a virtual Post-It.

And it’s done!

A close-up view of my new project planning board.
A close-up view of my new project planning board.

The board itself is just a single squished prim. The size is 2.5 by 1 by .005 meters, with a taper of 0.25 for both the X and Y values and a slice ending at 0.5.  It’s textured system plywood, painted brown, and the center surface is just system grass with a light violet tint to make it look vaguely like corkboard.

The little Post-It notes are just simple flat squares, 0.2 by 0.2 by 0.001. The magic is in this Post-It Script.

The way it works is that it pulls the text from the description line of the Post-It. Now, there’s no way for an object to be prodded into action once its description has been changed — as far as I know — so you also have to click it to get the text to update. I’ve set it up so that if you click it near the top of the note, it also increases the font size. If you click near the bottom, it decreases the font size. And if you click near the middle, it changes color!

Updating the text takes a few seconds since OpenSim has to generate the image. I’m hoping that they’ll speed it up. So when you click in the middle, to change the color, it only updates the text after checking to see if the description has changed, so you can cycle through the colors quickly to find the one you want.

I have four colors in the script right now, yellow, pink, violet and tan, but you can add as many as you’d like. The colors are defined right at the top of the script. I looked up the color codes for Post-Its on this Instructables page. Then, in-world, I opened an object edit menu and pulled up the color selector and used it to convert the standard HTML color values into the Second Life color codes.

Bulletin board sticky note closeup
A close-up of a sticky note.

So here’s me enjoying my new project planning board.

My Kitely avatar trying to figure out where the permission settings are going wrong.
My Kitely avatar trying to figure out where the permission settings are going wrong. Also, enjoying her new Brown Flower Heels by Sunny Whitfield.

And then I figured that other people might like this as well, and might not want to mess around with the scripts, so I decided to add it to the Kitely Market. This was an opportunity for me to test the hypergrid delivery mechanism as well, from the merchant point of view.

Now, I don’t know how other people do this, but I wanted to have people rez the board, and have the sticky notes attached to the board but not linked to it, so that they can be moved around. Or click-dragged and copied.

So I put the sticky notes inside the corkboard object and wrote a script so that when the corkboard was rezzed it would pull the sticky notes out of inventory and put them up on the side there, like they are in the picture. This required a quick refresher course on Second Life’s quarternion-based object rotation system and vector addition. Here’s the Sticky Note Rezzer Script for Cork Board if you’re interested.

Okay, I was a math major at college and kind of know my way around vectors — but how does everyone else manage this?

Then came the hardest part of all. Putting all the pieces together in such a way that the permissions worked right. I wanted everything to be full perm, so that people could do whatever they want with this thing, or take the scripts apart and use to build something new. Now, everything was created by me, completely from scratch, including the scripts. So I should have been able to set the permissions any way I wanted. You’d think — but no.

For example, I had four identical sticky  notes inside this object, different only in the object names and descriptions. I created them by shift-clicking-and-dragging. You can’t get more identical than that. But sticky note number two was full perm, and the others were no-copy, no-modify, and nothing I did would change that. After futzing around for half the afternoon, I just deleted them, and rezzed multiple versions of the second sticky note. Then, just in case, I deleted the text-based textures on these four objects, since they weren’t regular textures but created via the script, and who knows what would happen if Kitely tried to send these things out over the hypergrid.

In the end, it took almost as long to pack up these sticky notes as it took to create the original script in the first place.

Next time anybody complains about merchants overcharging for their content, I invite you to come over so I can slap you around the facial area.

So here’s the link to the Cork Board with Sticky Notes on Kitely Market.

Oh, I almost forgot to mention — this is licensed CC0. I hereby affirm that everything is completely original, and that anyone can do anything they want with these scripts, including using them commercially or reselling them. It’s all fine with me.

]]>
https://www.hypergridbusiness.com/2014/03/easy-sticky-note-script/feed/ 5
Best metaverse communities https://www.hypergridbusiness.com/2014/02/best-metaverse-communities/?utm_source=rss&utm_medium=rss&utm_campaign=best-metaverse-communities https://www.hypergridbusiness.com/2014/02/best-metaverse-communities/#comments Mon, 17 Feb 2014 21:34:04 +0000 https://www.hypergridbusiness.com/?p=44990 Last updated Feb. 19, 2015: Please click here for latest list of Metaverse Communities.

Staying on top of metaverse news and developments is hard. And getting help when you need it can be even harder. Fortunately, there are several online communities where OpenSim users share information and advice. Join in, ask away, and help out when you can.

OpenSim Virtual and other communities on Google Plus

OpenSim Virtual has rapidly become the go-to place for discussions about OpenSim, with more than 1,100 members.

Lots of discussions going on here. People post links to useful articles, share content, post event announcements and special offers, and ask for advice.

It’s a friendly, open and welcoming community.

OpenSim Virtual Google Plus community

Other useful OpenSim and hypergrid-related Google Plus communities include:

1DerWorld Hypergrid Roleplay OpenSim Working Radio Streams
3rd Rock Grid Hypergrid Safari Opensimulator
Alexander City Inworldz OpenSimulator Community Conference
Arts in Virtual Worlds Island Oasis OpenSimulators Gridcache
AuroraSim/WhiteCoreSim Kitely Virtual Opinion Outpost
Avatar Repertory Theater Littlefield Grid OSgrid.org
Avatar Safe Haven Lost World Grid Sanctuary
AviLabs Virtual World LSL scripting Second Life and other Virtual Worlds
Avination Metaverse Tours Secondlife & Opensim Hypergrid Role Players
AviWorlds Grid Metaverse Week in Review Selea’s World
Axis Grid Metropolis Metaversum The Adult Metaverse
Baroque Roleplay in Opensim New Opensim The Next Reality Grid
Content creators of the virtual worlds New World Studio Toy Inc.
Craft World Open Virtual UFSGrid
Firestorm on Opensimulator OpenSim Advertise Virtual Highway
Francogrid OpenSim Bloggers Virtual Identity
Friends of Arcadia Asylum OpenSim Creations Virtual Pedagogy
Gamification of Opensim Community Development OpenSim Destinations For Educators Virtual Worlds News and Gossip
Hypergrid Destinations OpenSim Medieval Roleplay Virtual Worlds Stats
Hypergrid Directory Opensim Resources VirtualmintaKa
Hypergrid Entrerpeneur Group OpenSim Vehicles
Hypergrid Events OpenSim Virtual

You can also follow the Google Plus Hypergrid Business page.

Community websites

A few sites have come and gone, trying to become the central meeting place for OpenSim users.

Avatar Social Network has become a popular place last year, with a big marketing push. SL Universe is an online discussion board that occasionally goes beyond Second Life issues to OpenSim. Similar online social networks include  Second Friends, SLX Connect, Moolto,  SL Space, and 2ndhub.

For content sharing, OpenSim Creations used to be the number one destination, with a wide variety of content, a large number of contributors, and an instant chat function, but closed down a couple of months ago due to technical difficulties.

OpenSim City is still active, with a forum, a place to share content, personal blogs, and a multi-grid events calendar.

And other social media platforms are used by avatars as well, including Flickr, Pinterest, Twitter, YouTube, and LinkedIn.

Grid forums

Many of the larger grids, both commercial and non-profit, have forums or discussion boards on their websites. These forums are often excellent resources for events, content, and advice.

The OSgrid forums are the most comprehensive, and a great resource for any OpenSim user, including those on other grids and running private grids and regions. It’s very active, with event announcements, technical discussions, building and scripting help, tutorials, viewers, and more.

OSgrid forum

Other grids with active forums include InWorldz, Kitely, Avination, Metropolis, Littlefield, FrancoGrid, GermanGrid, Virtual Highway, and Dorena’s World’s GridTalk.

Mailing lists, Twitter and IRC groups

OpenSim Users is a great mailing list to subscribe to, and very active, with 357 members. You can sign up for the list here.

And, for educators, the SLED mailing list is a must, and people discuss both Second Life and OpenSim. You can sign up for SLED here. A more OpenSim-focused list is the Opensim Educators Mailing List, with 26 members. You can sign up for it here.

And when I first tried to set up my own mini-grid, the IRC chat rooms wesere a great, fast place to find help — if people are around. You might need to check in a few times, however, to find a time when there are people on who can help. The OpenSim IRC channel is here. The OSgrid IRC channel is here.

Many grids and individual OpenSim users also have Twitter accounts — too many to list them all! However, for your convenience, you can check out my Virtual Worlds Twitter list which follows 453 people and companies. You can follow individual accounts on this list, or just follow the entire list — it currently has 104 subscribers. A slightly more narrowly-focused list, of just OpenSim grid accounts, is my OpenSim Grids Twitter list, which covers 77 grids and has 15 subscribers.

Facebook groups

There are several large groups on Facebook where people discuss virtual environments and related issues.

Singularity Network, with 10,247 members, is a closed group that you have to ask to join.

Virtual Worlds, with 5,126 members, is an open group, that covers Second Life and beyond. Virtual Worlds Association covers Second Life, OpenSim and the hypergrid, with 824 members. And there’s another group also called Virtual Worlds, with 444 members.

More OpenSim-specific, there’s New OpenSim, with 593 members, Open Simulator, with 185 members, Opensim Standalone & Co., with 162 members, and OpenSim News is also pretty active, with several recent announcements and 125 members.

Other groups include Virtual Worlds – Best Practices in Education, with 1,525 members, Virtual Worlds Education Roundtable, with 1,081 members, Immersive Worlds Plus, with 1,280 members, and Virtual Reality, with 482 members, which seems to have started out as just a group for Virtual Reality Grid members but has grown to encompass a wider array of people. There’s also Immersive World Education Outreach, with 468 members, Virtual World Educators, with 310 members, and Federal Virtual Worlds Challenge, with 114 members,

Facebook is also a popular place for grids to post news and event announcements, since more people check their Facebook feed than visit a grid’s home page.

Grids either have groups with members or pages that people can like — including InWorldz Creators & Builders, with 1,840 members, Avination, with 450 members, Another World, with 389 likes, Logicamp, with 367 likes, Kitely, with 252 likes, Everything about InWorldz, with 215 members, Craft Grid, with 182 members, OSGrid, with 166 members, InWorldz.com, with 164 members, the Unofficial InWorldz Advertising Group, with 151 members, Island Oasis LLC, with 136 likes, 3rd Rock Grid, with 109 members, VIBE, with 92 members, AviWorlds - Brasil, with 91 members, GermanGrid, with 90 members, Metropolis Opensimgrid, with 65 likes, FrancoGrid, with 61 members, Virtual Worlds Grid, with 50 members, Avination Live Music, with 33 members, and Littlefield Grid, with 16 likes.

LinkedIn groups

For the more professionally inclined, LinkedIn also offers some resources and professional networking opportunities for OpenSim users.

You should also check out the LinkedIn pages for Virtual Worlds, with 4,134 members, Virtual World Professional Networkers, with 1,595 members, Virtual Worlds Roadmap, with 915 members, Virtual Currency, with 872 members, Serious Games and Virtual Worlds, with 802 members, 3D Serious Games and Simulations For Training, with 730 members, OpenSimulator, with 506 members, the OpenMetaverse Foundation, with 147 members, Kitely, with 42 followers, the MOSES grid, with 68 members, and OpenSIM – Virtual Worlds, with 9 members.

There’s also the Hypergrid Business LinkedIn page, with 177 followers.

Are any communities missing? Please add them in the comments!

]]>
https://www.hypergridbusiness.com/2014/02/best-metaverse-communities/feed/ 11
Updated Hyperica gate scripts https://www.hypergridbusiness.com/2014/01/updated-hyperica-gate-scripts/?utm_source=rss&utm_medium=rss&utm_campaign=updated-hyperica-gate-scripts https://www.hypergridbusiness.com/2014/01/updated-hyperica-gate-scripts/#comments Wed, 29 Jan 2014 05:28:37 +0000 https://www.hypergridbusiness.com/?p=44894 These scripts are for people who are thinking to themselves — now that Maria is hiring a researcher and putting them to work on updating the Hyperica directory, wouldn’t it be nice if I could just grab content from there for my own gates.

Well it would be nice, and yes you can.

For example, Hyperica has a snapshot of each destination, along with its hypergrid address. Some people might want to pull down that image to use as a background for their own hypergate system. Now, you can download the image manually, then upload it to your grid, then add it to the object.

But Hyperica has over 300 destinations — and new ones being added all the time. And old ones go down all the time, too, or change their locations. Just setting up the gates in the first place would be a nightmare, and then keeping them up to date would be a struggle.

And I have a solution. This is a script that automatically goes to the Hyperica website and downloads the region you want. That is, if you want a region in a particular category. Say, you want the highest-rated region in the shopping category. Or the second highest-rated. Or the fourth region in the grid welcome regions category. You could do that. You can set up a little hyperport with, say, the top ten shopping destinations, and if you touch it, it will automatically update itself. So all you have to do to keep it current is touch it once in a while. Or you can add a timer, if you’re an advanced user. Just don’t update it too often — if you do, you might break our servers, and we don’t have the money yet to set up an actual database to handle this stuff.

The way it works is that you change the description line of the object, touch it, and it’s programmed. No messing around with the script required — unless you want to.

Here are the lookup categories: http://www.hyperica.com/lookup/

For example, http://www.hyperica.com/lookup/?cat=1&region=5&sort=2 Would show the fifth most recent region in the Art and Culture category. To test it, just paste the link into your browser. You should get the computer-friendly info page for that destination. (I haven’t figured out how to get the footers and headers not to show up.)

Here’s the script to download. It’s a text file: Snapshot from Hyperica Lookup Script

LBSA on OSgrid snapshot in-world

Put it on a box with a Z-size of 0.010 meters, Top shear of Y=0.35, and Slice Begin and End of E=0.500.

The script uses two commands unique to OpenSim. First, it pulls an image down off the Web and puts it on the prim, without needing media-on-a-prim. So it works great with old viewers. And, second, it puts text right on the prim as well, because OpenSim has a function to write on a prim surface, in case the hanging text over the object isn’t visible.

Automatic hypergate

You can put the destination snapshot in a nice frame if you want — mine is just hanging in the air right now, looking stupid. Some day, I swear on my mother’s grave, I will make it look better.

The matching gate to the snapshot script works the same way. You put the lookup URL in the description, and drop the script onto any object you’d like to be the gate. When you touch the object, it updates itself. When you collide with the object, it triggers the teleport.

Here’s the script to download: Snapshot from Hyperica Lookup Script

I have the script in a typical watery animated circle, lying flat on the ground. It’s on a raised platform, though, so people don’t walk into it accidentally.

Hypergate with snapshot setup

You can see the full setup above. Nothing fancy.

When I step on the gate, a teleport windows pops up, offering to take me to the destination on the target grid. I can have it be automatic as well, without the confirmation window. The trick is in the first part of the script, the “PerformTeleport” section.

To teleport using the map: llMapDestination(SimAddress, LandingPoint, LookAt);

To teleport instantly without using the map: osTeleportAgent( WhomToTeleport, SimAddress, LandingPoint, LookAt );

In the script I uploaded, the second option has a double slash in front of it, meaning that it’s inactive. If your region has OpenSim scripts enabled and the threat level set appropriately, you can remove the slashes, and put them in front of the first option. If your region is hosted by a vendor, ask them to set the threat level so as to allow the osTeleportAgent function. It’s often not enabled on public grids because people can abuse it.

Imagine walking across a floor and stepping on an otherwise totally innocuous spot and being teleported to a nude lesbian beach grid. No, scratch that, who would mind? Make that a teleport to a spam grid that tries to sell you variable annuities. Oh, the horror, the horror!

You can also use the osTeleportAgent command to create bullets and swords and other weapons that, when touching an avatar, send them straight to hell. Bwa ha ha ha.

]]>
https://www.hypergridbusiness.com/2014/01/updated-hyperica-gate-scripts/feed/ 1
Free OpenSim Downloads https://www.hypergridbusiness.com/2013/05/free-opensim-downloads/?utm_source=rss&utm_medium=rss&utm_campaign=free-opensim-downloads https://www.hypergridbusiness.com/2013/05/free-opensim-downloads/#comments Fri, 17 May 2013 18:31:55 +0000 https://www.hypergridbusiness.com/?p=43670 I had put up this page since Linda Kellie’s site was going down, but Zetamex just announced that they purchased it, and it will be staying up. Yeay. So you can continue to go there to download these things. There’s also a download page here, of all the OAR and IAR files.

Linda Kellie OAR files

The following are entire regions by Linda Kellie. They are licensed as “do anything you want with them, no attribution required” — which is equivalent to a CC0 or “public domain” license.

They are free to use for any purpose, including resale and commercial.

All these files are in  .tgz format. This means that you can load this without having to unzip it. Download it and put it into your bin file and then just load it as you would an .oar file but  instead of putting in filename.oar you willl put in filename.tgz for whatever OAR file you are trying to load.

There is a problem when trying to download these OAR’s using the Safari web browser. Either use a different browser, or  disable this Preferences option: “General > Open “safe” files after downloading”. That prevents Safari from automatically extracting the TAR files from the TGZ files. However, it also prevents opening other files automatically, such as PDF.

These OAR’s will work on AuroraSim as well but if you use them on an AuroraSim grid you will need to adjust the sit positions and the avatar clothing attachments.

myoar- english garden  myoar- swamp

myoar- garden center   myoar- stocked shoppingcenter

 

    

    

    

    

    

    

   

   

   

   

   

   myoar- opensim free furniture

 Aurora-Sim OARs

These OAR’s will work on OpenSim as well but if you use them on anOpenSim grid you will need to adjust the sit positions and the avatar clothing attachments.

  

 

 

]]>
https://www.hypergridbusiness.com/2013/05/free-opensim-downloads/feed/ 5
How to create a sign system https://www.hypergridbusiness.com/2013/05/how-to-create-a-sign-system/?utm_source=rss&utm_medium=rss&utm_campaign=how-to-create-a-sign-system https://www.hypergridbusiness.com/2013/05/how-to-create-a-sign-system/#comments Fri, 10 May 2013 01:06:40 +0000 https://www.hypergridbusiness.com/?p=43583 So I’m building a themed region — Maria’s Virtual Fit Club — on Kitely. (Facebook group here, Kitely login link here, story about the project here.)

So, the first thing I think about, because I’m at heart a traditional newspaper layout designer, is the style template for the signs. There’s nothing I hate more than to keep having to pull up a graphics program to create signs, then import the images into OpenSim.

And I couldn’t find any simple tutorials for how to do this, so I came up with my own method. If anybody knows how to do this better, please let me know!

So, first, I created a template of 16 different sign shapes, and a template of 16 different symbols, with the idea that I could layer them and put text in front of them and create quick-and-easy themed signs in-world.

Here’s my sign shapes template:

Sign shapes.
Sign shapes.

The white background is actually transparent. I’d upload the actual GIMP file, but WordPress won’t let me. The shapes are all made from scratch, and if you want to use this, feel free. The license terms are CC0, which is functionally equivalent to public domain.

And here is my symbol template:

Navigation Symbols

I tried to put on one texture all the most common navigation signs you’d need on a region. Again, I can’t upload the original GIMP file. The source material for these icons is Clker, which has public domain icons and clip art.

Then I upload the texture to a sign, and use this script to click through each of the 16 frames until I get to the sign I want: Texture Animation Script by Renee Roundfield.

To put the text in front of the sign texture, I wrote my own script, using OpenSim’s text-on-a-prim functions. Click here to download it: Draw text on transparent background.

Change the first couple of lines to replace the title text. You can also change the size of the text and the color of the text by editing the next couple of lines.

You can also change the font itself with OSSL. Add the following line:

DrawList = osSetFontName(DrawList, “Times”);

The default font is Arial, and you can also set it to Courier. I’ve tried out all three and they work, but I haven’t found out if there are any other fonts that can be used instead.

So the idea is, you create your sign, and put a new, transparent prim right in front it, load it with your sign text script, and just change the first lines of the script anytime you need new text for a sign.

Simple sign

Unfortunately, because of the transparency layering problem, I will need to go back and redo the sign templates so that they don’t have any transparency in them — otherwise, the text floating in front will disappear at random moments.

On a side note, you can modify the script so that signs change automatically. For example, they could welcome visitors by name, or say how much time is left until the next event starts. Another option is to pull the text of the sign from the description line, which would make it even easier to change.

]]>
https://www.hypergridbusiness.com/2013/05/how-to-create-a-sign-system/feed/ 5
3D environments for the enterprise https://www.hypergridbusiness.com/2013/03/3d-environments-full-list-of-enterprise-vendors/?utm_source=rss&utm_medium=rss&utm_campaign=3d-environments-full-list-of-enterprise-vendors https://www.hypergridbusiness.com/2013/03/3d-environments-full-list-of-enterprise-vendors/#comments Wed, 13 Mar 2013 19:32:48 +0000 https://www.hypergridbusiness.com/?p=43138 Looking for an immersive platform for your company, non-profit, educational institution, or government agency?

Start with the following list of vendors, all of which have a successful history of serving enterprise customers.

Browser-based platforms

Running a virtual world in a browser does impose some limitations on the environment. But, on the other hand, your users don’t have to install and learn complex virtual world viewer software. They will have to install Java, Unity, or another plugin, however. HTML 5-based viewers are on their way, but not yet ready for prime time.

VenueGen’s browser-based virtual environment. (Image courtesy VenueGen.)

Some of these environments will even run on a mobile device — this changes rapidly, so check with the vendor.

Browser-based virtual environments are great for quick meetings, sales training, facility tours, and marketing games and simulations.

These environments are hosted by the vendors, and pricing typically starts at around $50 per month and increases with the number of users.

Traditional proprietary platforms

In the old days, companies had to download and install server software, hire 3D modelers and simulation designers to create the environments, and install special viewer software so that users could access the worlds.

For some vendors, those days are still here.

ProtoSphere is a popular platform with life sciences companies. (Image courtesy ProtonMedia.)

The benefit of doing it this way is that you get maximum security, since everything is behind the enterprise firewall. You also get a battle-tested, solid environment and the most robust feature sets.

  • Protosphere: Best known for life sciences simulations.
  • VastPark: Popular with government customers. Open source version of VastPark is also available.
  • SAIC’s Olive: Popular with the defense industry. 
  • 3D ICC’s Terf: Built on top of the open source Open Qwaq platform, which was formerly Teleplace. Newest vendor in this space.
  • vAcademia: Created by a Russian company specifically to serve educators. Includes ability to record 3D events and play them back.

These environments are well suited to high-end corporate training programs, disaster simulations, and 3D modeling, but require professional developers with expertise in 3D graphics, animation, training, and scripting. Expect deployment costs in the five to six figures.

OpenSim enterprise vendors

There are other open source immersive environment platforms — we mentioned Open Qwaq and VastPark above, and there is also Open Wonderland, Open Cobalt, and Sirikata.

OpenSim stands apart, however, by the fact that it is already used in hundreds of virtual worlds — both private and public — and is supported by dozens of different vendors offering hosting, consulting, and design and development. In addition, because it uses viewers compatible with Second Life, there are already millions of people familiar with the user interface and the in-world building tools. OpenSim also has a vast array of low-cost or free pre-made content available for organizations setting up new grids.

  • Dreamland Metaverse:  Hosts hundreds of private grids for companies and educational institutions. Run by an OpenSim core developer. Reputation for excellent customer service, easy Web-based management tools, 
  • SimHost: Founded by an OpenSim core developer. Partner runs OSgrid, the largest OpenSim-based grid and main testing platform for OpenSim development. Vendor is known for customer service and custom development.
  • 3D Hosting: Offers private grid hosting, with support in English and German. Founder is an OpenSim core developer. Best known for managing the Avination grid.
  • Virtyou: Offers private grid hosting, with support in English and German.
  • Talent Raspel: Offers private grid hosting, with support in English and German.
  • Kitely: Kitely is actually a single large OpenSim grid, but the easy-to-use management and access tools make it popular with enterprises and educators. Kitely is also unique in that it uses the Amazon cloud to run its regions, and puts them to sleep when they’re not used, allowing the company to offer extremely high capacity regions for extremely low prices.
  • Zetamex: The newest vendor on this list, offering private grids on both shared and dedicated servers.

Also see our full list of OpenSim hosting vendors, including those offering land on commercial social grids.

With the exception of Kitely, all these vendors offer private, managed OpenSim grids, and also provide support for behind-the-firewall OpenSim deployments.

]]>
https://www.hypergridbusiness.com/2013/03/3d-environments-full-list-of-enterprise-vendors/feed/ 1
Free database for OpenSim scripts https://www.hypergridbusiness.com/2012/12/free-database-for-opensim-scripts/?utm_source=rss&utm_medium=rss&utm_campaign=free-database-for-opensim-scripts https://www.hypergridbusiness.com/2012/12/free-database-for-opensim-scripts/#comments Sat, 08 Dec 2012 04:06:45 +0000 https://www.hypergridbusiness.com/?p=42429 Update Apr. 25, 2023: It looks like I ran out of the free trial credits on the Google App engine, and my original app no longer works. You can create your own, however — instructions at the bottom of this article. Plus, the folks at Outworldz have put up their own clone, at outworldz.appspot.com., which still works, so I’ve changed all my links and the sample scripts to use the Outworldz version.

Late last summer, I had an idea for a hypergate script that would automatically calculate the distance to your destination’s address and, if it was too far away, send you to a mid-way transit gate on Hyperica, and then that gate would send you on to your destination.

However, this required a way for gates to communicate with one another, even if they were located on different grids. Now, there is a way for objects to send messages to one another via LSL, but it requires knowing the object’s HTTP address — and this HTTP address can change. So I needed a way for the hypergates to look up the HTTP addresses of the mid-point transit gates, in order to find out whether they were available, and to tell them the final destination the avatar wants to go to.

I needed a permanent way to save data.

Many scripts in OpenSim need to store variables, someplace where they won’t disappear.

Say, for example, you have a house that changes colors. And you want it to remember the color it was set to last, so you don’t have to keep setting it each time you rezz the house. You can add the color — say, “blue,” to the description line, but if you change the description, you lose the data.

If you had some permanent way to store the variable, then you could, say, change the color of that same house everywhere — even on other grids — when you change any one instance of it.

Okay, maybe that’s not so useful, but you could also use the same method to, say, send messages across grids, or update the location of hypergates, like what I needed — or set high scores for a particular game.

Earlier, I used a Google Spreadsheet to store data. Here’s my sample script for logging visitors to a Google Spreadsheet, and another one for displaying the data from a Google Spreadsheet.

The downside to using Google Spreadsheets is that you can only add rows of data — you can’t edit existing rows. Unless you can figure out the Google API and authentication mechanism, which I couldn’t. If anyone can, and can write a sample script to edit existing rows of data, please please let me know! And you also can’t search through data — you can only load the entire sheet and then search through it inside the script. And there’s only so much text you can load at once. I assume — I don’t know what the limits are here.

So I was looking for a way to save data into some database somewhere — ideally, a free database. A way to update that data. And a way to find that data.

I turned to Latif Khalifa’s Grid URL Persister for inspiration. It uses a Python script running on the Google App Engine, a free, cloud-based place to deploy applications and databases. Well, free for small projects — if you’re running something big and commercial on it, you’d have to pay some dough. But the limits on the free account are pretty good — you get ten free applications, 1 gigabytes for data storage, and 3,000 free calls a minute — more than half a million a day.

So I’ve been tinkering around with the Google App Engine ever since then, going through their tutorials, setting up the launcher on my desktop, deploying their sample Guestbook application, trying to figure out what the Go language was.

Finally, early this week, I decided to buckle down and just get it done. Based on advice from InWorldz CTO David Daeschler and InWorldz software developer Jim Tarber, I switched from Go to Python, the language Khalifa’s application was written in.

And … ta da! … here it is: the Hypergrid Business Easy Free Database.

Here’s the way it works.

First, you need to get a unique identifier for your LSL script. You can use a different one for each script, or, if you want to share data across several scripts, you can use the same identifier for all of them. You can get an identifier here. Don’t lose this — if you do, you will lose all your data!

Second, load the following URL to save data:

http://hbeasydatabase3.appspot.com/store?service=<service id>&keyfield=<name for the data>&datafield=<data to be stored>

The bold items are the ones you replace your own own data. Say, for example, you want to save high scores for two games, Bingo, and Blackjack. You get a new service ID, and invent key names for the data — BingoHighScore and BlackjackHighScore. Store the data by going to the following URLs:

http://outworldz.appspot.com/store?service=2b307c02-2133-4dba-bcc5-3d8f7db53eee&keyfield=BingoHighScore&datafield=786763

http://outworldz.appspot.com/store?service=2b307c02-2133-4dba-bcc5-3d8f7db53eee&keyfield=BlackjackHighScore&datafield=234873

Later on, you want to get these high scores back. You can look them up again by pulling up the following URLs:

http://outworldz.appspot.com/load?service=2b307c02-2133-4dba-bcc5-3d8f7db53eee&keyfield=BingoHighScore

http://outworldz.appspot.com/load?service=2b307c02-2133-4dba-bcc5-3d8f7db53eee&keyfield=BlackjackHighScore

Go ahead, give it a try.

If you also want to save the avatars who had the high scores, you can create two new key names, such as BingoHighScoreAvatar, and BlackjackHighScoreAvatar.

There might be a limit on how long you can make the key names, and how long the data strings are, but I don’t know what it is. If you have key names or data that has spaces or other characters in it, that’s fine, but you will need to encode them for the URL.

So, for example, if “John Smith” got the high score for Bingo, you would save it with the following URL:

http://outworldz.appspot.com/store?service=2b307c02-2133-4dba-bcc5-3d8f7db53eee&keyfield=BingoHighScoreAvatar&datafield=John%20Smith

Note that the space between “John” and “Smith” is replaced with %20.

You don’t have to just call these URLs from in-world scripts, of course. You can also call them from a website.

Say, for example, you want to be able to control the color of your house from a webpage.

You can create a key name HouseColor and use clickable links to set the house different colors, like this:

http://outworldz.appspot.com/store?service=###&keyfield=HouseColor&datafield=blue

http://outworldz.appspot.com/store?service=###&keyfield=HouseColor&datafield=red

http://outworldz.appspot.com/store?service=###&keyfield=HouseColor&datafield=green

Hint: if doing this from a website, use the “target=” link property so that you’re not sending your users to a blank page that just says OK. For example, you can load the “OK” into a small frame on the page.

I understand that many of my readers are really good Javascript programmers, or know MySQL, or whatever, and will ask, “Why not just write a little code to do the same thing, set up a MySQL database on your server?” And the answer is: There are people who want to add functionality to their scripts without having to learn JavaScript or Python or MySQL. Is that too much to ask?

Creating your scripts

To demonstrate the use of this tool — and to find out whether it works! — I created two LSL scripts. One turns a box a random color when it’s touched, and then saves that color. The second script, when touched, looks up the color and sets the box that color.

The box on my right — the pink one — turns a new random color when touched, then saves that color to the database. The box on my left — the orange one — is waiting for me to touch it, When I do, it will go to the database to find out what color it’s supposed to be, and then turn that color. That is, pink.

The LSL script to save the color is here in the form of a text file — copy and paste in-world.

The key lines are these:

string URL = “http://outworldz.appspot.com/store?service=” + serviceid + “&keyfield=colors&datafield=” + colors;
key httpkey=llHTTPRequest(URL, [] ,””);

In the first line, serviceid is a string variable, defined at top of the script, as the unique identifier. Change this for your own script. The name of the key field is “colors” and the datafield is the string variable colors, defined just above to hold a string composed of three floating point numbers, separated by commas. Since the string has commas in it, I used the llEscapeURL function so that it would work in a URL.

Once you define all the parts of the URL, you just use the llHTTPRequest function and that’s it. The data is stored into the database. Click on this link to see what’s stored there now: http://outworldz.appspot.com/load?service=b1e5e346-b831-47fa-9930-6ca5d4cd774b&keyfield=colors

That’s it. Just two lines to save any data you want into the database. Again, remember — don’t forget the service ID, and don’t forget your key field names!

So how do you get the data back out of the database?

It’s a little trickier — it takes an extra subroutine (or whatever they’re called in LSL).

You can get the script, as a text file, here.

The first part is the same as before — an llHTTPRequest:

string URL = “http://outworldz.appspot.com/load?service=” + serviceid + “&keyfield=colors”;
key httpkey=llHTTPRequest(URL, [] ,””);

Again, the serviceid variable is defined as a string at the top of the script. Make sure that it matches the serviceid in your other script. Note that the datafield is missing — you’re not storing data here, you’re trying to get it. The other change is that instead of hbeasydatabase3.appspot.com/store?, you’ve got hbeasydatabase3.appspot.com/load? at the start of the URL.

But it’s not enough just to send the command out there — you have to actually get data back. That’s the function of the http_response subroutine:

http_response(key id, integer status, list meta, string body)
{
list colors = llParseString2List(body,[“,”],[” “]);
llSetColor(<llList2Float(colors,0), llList2Float(colors,1), llList2Float(colors,2)>,ALL_SIDES);
}

The data comes back into the body variable, in the form of a string. I had to unpack it a little bit to turn it into something I could use — first, parsing the string into a list, then, when I set the box color, turning each of the three elements of the list into a floating-point number.

If the command fails for some reason — the service ID or the key field name are wrong, for example, the body string will hold the error message.

If you want to add error checking to the first script, you can add an http_response section as well. The body string will be “OK” if the data was stored successfully, and will hold an error message if it wasn’t.

Saving more than one variable

In the example above, I save a three-element list. That’s one way of saving multiple data points.

Another option is to use multiple variables — like with the high scores example. But what if you want to save a long list of high scores? A list where you might not know the length of the list ahead of time?

One idea is to save one variable as ListLength, which is the total list of data points you’re saving. As the list gets longer, you can just increment this field. Then have the other variables with names such as ListField1, ListField2, ListField3 … just keep adding numbers to the word “ListField” until you have as many as you need.

Similarly, you can save tables. Have one variable called TableSize, with the number of rows and columns of your table. Then the table data can be saved as TableField1-1, TableField1-2, TableField1-3, TableField2-1, and so on.

Saving list data or table data into individual fields means you can store or load one data point at a time. However, if you need to load the entire list or table at once, you’ll have to send in a new llHTTPRequest for each one. That might take a lot of time. That’s why I saved all three colors as a single list variable in my script, instead of fetching them one at a time. I recommend using lists whenever possible, but there’s a limit to how long a URL can be — I just ran a quick test, and for a keyfield name of “longstring”, the longest data field string I could store was 500 characters even.

Run your own database

Someday, my Easy Free Database will run out of storage. If you’re creating business-critical in-world scripts, you don’t want your stuff to go down.

Sure, you can email me and let me know that the database is out of room, and, if I’m feeling generous, I could pay to add more storage.

Or you can create your own database.

Download my source code from BitBucket and unzip it. Create a free account with Google App Engine. Download and install the Google App Engine Launcher. Open the Launcher, go to File-Add Existing Application, point it to the folder where you unzipped my source code. Then hit the Deploy button and give it the email address and password you set up your Google App Engine account with.

It took me several tries to get this to work, but once it does, you can fiddle around with the application to customize it for your own needs. You can email me if you have questions at maria@hypergridbusiness.com, but keep in mind that, as of this writing, I have exactly three days worth of experience programming in Python.

Again, here’s the code:

Update April 2023: I tried to install the Google App Engine Launcher again and wound up with some kind of text-based console window shell environment and couldn’t get the old one back that I used ten years ago. The online instructions were ridiculously unhelpful, so I think this would be a case for finding and going through a bunch of tutorials about how to use the new Google Software Development Environment if you want to learn how to do this. If you plan on creating lots of in-world scripts that need server-side applications, then it’s probably a good idea to invest this time. For myself — maybe not so much. At least, not now.

]]>
https://www.hypergridbusiness.com/2012/12/free-database-for-opensim-scripts/feed/ 19
Virtual currency 101 https://www.hypergridbusiness.com/2012/07/virtual-currency-101/?utm_source=rss&utm_medium=rss&utm_campaign=virtual-currency-101 https://www.hypergridbusiness.com/2012/07/virtual-currency-101/#comments Mon, 02 Jul 2012 22:30:36 +0000 https://www.hypergridbusiness.com/?p=41650 If you are a grid owner, you’ve probably already considered creating a virtual currency for your residents. Virtual currencies make it easier to have an in-game economy, have lower transaction costs than PayPal or credit card payments for small payments, and can bring in additional revenues for the grid operators.

Virtual currencies also carry significant risks, both for grid owners and residents. The least risky are the purely fictional currencies.

Closed loop currencies — which are non-redeemable — have regulatory, tax and fraud implications. And redeemable open loop currencies are even more complicated from a legal perspective.

Fictional currencies

If you’ve ever played a single-player video game or a family board game, you’ve come across fully fictional currencies. These are the gold coins you earn by slaying monsters or by collecting rent from other players who land on your properties. These currencies have no value outside the game and can’t be bought or sold.

Well, you can go to a store and buy Monopoly money refills, poker chips, and play coins for your toy lemonade stand, but nobody is going to confuse this for real money.

Advantages:

  • There’s no limit on how much of this money your players can have. They can be virtual billionaires in the game or trillionaires — it doesn’t matter.
  • There are no legal implications to fully fictional currencies. The issuer doesn’t need a banking license, there’s no risk of fraud or money laundering, no chance of embezzlement.
  • If the players lose all their money, they can’t complain. If, say, another player or character in the game steals all their money, or their character dies, they’re not going to sue the game company to get their money back.
Disadvantages:
  • A fully fictional currency isn’t going to make any impact on the company’s bottom line.
  • Players may be less invested in a game if the currency is completely imaginary.

Closed loop currencies

If you’ve been playing Farmville lately or many other smartphone or Facebook games, you might have noticed a trend — the game companies try to sell you their virtual currencies so you can advance in the game faster.

Many games, in fact, have both fictional currencies and closed loop currencies in the same game. When you play FarmVille, for example, the FarmVille Coins are fictional — you can only get them by planting and harvesting crops and doing other in-game tasks. FarmVille Bucks, on the other hand, can be bought for real money.

Closed loop currencies fall under the most of the same regulations as closed loop payment cards — these are the prepaid cards you get from, say, your favorite restaurant or retail chain that can only be redeemed at that chain.

In fact, a lot of things are, in effect, closed loop virtual currencies, such as video arcade tokens, airline miles and prepaid phone minutes.

Closed loop currencies are not redeemable. Like those prepaid cards, you must spend them at the company that issued them. Some people do sell those cards on eBay, however, and this is similar to the way that Second Life’s Linden Dollars are traded between players on exchanges.

Advantages:

  • The company issuing the currency gets to sell it to its users for real money — and then keep the money. Since players can only spend the money in-world and can’t redeem it, currency sales are pure profit.
  • By putting real money on the line, players can get much more deeply invested in a game.
  • If players can trade with one another, a secondary market for the currency can allow some players to actually make money from playing a game, which can provide additional motivation to become deeper engaged, or to create in-world content and activities. This is, in fact, what happens in Second Life.
Disadvantages:
  • A game’s dynamics can be adversely affected when players can buy special skills or tools instead of earning them in the game.
  • If an individual player has more than $2,000 worth of money in the virtual currency account then the currency issuer must comply with US anti-money laundering regulations. Other countries have their own laws, as well, and the issuer needs to be in compliance with the laws in the countries where the customers are located.
  • If the players buying the currency are located in different countries, then the issuing grid may also have complex international tax liabilities.
  • If players lose money because of in-game theft, software bugs, account termination, or any other reason they will get upset and blame the issuing company, no matter what the terms of service may say. After all, if the virtual currency can be traded for cold hard cash on a secondary market, then the player is losing something of real value. And, if there’s enough money involved, there will be lawsuits.
  • If the virtual currency falls under a state’s prepaid card laws, and the balance falls below $5 or $10 then, in some states, the customers must be allowed to get a cash refund of the balance. This is the only exception to the “not redeemable” feature of closed loop currencies.
  • If a customer buys virtual currency fraudulently — say, with a stolen credit card — the grid operator will have to refund the money to the credit card company, close the fraudster’s user account, and track whether the virtual currency was sold to another player for real money.

Open loop currencies

An open loop currency can be used in multiple locations, and can be redeemed for cash.

The OMC currency from Virwox, for example, can currently be used on more than 30 different OpenSim grids, and can also be redeemed for cash or traded for other virtual currencies, including the Linden Dollar.

Advantages:

  • If your grid is issuing its own redeemable, open loop currency, then the grid owners get to collect money from residents in return for currency purchases, and collect interest on the money until the currency is redeemed.
  • If your grid is using a third-party currency like the OMC from Virwox, then Virwox is responsible for all legal issues, redemptions, taxes, and regulatory compliance. In addition, if your grid closes, or players lose their accounts, they can still cash out their currency holdings from Virwox, or spend them on other grids.
  • By putting real money on the line, players can get much more deeply invested in a game.
  • As with currencies that can be sold to other players, users can make real money from their in-world activities.
Disadvantages:
  • If an individual player has more than $1,000 worth of money in the virtual currency account then the currency issuer must comply with US anti-money laundering regulations. The limit is lower than the $2,000 limit for closed loop currencies.
  • Depending on how the currency is structured, and where the customers are located, the issuing company may also be required to get a banking or money trasmitter license. PayPal, for example, is regulated as a money transmitter in the United States, and as a bank in Europe. Each country has its own rules and, in the U.S., each state has its own rules as well — PayPal has to get a separate license everywhere it does business.
  • If players lose money because of in-game theft, software bugs, account termination, or any other reason they will almost definitely get upset and sue.
  • Issuers have to be extremely careful about potential fraud such as purchases made with stolen credit cards. This was recently a problem on the InWorldz grid.

Disclaimer

The information for this article, in addition to the sources already cited, comes from an interview with Deborah S. Thoren-Peden, a partner at Pillsbury Winthrop Shaw Pittman LLP.

This article is not intended to provide legal advice. If you do want legal advice, talk to Thoren-Peden or another attorney on Pillsbury’s virtual worlds law team, or check out their Virtual World Law Blog.

You can also contact Sheppard Mullin Richter & Hampton LLP, where partner Sheppard Mullin has a nice overview about virtual currency law.

J. Dax Hansen, a partner in the law firm of Perkins Coie LLP, has a detailed article about applicable state laws here.

Perkins Coie, Sheppard Mullin Richter & Hampton, and Pillsbury Winthrop Shaw Pittman were named the top three law firms for game law by Interactive Age last year, but there are also a number of smaller firms and individual attorneys with expertise in this area.

There are also consulting companies, like Glenbrook Partners, a virtual payments consulting firm, which has a nice presentation about virtual currencies that provides a broad overview beyond virtual worlds.

]]>
https://www.hypergridbusiness.com/2012/07/virtual-currency-101/feed/ 3
HG Biz Plan: Virtual Train Set https://www.hypergridbusiness.com/2012/03/hg-biz-plan-virtual-train-set/?utm_source=rss&utm_medium=rss&utm_campaign=hg-biz-plan-virtual-train-set https://www.hypergridbusiness.com/2012/03/hg-biz-plan-virtual-train-set/#respond Fri, 23 Mar 2012 17:32:15 +0000 https://www.hypergridbusiness.com/?p=40919 The premise: There’s something addicting about putting together a virtual train set, getting the scenery just right, assembling the train itself. Even better is when you get to share it with people, or see how your set stacks up against others. This creates a business opportunity for a company — either a new startup, or an existing brand name in this field — to create a virtual world for train aficionados.

The business

Customers would rent large swathes of low-prim, no-border-crossings landscapes on which they would lay train tracks, place their trains, and design other landscape elements. Central plazas would showcase stores offering all necessary materials, have a gallery of snapshots showing off the best builds, serve as a starting point for group tours, and be the place where everyone comes for competitions. The grid could be closed, to protect the train designs, or it could be open to the hypergrid, with the key scripting functionality running server-side, in the form of OpenSim modules. Another option is to keep all proprietary materials no-transfer, and filter hypergrid exports so that they cannot be taken off-grid. Hypergrid access would allow users to easily teleport to their personal homes on other grids, saving them the trouble of creating new avatars. It would also allow them to bring in unique objects — plants, windmills, waterfalls — to make their builds stand out. Registration with the US Copyright Office would protect the grid against intellectual property rights infringement lawsuits, while creating a mechanism to take down infringing content if it is brought it by customers. Hypergrid access would also allow the formation of an outside vendor economy, selling add-ons and scenery elements for virtual train enthusiasts, and allow the grid to bring in audiences for its competitions and tours from around the metaverse.

Jin Falta's Internetz grid features a virtual train track meandering through a wide open agrarian landscape.

The revenue streams

Customers would pay for land rental, for the trains and other materials they buy on the grid, for non-player characters such as train conductors and ticket takers, and for registration fees for competitions. If events are open to the public, additional revenues could be gained from the sale of souvenirs such as T-shirts or small model train sets that visitors could take home with them. Third party vendors could also pay license fees to sell branded content, or to sell objects designed to work with the grid’s proprietary script modules. Land prices could be kept extremely low by only activating a customers’ land only when the customer is online, or when a tour group or judging panel is scheduled to visit that particular train build.

Scalability

If the grid gets particularly large, given OpenSim’s existing infrastructure, scalability issues will start to arise. If the grid is hypergrid-enabled, however, it can be split up into multiple kingdoms running on the same proprietary modules, and linked by hypergrid teleports. In addition, Intel’s recently-contributed Distributed Scene Graph functionality will allow to grid to hold more than 1,000 visitors in a single location, allowing for large gatherings during major competitions.

Competitive advantage

The grid will benefit significantly from first mover advantage, since people who invest in virtual land, train sets, and other equipment would lose a substantial chunk of that investment if they move to another virtual train grid. In addition, the grid would have a technological head start in developing realistic and efficient train movement scripts, and a marketing head start in promoting its brand identity.

Risks

One major risk is that a train building community will arise on its own, sharing open-source or publicly-available commercial train scripts. For example, once Kitely enables megaregions, it could become home to a large virtual train community. Another possibility is that easy-to-set up versions of OpenSim like the New World Studio inspire people to create large virtual train sets that they run on their home computers, and a virtual train community arises on the hypergrid, with people visiting each other’s home-based builds. There will still be opportunities for individual merchants to sell train-related merchandise, and for a grid to hold train-related competitions and other events, but the potential scale of the business would be much smaller, and there will be a great deal of competition.

]]>
https://www.hypergridbusiness.com/2012/03/hg-biz-plan-virtual-train-set/feed/ 0
Create a billboard network https://www.hypergridbusiness.com/2012/03/create-a-billboard-network/?utm_source=rss&utm_medium=rss&utm_campaign=create-a-billboard-network https://www.hypergridbusiness.com/2012/03/create-a-billboard-network/#comments Sun, 11 Mar 2012 01:06:32 +0000 https://www.hypergridbusiness.com/?p=40821 Say you and your friends want to set up a self-serve system to post announcements on each other’s grids or sims?

Here’s how to do it without having to create any databases, by using Google Spreadsheets.

First, you go to Google Docs and choose Create – Form.

Here’s a sample form, which you can use to submit event announcements for Hyperica billboards: http://www.hyperica.com/add-new-event/

I created the form in Google Docs, then embedded it into my website by asking Google for the embed code, and just pasting it into a blog post, the same way you would embed a YouTube video.

My form asks for things like the event name and date, an image URL, the hypergrid address, and a website address.

The data that’s collected goes into a Google spreadsheet. But it’s ordered according to when people added the events. So I created a new sheet — there’s a plus button at the bottom left of the Google spreadsheet page where you can add new sheets that are part of the same spreadsheet.

This new sheet filtered all the events, to show just the ones that I haven’t happened yet.

Here is my formula:

=filter(Events!B:I,Events!C:C>=TODAY())

Where Events is the name of the first sheet, and column C is where the date is. Now you have two sheets — one with all the events, and one with all the events that haven’t occurred yet. I called the second sheet Events2.

Then I created a third sheet, where I would sort all the events chronologically — so that the event that will happen next is listed first.

Here is my formula:

=sort(Events2!A:H,Events2!B:B,TRUE)

You’re going to get an extra row at the end with the row headings. I don’t know how to get rid of that! Also, there might be a way to combine these two formulas into one, but just putting one inside the other didn’t work for me. But maybe I was doing it wrong.

Anyway, now, on the third sheet, you have just what you want — upcoming events, sorted in chronological order. But you could sort them in any other way you want, too. For example, if people pay you for these announcements, you could sort them by how much they’ve paid. Or you can filter based on what grid the events are on, or whether the event is free or costs money.

Then I went in-world and created an object on which to display an event.

My event announcement board.

It’s actually a flattened cube — I have the size set to X=1.8, Y=2.2, and Z=0.01. Then I have Taper set to X=0.40. That gives me a little strip at the top, a little strip at the bottom, and a wide area in the middle for the event’s image. You can adjust the tapering settings if you don’t want either of the strips — or you can make your billboard be just the image itself — and just have it do a teleport if you click on it.

Here is the script: Hyperica Event Script

(I had to change the file type to a .TXT file to upload it.)

The script pulls the event name, location and time from the Google Spreadsheet and writes it at the top of the panel. Then it pulls the event image down from the web and displays it in the middle of the panel. There’s a built-in timer, so the board will automatically download a new image once an hour.

It pulls the bottom buttons from a texture that needs to be placed inside the object and named “Grid-Website buttons.” If you rename the texture, just edit the script to use the new name.

Then it waits for you to click. If you click on the Teleport button, it will pull up the map with the destination on it, so you can confirm the teleport. And if you click on the Website button, it will bring up the Website. I created the texture for the button panel — feel free to use it, or create your own:

The way my script works is that you edit the first row to tell the script which event to display — the first event, the second event, etc… The reason I did it this way was to set up a big announcement board showing the next six events:

But you could also use it to show a random announcement, instead, as in this ad below:

Here, if you’re the owner, and you click on the middle image, it pulls in a new random ad from the spreadsheet — where the submissions aren’t ordered or filtered at all. Clicking on the top red panel takes you to the website where you can submit your own, free, Hyperica ad. (Feel free to do that.)

Here, I added a second texture to the object, “Click here for your free ad” to put in the top panel. Then I adjusted the image orientation and stretching manually so it would fit right.

Here is the script itself: Hyperica Ad Script

It pulls in the data from the spreadsheet, counts up the number of rows, and picks a random row to use. If you wanted to, you could add columns to give a particular weight to particular ads, and adjust the randomness calculation to bring up the weighted ads more often.

You could also take out the top and bottom panels, and just have a teleport function if someone clicks on the ad.

And it’s not just for ad billboards — you could also use this to display announcements simultaneously in multiple locations around your grid — use a timer to refresh the display on a set interval to keep the displays up-to-date.

Remember to make your Google Form public access if you want outsiders to add their own listings, or keep it private if you’re just going to manage it yourself. You will also need to make the spreadsheet public — the particular sheet you’re using for your script — and get its URL and update the script accordingly.

You can get more detailed information about how to pull data from a Google Spreadsheet in my previous article.

]]>
https://www.hypergridbusiness.com/2012/03/create-a-billboard-network/feed/ 12
Pull in data from Google spreadsheet https://www.hypergridbusiness.com/2012/02/pull-in-data-from-google-spreadsheet/?utm_source=rss&utm_medium=rss&utm_campaign=pull-in-data-from-google-spreadsheet https://www.hypergridbusiness.com/2012/02/pull-in-data-from-google-spreadsheet/#comments Sun, 19 Feb 2012 07:44:23 +0000 https://www.hypergridbusiness.com/?p=40650 A few weeks ago, I posted a script about how to add data to a Google spreadsheet from inside an OpenSim world (or from a Second Life region).

But what if you want to go the other way, and bring data from a spreadsheet in-world?

It’s not too hard.

First, pull up your Google spreadsheet, and go to File>Publish to Web.

Then choose which sheet you want to publish, set to republish automatically if the sheet changes, and hit “Publish now.”

Select the CSV format.

Now look at the second half of that window. Select the format as CSV — comma separated values — and choose which sheet you want to bring in. You can also just bring in a portion of a sheet by replacing “All cells” with a range, such as A1:C3.

Google will generate a URL for you — copy that URL.

Now paste the URL into the first line of the attached script, replacing the URL I have in there now. You don’t have to do much else — the script will pull in the data and say it in-world. Of course, that’s not very useful.

The inner workings

First, the script downloads all the data from the Web into a single string — the following two statements are key here.

httpkey=llHTTPRequest(URL, [] ,””);

http_response(key id, integer status, list meta, string body

You don’t want to mess with these parts.

Then, the string gets chopped into pieces, with each piece going into a separate list item. I have it being broken up by commas and line breaks, which works perfectly with my spreadsheet — but I don’t know how it will work if you have commas inside your cells themselves.

DataList = llParseString2List(body, [“,”,”\n”], [] );

The total number of cells is just the total number of entries in the list.

CellCount = llGetListLength(DataList);

I also count up the total number of rows in the spreadsheet by counting how many line breaks there were, and adding 1.

RowCount = llGetListLength(llParseStringKeepNulls(body, [“\n”], []))-1;

It works by converting everything into yet another list, one just broken up by line breaks. If you know how many columns your spreadsheet has — and that it’s not going to change — then you can speed up the script by skipping this step. So, say, if you have eight columns in your spreadsheet, which is what I have, I would calculate the total number of rows like this:

RowCount = CellCount /8;

In the end, you’ll have a list with as many line items as there are cells in the spreadsheet, or what they call in LSL, a strided list.

For example, if you needed to, you could sort by the first item in every row, or resort in random order.

To pull out an individual element from the list, use the following command, which returns a string, or text data:

 llList2String (DataList, row*ColumnCount + column)

Counting of the rows starts at zero. So if you wanted to get the third item in the second row of your spreadsheet, you would actually use 2 for column, and 1 for row.

The script is attached as a text file, since I’ve been having trouble embedding scripts in this blog.

Script to pull in data from Google spreadsheet

One application of this is to show the last ten visitors to a region. Sure, you can just pull in the Google spreadsheet itself as media-on-a-prim, but what’s the fun of that?

The tower control room at Hyperica Upper. (Click to see larger image)

The script below pulls in the data from my Google spreadsheet visitor counter script and shows the last 25 visitors on the surface of an in-world prim. This script only works in OpenSim, since it uses the OpenSim text commands to display the data on a surface.

In order to pull in the data, the spreadsheet has to be public, so don’t use this for sensitive corporate data. Google does have a secure API, which requires authentication, but I couldn’t figure it out.  If you can, then you probably don’t need this Google spreadsheet hack, anyway — you can write and read directly from a MySQL database.

The script — which has a touch-to-reset feature — is attached as a text file here:

Show last 25 visitors

]]>
https://www.hypergridbusiness.com/2012/02/pull-in-data-from-google-spreadsheet/feed/ 12
Log your visitors to Google spreadsheet https://www.hypergridbusiness.com/2012/01/log-your-visitors-to-google-spreadsheet/?utm_source=rss&utm_medium=rss&utm_campaign=log-your-visitors-to-google-spreadsheet https://www.hypergridbusiness.com/2012/01/log-your-visitors-to-google-spreadsheet/#comments Sat, 14 Jan 2012 07:02:24 +0000 https://www.hypergridbusiness.com/?p=40431 Update 3: There an simpler version of this script here: Easier Google Spreadsheet Visitor Logger

Update 2: Reader Zuza Ritt has found a solution to working with the new format. Read the full instructions here.

Update: Google has updated their form system so that this method doesn’t work anymore. However, you can get around it — for now — by setting up an old-style form. Just go to this link to create your form - drive.google.com/spreadsheet/newform – then follow the same instructions as below.

I have a problem. I want to be able to see who visits my region in a nice spreadsheet. Specifically, a Google spreadsheet.

There are reasons for this. For example, I want to be able to track who sees a particular billboard, and track that data with the advertiser. Or record who picks up a copy of a hypergate. Or simply know who stops by.

I don’t want to save IP addresses, or do anything creepy. Just the avatar name is enough.

So I ask around. How do I get data out of OpenSim without going in and checking notecards inside objects?

For example, in this free Visitor List Maker script, you have to walk up to the counter and tell it to show you the list.

The experts tell me I have to create a script that writes to an external database — and that I need a database and a server to run it on.

So much for that! But a couple of days later, I realized — I do have a database and a server, a Filemaker database and a hosted server for my company’s workflow. But the idea of trying to figure out the Filemaker API and send in database update requests — well, that would probably take the rest of my lifetime.

And then, a couple of days after that, I thought — why not use a Google form?

So I do some Googling and find out that you can send in form responses through a URL, pre-filling in all the fields.

And, a few hours of tinkering later, I had a script — a weird hybrid of the Visitor List Maker script and my old stand-by Hyperica Lookup HG Teleport Script (thanks, Paul Emery!). And it worked!

For anyone out there looking to get data out of an OpenSim region — or a Second Life region for that matter — feel free to use, adapt, and redistribute this script. Only restrictions — since it’s based on a Linden script, you can’t sell it, and you must leave the attributions in place.

The script itself is attached as a text file at the bottom of this post. If you can read LSL, and know your way around Google forms, just get it, change the first line, and you’re good.

If you need a little bit more information, here we go.

The Google form part

To create your Google form, go to Google Docs and click Create (on left side) and then choose Form from the drop down-menu.

To use the script attached as is, add two questions.

The first question is “Avatar.” The answer is a text field.

The second question is “Region.” The answer is also a text field.

You can name the form anything you want. In fact, you can name your questions anything you like. It doesn’t matter for this script. Save the form.

Now click on See Responses and pick Spreadsheet from the drop-down menu. This is where the incoming data will show up. Bookmark it.

But you’re not done yet.

In your spreadsheet view, in the menu bar on top, click on Form and then pick Go to live form from the drop down window.

Your form’s URL should look something like the one here:

https://docs.google.com/a/tromblyinternational.com/spreadsheet/viewform?hl=en_US&formkey=dEE5akZOWUM4WmdOSC0wZzFJUHFyNlE6MQ#gid=0

Now, there’s a reason I pasted the whole long URL above. It’s so that you can see that there’s a long string of characters after &formkey= and before #gid=0. Copy those characters. In my case, they were dEE5akZOWUM4WmdOSC0wZzFJUHFyNlE6MQ.

Now paste those characters in the first line of the attached script and drop the script on any object.

That’s it.

More info about the script

You don’t need to track the date and time the avatar stops by because, if you need it, Google automatically puts a date and time stamp on each submission. Handy.

The way the script works is that it remembers the names of the last ten avatars that walk by. If it sees an avatar that’s not in that list, it adds them to the spreadsheet. That way, if you just happen to be standing around the visitor counter, you don’t get added to the spreadsheet a million times. (Yes, that happened to me the first time I ran the script, because I thought I could leave that part out. Hah!)

You can change this by editing the second line of the script. It’s the list_size variable, and is set to 10 in my script. But if you have large groups of avatars stopping by, you might want to increase it. Otherwise, if, say, avatar number 11 isn’t on the list, his name gets added to the spreadsheet — and the first entry on the list is knocked off. But then that first avatar isn’t on the list anymore! So now the counter adds her, too — and knocks off guy number two. But now guy number two isn’t on the list! So the counter goes crazy cycling through all the avatars milling around. But don’t make the maximum size of the list too long because it will slow down the script.

The other thing you can change is that you can comment out the line that checks whether the avatar is you, the owner of the script. Maybe you want to find out whether your avatar is having a good time without you, when you’re logged out. Or maybe you just want to test the script. Comment out this line: if( llDetectedKey( i ) != llGetOwner() ) by putting two slashes in front of it — //.

So that’s about it for basic tinkering.

Moving on.

Say you want to adapt the script to track other types of stuff.

The secret sauce is in this line:

string URL = "http://spreadsheets.google.com/formResponse?hl=en_US&formkey=" + google_formkey
+ "&entry.0.single=" + detected_name + "&entry.1.single=" + region_name + "&submit=Submit";

The first part is the URL Google uses to send in form responses. The last part — “&submit=Submit” — tells it that you’re submitting the form. Don’t mess with these parts.

In between, you’ve got the google_formkey — you copied and pasted this from your Google Form URL into the first line of the script, and this is the variable holding it.

And right after that you’ve got the data you’re saving.

The first data saved is preceded by “&entry.0.single=” — then you put in the variable holding your data. In my case, I put in the detected avatar name. Yes, Google starts counting at zero, not one.

The second data saved is preceded by “&entry.1.single=”, and I’ve got it followed by the region name, thinking that I can drop this script into counters all over my grid and it will track who went where. If I wanted to, I could add additional form fields —  “&entry.2.single=”, “&entry.3.single=”, and so on, and track the exact positions of the avatars, or their heights, or anything else I wanted. Just add more fields to your original form. Remember to put an ampersand — & — in front of each new field, and make sure your quotation marks are in the right places, and the variable name is set off by plus signs.

This is why the text of the questions in the forms doesn’t matter — all Google cares about here is the order of the fields.

And here is what the final result looks like:

Google form spreadsheet visitor counter

Hey, Breen stopped by. Hi, Breen!

Avatars local to my grid just show their avatar names — avatars from other grids show their full hypergrid name.

Now what?

Now that you’ve got your data in spreadsheet form, you can share the spreadsheet with your colleagues. You can embed the spreadsheet on your website. You can share it with your customers.

Is it totally secure? Probably not. If someone knows your Google Form ID, they can flood it with useless data. That means, for example, that anyone who can see your script can mess with your head. You can reduce this risk by running the script on regions or grids that you control, and set the permissions of the objects so that folks can’t peek in.

But it’s a great option for folks who don’t want to set up a separate database and just want to track stuff. This is especially useful for anyone tracking the behavior of in-world simulations and is collecting a lot of data. Google spreadsheets are perfect — you can collect the data, and then analyze it, all in one place.

You can also use it for quick in-world surveys — put up a sign with your survey questions and nice big boxes showing the possible responses on the side of a prim. Check to see which box folks press, and save that information to your Google spreadsheet along with the avatar name. Since Google can instantly generate a graphic showing the responses, you can pull in that graphic’s URL onto a nearby prim to show voting results in real-time. You can put these signs up on multiple regions — even multiple grids — and people can see the combined results from all these sources. Or you can use it to put up a monitor screen on one region, to show you what’s going on in a different region — or many different regions.

You can also track interactions with objects. For example, you can have objects that ask questions when avatars walk by, and then save their responses.

And you don’t have to update just one spreadsheet. Say you’ve got a sign showing four different destinations, and you want to know who clicks on each destination. You can set up a separate spreadsheet for each one, and then send the avatar names to just the appropriate sheet. And then you can share different spreadsheets with different people, or embed them on different Web pages.

And there’s other cool stuff you can do, as well. For example, say you don’t want to embed the whole spreadsheet on your Website or blog. You might not want everyone to see all the data. You might want some people to see some data, and other people to see other data, or you might want to process and massage the data first.  Here’s a sample bit of code showing how to pull data out of a Google spreadsheet into a Webpage. I was thinking of playing around with that, but then I took a look at the sample code, and maybe I’ll wait a while.

Get the script

Click here to download the text file with the script: Google spreadsheet visitor logger

I’ve been having problems uploading scripts recently, so please let me know if there are any problems with it. Either with the formatting of the file, or with the script itself. For some reason, between the time I get the script working and the moment at which I cut-and-paste it into a text file, variable names mysteriously change, closing brackets disappear, and semi-colons turn into colons.

]]>
https://www.hypergridbusiness.com/2012/01/log-your-visitors-to-google-spreadsheet/feed/ 33
HG Biz Plan: Hypergrid Post Office https://www.hypergridbusiness.com/2011/12/hg-biz-plan-hypergrid-post-office/?utm_source=rss&utm_medium=rss&utm_campaign=hg-biz-plan-hypergrid-post-office https://www.hypergridbusiness.com/2011/12/hg-biz-plan-hypergrid-post-office/#comments Fri, 09 Dec 2011 02:28:24 +0000 https://www.hypergridbusiness.com/?p=40127 The premise: I believe that we’re about to see the massive growth of a metaverse in which people can easily travel from one public world to another. Over time, the technology will become increasingly easy to use and realistic — and we will see an explosion of companies offering products and services in this metaverse.  My team and I have been brainstorming some ideas of what these products and services will look like.

The business

Spam is bad enough with email, but imagine how bad it can get when we are able to send virtual objects to one another! The damage done by malicious scripts would be combined with the large file size of the biggest objects — it could bring down entire grids. A hypergrid post office, where senders would pay a nominal amount for each object, would be a place where spam would get screened out before it ever reaches the recipient. In addition, the post office could serve an aggregation function — if a popular item is sent to many different people on a particular grid, it could make sure that the item is only delivered once to the destination grid, and all the recipients get copies of that original item, reducing asset storage load on the grid’s central servers.

The revenue streams

Virtual postage. Extra storage for those who decide to use their mailboxes as secure backups for purchased content. In addition, the post office could offer — as an opt-in service — “freebie of the week” deliveries, where virtual world merchants can pay a fee to give away samples of their products.

Scalability

The post office can issue personal mailboxes that can be setup on private regions which will automatically fetch deliveries, reducing the burden on the post office’s storage servers. Users could also opt for post office boxes that they can visit at the post office grid itself — as traffic grows, the post office might need to occupy a larger land area, or have multiple versions of the post office up and running simultaneously and send visitors to the ones that aren’t too crowded. Either way, this is a no-touch service with little customer support required, allowing it to scale as the hypergrid grows.

Competitive advantage

This is a “winner take all” area.  If there are two or more competing mail delivery companies, merchants will opt to use the one with the most customers, while the customers will use the one with the most merchants. At the beginning, some will hedge their bets and subscribe to multiple services but, over time, one will come to dominate. Once that happens, it will be extremely difficult for competitors to gain a foothold.

Risks

If third-party inventory services arise where users get their avatars — virtual closets, if you will — these platforms can also serve the role of virtual post offices, receiving virtual goods on behalf of their users from merchants, and screening out spam and trojans.

]]>
https://www.hypergridbusiness.com/2011/12/hg-biz-plan-hypergrid-post-office/feed/ 7
HG Biz Plan: Language school https://www.hypergridbusiness.com/2011/10/hg-biz-plan-language-school/?utm_source=rss&utm_medium=rss&utm_campaign=hg-biz-plan-language-school https://www.hypergridbusiness.com/2011/10/hg-biz-plan-language-school/#comments Mon, 17 Oct 2011 18:43:25 +0000 https://www.hypergridbusiness.com/?p=39856 The premise: I believe that we’re about to see the massive growth of a metaverse in which people can easily travel from one public world to another. Over time, the technology will become increasingly easy to use and realistic — and we will see an explosion of companies offering products and services in this metaverse.  My team and I have been brainstorming some ideas of what these products and services will look like.

The business

Language learners could interact with each other, with teachers, and with native speakers in virtual environments. The virtual environment would allow native speakers from multiple countries to meet with students without the travel costs associated with either bringing the teachers to the students — or the students to the teachers. The virtual setting is also perfect for role playing — practicing common conversations.

Chatterdale village for English language learners on Virtyou grid.

The revenue streams

Student tuition.

Scalability

Language instruction is a high-touch business, requiring personal interaction between teachers and students. However, this can be leveraged by using automated characters that engage students in conversation, or sending students on field trips to grids where the target language is spoken by residents.

Competitive advantage

Early entrants can build brand name recognition and referrals from former students.

Risks

There are few obstacles to entry in this space. In addition, traditional education institutions can launch their own virtual programs at any time, leveraging their existing brand names, marketing channels, and student and alumni networks.

]]>
https://www.hypergridbusiness.com/2011/10/hg-biz-plan-language-school/feed/ 1
HG Biz Plan: Event calendar https://www.hypergridbusiness.com/2011/10/hg-biz-plan-event-calendar/?utm_source=rss&utm_medium=rss&utm_campaign=hg-biz-plan-event-calendar https://www.hypergridbusiness.com/2011/10/hg-biz-plan-event-calendar/#respond Sat, 15 Oct 2011 18:53:08 +0000 https://www.hypergridbusiness.com/?p=39853 The premise: I believe that we’re about to see the massive growth of a metaverse in which people can easily travel from one public world to another. Over time, the technology will become increasingly easy to use and realistic — and we will see an explosion of companies offering products and services in this metaverse.  My team and I have been brainstorming some ideas of what these products and services will look like.

A New Year Eve party on OSGrid. (Photo by Key Gruin.)

The business

The biggest attraction of virtual worlds is meeting other people — but most regions on most grids are empty most of the time. The challenge is to find interesting gatherings and events. In this physical world, this happens with calendar listings in local media, in meeting announcements on Facebook, and Twitter, and on sites like MeetUp. A virtual event calendar, especially one that’s integrated with users’ social networks, can be invaluable to the growth of the hypergrid. The calendar could exist on a Website, or it could be an interactive in-world calendar — either a stand-alone grid or region, or one integrated with another service, such as a hyperport.

The revenue streams

The chief revenue source would be advertising of events, as well as other, related ads. A successful company could also leverage its brand to offer virtual facilities rental or other services.

Scalability

Managing traffic flows, especially as the number of events and travelers both increase, will be an issue for an in-world calendar, though not a problem for a Web-based one.

Competitive advantage

Once a calendar becomes the go-to option for folks looking for events, it becomes a self-sustaining platform — event organizers and advertisers will go where the public is, and the public will go to where the events are. As a result, being the first mover will offer significant advantages. In addition, relationships with advertisers and merchants will also be difficult for competitors to match.

Risks

Companies successful in other areas might add calendars and give their users a one-stop shop — just as Facebook’s addition of a calendar has taken a lot of traffic away from MeetUp. Similarly, a hyperport might roll out a calendar offering, or a social network management company.

]]>
https://www.hypergridbusiness.com/2011/10/hg-biz-plan-event-calendar/feed/ 0
HG Biz Plan: Hyperport https://www.hypergridbusiness.com/2011/10/hg-biz-plan-hyperport/?utm_source=rss&utm_medium=rss&utm_campaign=hg-biz-plan-hyperport https://www.hypergridbusiness.com/2011/10/hg-biz-plan-hyperport/#comments Thu, 13 Oct 2011 18:22:45 +0000 https://www.hypergridbusiness.com/?p=39851 The premise: I believe that we’re about to see the massive growth of a metaverse in which people can easily travel from one public world to another. Over time, the technology will become increasingly easy to use and realistic — and we will see an explosion of companies offering products and services in this metaverse.  My team and I have been brainstorming some ideas of what these products and services will look like.

Two different types of hypergates on Festa 24H region of OSGrid.

The business

Hypergrid travelers need a way to find interesting new grids. Back in the early days of the Web, hierarchical directories like Yahoo served the same purpose, grouping together websites by common interest. Eventually, the hypergrid will grow too big, and Google-style search engines will take over, but, until then, hyperports can serve the same function. These airport-style venues will allow travelers to discover new grids — while also creating a way for grid owners, merchants, and other companies to advertise themselves to travelers.

The revenue streams

As with Yahoo, advertising will be the primary revenue stream. However, a successful hyperport company can also leverage its brand to expand into other areas, such as hosting, asset creations and inventories, managing virtual relationships, providing virtual currencies, renting facilities for events, or running marketplaces.

Scalability

Managing traffic flows, especially as the number of destinations and travelers both increase, will be the major difficulty — and a big opportunity to funnel visitors past advertisements and stores, just as with traditional airports.

Competitive advantage

A list of destinations, by itself, can not be copyrighted and can be easily copied by competitors. Brand recognition, however, is difficult to match, as are relationships with advertisers and merchants.

Risks

Many companies tried, and failed, to duplicate Yahoo’s success by setting up their own Web directories. Eventually, however, the Web grew too large for a directory to make any sense, and Yahoo had to innovate to find other needs it could meet such as email, instant messaging, news, and groups. A hyperport company that fails to find new niches will quickly become irrelevant.

]]>
https://www.hypergridbusiness.com/2011/10/hg-biz-plan-hyperport/feed/ 2