I’ve been fiddling around with Linden Scripting Language for over nine years now. It’s an interesting, quirky language, with a huge number of functions in its library (nearly 500). While I think I know it pretty well, language and library features can always surprise even the most experienced coder.
A week or so ago, I found myself in the position of wanting to be able to rez and derez 64 linked objects. Previously, I’ve done this by putting a script in the objects to be deleted that listened to the master script and then deleted themselves when told. But…
64 scripts, even though they were very small (about 5 lines of code and less than 6K of memory each), nearly doubled the land impact of my 65 piece object! There had to be a better way. And there is.
There are two functions called llSetRemoteScriptAccessPin() and llRemoteLoadScriptPin() that will allow you to load a script to an object on demand and set it to running. I won’t give you an example here, you can see some at the links to the functions. All this is leading up to the fact that I have an existing product on MP that also does rez and derez of multiple linked objects, and uses the old method. Can we use these functions to drop its land impact? No prize for a correct guess!
This is the BF Wind Sculpt, a kinetic wind sculpture based on Anthony Howe’s Di-Octo. It rezzes and derezzes its vanes on demand. With the old system with a script in each vane listening to the support to say “delete yourself”, the object weighs in at 13 LI. Using the new method, it comes in at 10. Yay! If you own a copy, you should now have version V1.3.