[Opensim-users] [Scripting] Scanning regions for scripts

Jeff Kelley opensim at pescadoo.net
Sat Dec 12 12:31:00 UTC 2015


Scripters know how to code with economy in mind. One of their 
techniques is to control all child prims from a unique central 
script. The average user don't. He duplicates scripts blindly, some 
of them dating from the dark ages where 'a script in every prim' was 
common practice.

I'm building a nice candle. I drop the "flame script" in each of two 
flame prims. Plus a "smoke script" in the base. Now, I clone my 
candle 8 times to get a nice chandelier. Tadam! 24 scripts. 
Uninformed users do terrible things.

Another thing to know is that most properties-setting scripts are 
useless if the effect is not to change over time. Particles, texture 
animation, target omega, hover text, sit target, sound loops are 
persistent properties. The script may be deleted once it has done its 
job.

So, the 24 scripts in your chandelier are totally useless, unless if 
you want to switch it on and off, then 1 script is enough. In the 
end, we see regions with hundreds of useless scripts eating your RAM 
for nothing. How many "hover text" lurking in these freebies boxes?

Have you ever tried to cleanup such a messy region? That's a daunting 
task. The viewer beacon don't show scripts in child prims. Top 
Scripts is helpless. As is the console.

It's time to dive into the database. This PHP script will nicely list 
all the scripts in a region, showing root coordinates, link number, 
link name, script name, and a link to the asset. Like this:

http://www.pescadoo.net/tmp/scripts.png

We guess that this Station Tesla thing is poorly scripted. Loging in 
the region and typing gtp 122 225 38, I can now replace 10 
llSetTextureAnim by one unique llSetLinkTextureAnim in the root prim. 
Same for llLinkParticleSystem and, of course, the ubiquitous 
llSetLinkPrimitiveParams. We miss a llLinkTargetOmega, though.

Get your regions slim and fast. Happy script safari!

https://github.com/jeff-kelley/opensim-utils


-- Jeff





More information about the Opensim-users mailing list