BF Bird Box update V3.0

During the course of updating all my scripted products, I decided to chase down a report that I received about the bird box stopping for no apparent reason.  I run copies of the boxes at my house and Eden, the club that I co-manage, and I’ve never experienced this problem, but apparently one of my customers has, a number of times.  This was not a major issue for them, they just restarted the box and everything was fine, but things like this bug me (pardon the pun).

Although the script for the box employs some very sophisticated programming techniques, I was obviously still learning the quirks of LSL when I wrote it, because I found a newbie mistake with the code that under very certain circumstances could cause the script to halt when it lost track of a player.

Having found the bug in the code, I was able to create the scenario that caused the bug to trigger, and could then reproduce the bug.  So I refactored that part of the script to use “proper” LSL techniques to squish it 🙂

While I was in the code, I added a few new features.

Some people, including me, have multiple parcels on a region.  Previously, if the box detected that this was so, and that it could move objects into a parcel that it wasn’t on, it would do this.  I’ve now added a new configuration parameter called “push_to_others” that enables or disables this.

If you set the parameter to 1, it will send players to all parcels it discovers owned by the same owner of the parcel it’s on, and if you set it to 0, it won’t.

I also decided to also make the “circle” function of the box much more versatile.

The original box allowed you to specify a minimum and maximum radius for a circle that was centered on the box.  This allowed you to create a circle or “torus” that would constrain the sounds to that area.

The drawback with the original design was that the circle applied to all levels, which was usually not what you wanted.  I’ve fixed this in the new version too.  You can now specify a circle (not torus any more) per level by setting a center and a radius.  Note the circle no longer needs to be centered on the box.

If you’re using the old max_radius and min_radius parameters to set a circle, you will need to update your configuration for this version.  The documentation explains how the new parameters work, but to summarize, it’s just a matter of specifying a center and radius in the level description.  So a level with a circle might look like:


level=(height:22, max:3, chance:60, notecard:birds, center:<190,45,0>, radius:10)

Using both these new parameters in tandem is a great way to get certain sounds on one parcel and not on another without having to use two boxes, one for each parcel.

The documentation has been updated for these new features, but if you have any questions or something is unclear to you, contact me and I’ll do my best to help you out!


Product updates

TL;DR

I’m releasing a lot of product updates due to a changed workflow.  Skip to the bottom of the article to see which ones.  Most products will see small or no functional changes that won’t effect your use of the product.  If you’re really paying attention, you might see the memory footprints of the objects go down.  Products that have significant functional changes are highlighted and link to articles covering their changes.

What’s going on?

During the time I’ve been creating content for Second Life, I’ve actively tried to make my customers happy by making support a priority.  This means that I’ll drop what I’m doing and come and help you solve whatever problem you’re having, until you’re a happy camper.  This attitude has sometimes left me confused about which script is where and in what object.

Tracking script versions in SL is hard, far harder than it should be.  I should know, I’ve been a software developer for my entire career (although I now run the team instead of actively code) and I track software changes all the time.  SL doesn’t make it easy, there’s not even a supported way to insert a version number into a script!  You have to hand code it, and that previously meant hand coding it in every copy of the script in-world.

So, I’ve decided that I’m going to rigidly standardize my workflow, and I’m going to standardize it around a build system that includes running code through LSL PyOptimizer.

As the optimizer is not part of Firestorm, input (the script) and output all happen on my computer and not in-world.  To save myself copying and pasting the processed script into multiple copies of objects in-world, my in-world scripts now consist of just an #include directive to include the optimizer’s output.  There are two sides to this.

Firstly, I get the benefit of far less confusion over which in-world script I changed to fix your problem.  I can no longer change a script in-world, I have to edit it on my computer and run it through the workflow.  There is only one place the script resides, and it’s right there on my computer in a version controlled repository.

Secondly, you get the benefit of far more memory miserly scripts due to the optimizer.  The less memory used in a region, the faster it’s going to go.

And lastly, there’s a downside (there’s always a downside).  The downside is that it might take me a few more minutes/hours/days to solve a problem if you experience one, because I can’t get instant gratification by editing the script in-world right there in front of you.  I have to run the workflow.  And as that takes my focus off the viewer, I won’t try and fix a problem on the spot like I have in the past.

As you might imagine, after creating for over eight years, I have a lot of script to change over to this new system, and you’d be right.  I’ve been working on it in all my free time in SL since just after the New Year, and I’m happy to say I’ve finally completed the work for all the scripted products I sell.  I won’t mention the dozens and dozens of scripted objects I’ve created that I don’t sell.  They’re next!.

Changed Products

In the next few days, I plan to redeliver the following products to customers that have purchased them in the past (if you can see this article, marketplace and my store vendors have already been updated, so you can request a redelivery, or wait until I send you the update):

Product nameOld VersionNew Version
BF Build PlatformV1.0V1.1
BF Wind ChimesV1.2V1.3
BF Wind SculptV1.1V1.2
BF Globe on StandV1.1V1.2
BF Paper FanV1.0V1.1
BF Simple Skate HUDV1.0V1.1
BF “Swingin’ on the moon” ClockV1.0V1.1
BF Paper LampV1.0V1.1
BF Rain of StarsV1.0V1.1
BF Pose HUDV1.0V1.1
BF Music boxV1.1V1.2
BF Love NoteV1.0V1.1
BF Word ScramblesV1.2V1.3
BF Bird Box DemoX02-031V3.0
BF Bird BoxX02-031V3.0
BF Coffee Tin Bird BoxX02-031V3.0
BF TelescopeV3.10V4.0
BF Carbon Truss TelescopeV1.32V4.0
BF SDSS DisplayV1.22V4.0

The version numbers are listed so you can see if you have the latest delivery.  The new version number is in the description of each box containing the product, and those boxes are no modify, so there should be less confusion as to which box is which version too!

There are a few footnotes to explain things you may find strange in the table.  And if the name is a link, it links to a post explaining exactly what has changed with the product because you might have to change your configuration, or the way you use the product (hopefully for the better!).

Questions?

If you have any questions about any of this, please don’t hesitate to contact me either in-world by IMing me or dropping me a notecard, or you can use the contact form on this website or email my support email address, and I’ll get right back to you.


[1] This version number format is a holdover from days when I used to program in assembler.  I’m not sure how I managed to go a number of years without noticing that it was formatted like this.  A number like V3.0 is far easier for you to understand.
[2] There’s a large jump in the version number here.  Don’t worry, you didn’t miss out on anything!  As the scripts that make up the telescope system are now shared between all three systems, it was getting tedious to maintain multiple version numbers that were in effect, meaningless.  So I decided to jump all three systems to a common version number.

A new home

I’m eight and a half years old in Second Life.  For nearly all those years, I lived in a house that my old partner Aeon built.  We started out with a L$99 loft that I’d bought to be my in-world shop before I met Aeon, but by early 2015, we’d moved into Snug Harbour (yes, Heinlein reference, we’re both fans).

Aeon came up with the concept for the house and built it in Blender as only her second ever Blender project.  I thought to myself “that will give me plenty of time to write the scripts”, but no, Aeon finished it in less than a week, which put the pressure on me to finish the scripting 🙂

I was looking for an exact date and I thought I’d written a blog post when I took down the old loft and put the new house in place, but it turns out it pre-dates the first entry in this blog, so I must be imagining things.  But my first script saves were in early 2015, so that would make it at least seven years in that house!  There are plenty of photos taken  both inside and outside the house on the blog, and I enjoyed it as you do a home, somewhere familiar to hang your hat 🙂

All this is leading to the fact that I bought a new house!  I saw a fab one by Trompe Loeil at this month’s Uber, and it immediately spoke to me.  But would it fit on one of my 32x32m parcels, and leave me enough space for a my trees and the telescope?? Yes!

As you can see (or may have noticed before) I live on a platform in the sky.  This is because I live in a shared residential region, and living in a skybox or on a platform offers you some level of privacy (and it also lets me maintain a park and greenhouse at ground level for other people to enjoy).

The house dimensions are 30x23m which left me with a nice little 9m wide strip to fit my trees and the telescope.

The house itself is spacious with its two levels.  The top floor features two walls to you could move or delete to open the floor space up even more.  The ground floor features a (non-scripted) kitchen that you could also delete if that’s not your style.  I only have a couple of nits, the first being that there is no stair access to the roof.  Considering the stairwell goes to that level too.

Another issue is the moveable walls on the top level.  For some reason, they have an invisible mesh plane at the bottom of them.  On the one next to the stairs, the plane pokes into the stairwell and you collide with it on the way up and down.  Thinking outside the box for this one, I turned the wall upside down, which put the plane in the ceiling out of the way 🙂

Trompe Loeil uses a modular script system for house control.  While it does have an access list allowing people to open doors and use the lights and window blinds, it has no security system to actually keep people out of the house.  It also lacks radio and fireplace control (the fire is controlled by clicking the fireplace), so I’ll replace it with my own.

The house comes in at 74 land impact and costs L$625 at this month’s Uber event.  You’ll need to hurry if you want to grab it as Uber closes in two days.

House: Cilje Modern Ranch by Trompe Loeil available at this month’s Uber event


The best intentions…

I had planned to do all 24 days of the Advent calendars I told you about… Unfortunately my PC didn’t get the message and decided to have a major software conniption on Friday.  I’ve just spent the entire weekend reinstalling the operating system and restoring from backup.  This was not only frustrating because I couldn’t get to SL to get the calendar gifties, but the weekend happened to be one of the nicest we’ve seen for a while weather-wise, and I was stuck inside 🙁


Marlene – Advent day 2

This is the standout for today!  This ensemble by Blackbird Lace consists of the shirt, pants, shoes, and bag, with sizes for Lara, Freya, Venus, Isis, Hourglass, and Physique.  There’s a HUD with multiple color choices for all parts including the bag and shoes.  A really nice outfit!  You can pick this one up by joining their FREE group.

Day #2 Dress by WellMade


Thana – Advent day 1

Oh my, the Advent calendar season is on us for other year.  Last year, I don’t think I did any Advent calendars, but this year I will do a few.  I’ve chosen five stores who are either FREE, or whose paid group I am already in, from the huge list of creators offering them this year.  The stores are Blackbird Lace, WellMade, Salt & Pepper, Vagrant, and Glitzz.  I’ll try to feature an outfit a day, and if there are other ones I’d normally consider writing up, I’ll post captioned photos under the main post.

I’ll try and post these early, but do be aware that the calendars often only allow you to get the gift on the day.  If you miss out, it’s either a small fee to get a gift you’ve missed, or you’re out of luck.

The first store is Salt & Pepper.  Their group is L$300 to join, and they’re offering a rather cheeky and eye-catching corset dress and matching panties.

There are sizes for Lara, Lara Petite, Legacy, Legacy Perky, Reborn, Reborn Juicy, and GenX Curvy and Classic.

Petra by Glitzz

Isabella Shirt by Vagrant


Eliz

This is a group gift for members of the teleporthub.com group.  The group is a one time join fee of L$10, which gives you access to gifts from creators all over the grid.

There are only three sizes with this: Lara, Legacy, and Hourglass.  The dress is materials enabled and (I hate to say it) displays that “just too much” sheen that I think I’ll start calling “polyester” haha!  And yes, I dyed my hair for this.  I like floral prints on black but the pink on this was a little too much pink.  A little more black and I would have worn my usual color.

The matching heels are included, and come in the same three sizes.  Note the “Hourglass” size is really for SLink High, so you can certainly wear these with other bodies that you’re wearing Slink High feet with (as I’m doing in the pictures).  The detailing is very nice, but the shine again detracts from them just a little.  I’ve wondered before on the blog if creators look at things they’re material enabling under projector lights at all?


Carolina

This risqué topless one piece is a FREE gift available from the Happy Event, which runs until the 28th of November.  You can get the gifts just by joining the FREE event group and clicking on the boxes at each exhibitor’s stall.

There are sizes for Lara, Lara Petite, Legacy, Hourglass, and Freya.


Aika

The FabFree Fallen Leaves & Frost Hunt is on at the moment, and it runs until the 30th of November.  I came across these really great “sandal boots” on the hunt as one of the hunt items.

These are rigged, and there are sizes for Lara, Legacy, Freya, and Hourglass.  The hunt item is only in denim, but there are other options to purchase these in other colors in-store, either separately, in mini packs, or as a fatpack.  They also include a HUD to select the metal for the eyelets.

This is only one of the hunt items in this store too.  There’s are four other pieces hidden around the store to create a full matching outfit.  Each item is only L$5.


Domina

The Happy Event is celebrating their second anniversary at the moment, and there are FREE gifts available just by joining the FREE event group.  The event runs until the 28th of the month.

There are some nice outfits among the gifts, but in some strange colors.  This is the most redhead friendly outfit, color-wise 🙂

The top and tights are separates.  The materials are well done and give the right latex look to the outfit.  There are sizes for Lara, Legacy, eBody, Erika, and Kupra, and the top comes in Lara Petite too.  An alpha is included for the leggings (which go to the ankle, and I cropped, because… too lazy to deal with weird foot shadows 😛 )