Archive for May, 2009

Parcel radio tuner script – L$50



This is a parcel radio “tuning” script, which provides a dialog menu of owner-picked stations (up to 12) to users. Has full access control; default access can be owner-only, group, or everyone, and that can then be modified by whitelisting or blacklisting individual avatars. The script is supplied full perms for resale as part of radio objects (but not for resale with copy & transfer permissions).

PLEASE NOTE: The owner of the radio object MUST be the owner of the land the radio is on, for this to work. If the land is deeded to a group, the object must be deeded to the same group. See the LSL command for details.

This would be well suited to a club environment, where the owner puts down this radio to allow club staff to change media stream, but there are plenty of other uses too (personal use radio with a few favourite channels, for example).


To get started, copy the script and the supplied Configuration notecard into your radio object. It will load the notecard, which provides two sample radio stations and sets the access permissions to “everyone”. Click the radio to bring up the dialog menu, then click a radio station name to “retune” to it.


To reconfigure the radio, edit the included notecard. Lets start with the supplied notecard as an example:

whitelist=Xugu Madison
blacklist=Doctor Evil
station=Sanitarium FM

Line by line, this example:

  • Sets the access control to “everyone”, as opposed to “owner” or “group”. Please note that for group access; the user’s ACTIVE (as in the one in the tag above their name) must match the group of the radio object.
  • Whitelists Xugu Madison (myself); this doesn’t make a difference with the access control set to everyone, but if it was set to owner/group access then it would allow me to use the radio anyway. You probably want to remove this line!
  • Blacklists Doctor Evil (who I’m hoping doesn’t and never will exist on the grid). This means that they can never use the radio, irrespective of the access default.
  • Sets up a station called “RadioRadio” with the URL
  • Sets up a station called “Sanitarium FM” with the URL –
    please note however that LSL does not support dialog menu buttons over 12 characters in length, so this is trimmed to “Sanitarium F”.

No Comments

Full perms synchronized color cycler script – L$250



Prim color cycler script that will automatically synchronize with other scripts within 10m. Useful for eyes, dance balls, walls, hair, just freaking people out, whatever you like. Does not require prims to be linked. Used by dropping the the script (and optionally a configuration notecard) into the prims to be color cycled. Then take and rez the prims, or use “Tools -> Reset Scripts in Selection” to trigger a resync.


Configuration is done by values in a notecard, called “Configuration”, and placed in prim inventory with the script. A sample notecard is shipped with the script:

color=<1.0, 0.0, 0.0>
color=<1.0, 1.0, 0.0>
color=<0.0, 1.0, 1.0>
color=<0.0, 0.0, 1.0>
color=<1.0, 0.0, 1.0>
# faces=1,3

“channel” sets the communication channel that the scripts synchronize over. This MUST be the same in all scripts to be synchronized, so they can communicate.

“color” adds a color to the list of colors the prim is cycled through. Each color is expressed in the format LSL uses, a set of red, green and blue values, expressed a numbers from 0.0 to 1.0. For example, <1.0, 0.0, 0.0> is 100% red, 0% green, 0% blue.

“steps” indicates the number of steps (in-between colors) generated between each color listed in the “colors” configuration. The script automatically generates these colors on the fly, to provide a smooth transition.

“rate” indicates the time, in seconds, between each in-between step.

“faces” indicates the faces of the prim which are to be colored. If excluded (or commented out, such as it is here by putting a ‘#’ at the start of the line), defaults to all sides of the prim. A prim face identifier is included in the package, which can be used to identify the number of each face of a prim.

No Comments

Bell script, L$25

This is a script to play a looped sound on click, ideal for a door bell or similar. Supports access control (owner, group or everyone, with whitelist and blacklist support), and is supplied full perms (so also good for anyone learning to script).



No Comments

Click ‘n’ tell – L$25

Script to notify the owner of a prim when it is clicked, and the identity of the avatar that clicked it. Includes a link to the avatar’s profile, so you can easily identify who they are. For example:

Click ‘n’ tell 1.0: I’ve just been clicked by Xugu Madison ( secondlife:///app/agent/c5ff894e-d6e4-48bb-b6fe-f143447d95a1/about ).

Due to how object -> avatar instant messages work in Second Life, while the message only goes to the owner it shows up in the local chat tab (instead of being a new tab as avatar instant messages do). Second Life also rate-limits messages from objects, so if the prim is clicked repeatedly (over about 15 times in 30 seconds) the script could lose some of the clicks.

This is an XStreetSL exclusive at the moment:

No Comments

Speech reader script – L$250

Again, not new, but first announcement here; notecard/speech reading script (inSL). Ideal for helping with presentations, SL-weddings, etc. this script allows you to select a notecard from inventory (by means of a paged dialog menu), and it will read it out, with configurable pacing. It can take an unlimited number of notecards to read (selection by dialog menu), and optionally can animate the avatar while a speech is read out. Speech rate and distance are configurable by notecard, as are the details of who exactly can use the script.

Instructions (Copied from the included notecard)

  1. Open the box (I’m assuming you have if you’re reading this).
  2. Copy the “Speech reader 1.2” script out into your inventory, and the sample Configuration if you wish.
  3. Drop the speech reader script into an object of your choice, along with any notecards for it to read.
  4. If you wish to animate the avatar while the notecard is read, drop an animation in to prim inventory as well as the notecards (a full perm chicken dance is provided if you need a test anim).

To use, click the object the script is in, which will bring up a dialog menu. From there, select a notecard or press “Prev” or “Next” to move between pages of notecard names. Once a notecard is selected, it will request the notecard from the asset server (this may take a couple of seconds) and start reading it once the asset server responds. The script will attempt to animate the reading avatar with it if can find a suitable animation in inventory, and will not start reading until animation permissions are received.

To pause playback, put a line with just “[PAUSE]” on it in the notecard, as in:

The itsy bitsy spider went up the water spout.
Down came the rain, and washed the spider out.
Out came the sun, and dried up all the rain
And the itsy bitsy spider went up the spout again.

This will cause the script to pause on that line until clicked to indicate it should continue.


Configuration is done by a special notecard called “Configuration”, such as:

whitelist=Gusher Castaignede
whitelist=Xugu Madison
blacklist=Doctor Evil

All lines should be of the form “setting=value”. This example does the following:

  1. Set the access permissions to “owner” (can also be “group” or “everyone”), allowing only the object’s owner and anyone in the white list to access it.
  2. Sets the delay between reading lines of the notecard, to 1 second.
  3. Add “Gusher Castaignede” to the white list.
  4. Add “Xugu Madison” to the white list.
  5. Add “Doctor Evil” to the black list.
  6. Have all text from the notecard said (as opposed of shouted).

If access permissions were set to group instead (“access=group”), anyone with the same ACTIVE group as the one the object belongs to, would be able to access it (except for people in the blacklist). If access permissions were set to everyone (“access=everyone”), anyone except avatars in the black list would be able to access it.

Read delays are specified in seconds, and are a minimum of 0.1 seconds due to LSL limitations.

White/black list commands add to the list (rather than replace it). There is no way of adding multiple avatars from one line.

Shout can be set to “true” or “false”, and primarily affects the range at which the speech reader can be heard.

No Comments

“IMs are capped daily”

I was thinking about the idea of customer support, in part due to the post “What happen to having Customer Service!” on XStreetSL. Many shop owners in Second Life have “IMs are capped daily, please send notecard” in their profile. IMs are capped in Second Life® because they have a finite amount of storage, and have to decide to put a limit somewhere; this makes sense to me. If you enable IM to e-mail this tends not to be an issue, unless the IM->e-mail gateway decides it doesn’t like you (happened to me twice so far).

Here’s the thing, though; I have paid for Jabber (same protocol Google Talk uses) IM service, as well as Google Talk account (e-mail address is in with any of my free products). Why, then, does it even make more sense for people to contact me in-world, through a proven flaky IM system? It’s like being forced to contact a website through one of the webforms where someone has decided that a 20×40 text field should be plenty for anyone.

There are things IM can’t do; SL needs for people to be able to talk to each other based on proximity. That just doesn’t map to IM. The groups system in SL apparently would turn even the hardiest of Jabber servers into a quivering wreck. However, what about combining the two systems? Let me use my own IM system to receive IMs from virtual worlds. Don’t tie my status for IMs to my in-world-ness, tie it to whether I’m available to chat.

Same for e-mail. Let people e-mail me directly from in-world. I understand not everyone wants their e-mail addresses published, but how about making it an option for those of us who work professionally in virtual worlds?

No Comments

Prim counter scripts – L$50 each

Not new products, but ones I’m seeing a lot of interest in, recently; prim counters for rental parcels.

First of all, we have the fairly standard multi-renter single parcel counter. This is intended to give avatars sharing a single lump of land, an idea of their prim usage compared to their prim quota. Produces output such as:

Single parcel multi-avatar prim counter 1.2: You are using 309 out of a quota of 1000 prims for this parcel.

Prim quotas are defined in an included notecard. Requires that the prim’s owner has “owner-like” access to the land; that means either be parcel owner, or be an officer in the group the land is deeded to (apparently; have to admit I’m trusting the documentation on that one).

Secondly, there’s the multi-parcel prim counter. Designed to sit in a rental office or similar on arented out sim, it takes in one or more landmarks (for parcels on the same sim). When clicked by its owner, it tells them the total prim allowance and usage for the parcel each landmark points to. Output example:

Demo prim counter: “Chess set at 400m” contains 35 out of a maximum of 351 prims.

Both scripts are L$50 each, and available from XStreetSL or directly from my in-world store.

No Comments

Basic modifiable vendor script – L$50

Starting my new range of “core” scripts at value prices, we have a modifiable vendor. Nothing exciting; sits in a prim, takes money, hands out objects. Perfect if you’re just getting started, or have ever wanted to see what a vendor script looks like on the inside. Currently this is an XStreetSL only item, but it will be going into rotation through my shops over the next few days.

Configuration is done entirely by chat commands. All you have to do is drop the script and object (or objects to sell as a set) into a prim together, tell it the price (in chat), and it does the rest. A sample vendor is provided, if you get stuck. Full instructions included in the package. As always, free updates for life are just part of the standard customer service.


No Comments

Second Life® DRM: A failed technological solution to a societal issue

I see a lot of rants about in-world copy tools, copy bots, and why Linden Labs® aren’t doing anything about it. I see a lot of people (quite rightly) upset to see products they’ve poured hours/days of work into being copied and resold. I’m here to tell you it’s all backwards. I see LSL functions held back by absurd claims that they’ll remove some sort of security that never existed in the first place.

Lets get something straight; if I can perceive it, I can copy it. DRM does nothing except slow this down. Blu-Ray came closest to succeeding in stopping copying, with controlled hardware sold by licensed vendors and running custom DRM schemes in a virtual machine. It didn’t last.

So what can content creators do about unlicensed copying? Well, first of all, answer the following question:

“Why is unlicensed copying bad?”

Intuitively, any copy of a product someone has, for which the owner did not get their slice, is a lost sale. Given the insanely low prices on everything in SL (by my estimations, it will take me two years to make back the time invested in any product I sell, for example), that’s money that merchants can ill afford to lose.

Except, would these people really buy your stuff anyway? To me, there are people who understand the intrinsic value of digital content, and there are people who want everything for free. The latter will fight every step of the way, while the former will happily pay for good quality work. The problem then becomes how do we convert the non-payers into customers.

Oh, and we’re back to DRM (or C/M/T if you prefer). Except, it’s a technical solution. It restricts customers and copies alike. If I buy something no-trans, and want to transfer it to alt, why can’t I? If I want to backup content I’ve legitimately paid for (I’ll do a post about ownership in SL another time), why can’t I?

To me, I think the best thing to do is encourage everyone to build, script, animate, or generally spend time making stuff in SL. Not until they produce something and realise they too want money for it, will it sink in that others deserve money for their creations. The problem is society’s lack of perception of copying digital media as involving someone losing something (earned income). This covers not just SL, but music, video, computer games, and anything else you can stick on a CD/DVD.

Personally, everything I sell (apart from demos) in my shop is scripts with mod-enabled, which makes them trivially copiable. Many of the scripts are shipped full perms.  My experiences so far are increased sales over time, and recurring custom. I’m particularly seeing a lot of people who want to have all the scripts from me, because they know they don’t have to worry about passing it to alts, or modifying it to taste.

DRM free; give it a go, you might just like it.

1 Comment

Window texture cycler – L$250


This is a texture cycling script, intended for use in building houses or similar. It changes the textures on one or more sides of some prims it  is linked to, cycling sequentially through a set of textures in prim inventory. Can be configured to only respond to prim owner, anyone whose ACTIVE group is the same as the prim, or everyone.


1. The textures MUST be full perms, due to SL’s permission model.
2. This can only change linked prims.

Configuration (taken from included docs)

The prims which are changed, which sides are changed, and who the script responds to are configured by setting the description on the prim the script is in. This description should be of the form: Change “<prim name>” sides <sides> on <access> click

Prim name is the name of the prims that the script will change. For example, if you set it to “Window pane”, the script will affect all LINKED prims called “Window pane”.

Sides is a comma-separated list of sides of the prim. If you’re not sure what you’re doing, “2,4” is a safe bet for this, and changes two opposites sides of a cube (rotate the prim if it’s not changing the sides you expect).

Access can be “owner”, “group” or “everyone”. Please note that group access requires the avatar’s ACTIVE group matches the prim’s group (not just that they are part of the group).


Change “Window pane” sides 2,4 on owner click
Change “Window” sides 2 on everyone click

No Comments