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!