Archive for May, 2009
Re-texture/re-color HUD scripts for eyes, hair, etc. – L$1,500
Posted by Xugu Madison in Products on May 17th, 2009
XStreetSL: https://www.xstreetsl.com/modules.php?name=Marketplace&file=item&ItemID=1471933
XStreetSL demo: https://www.xstreetsl.com/modules.php?name=Marketplace&file=item&ItemID=1474518
Second Life: http://slurl.com/secondlife/Sunweaver%20Air/203/45/141
Ever wanted to ship a HUD with your hair, eyes or fairly much anything else, so it can be re-textured or re-colored by the end user? This is the product for you. Full perms on all scripts, a complete HUD for setting textures, colors and glow on unlinked prims. Comes with all the scripts you need to set up the HUD, plus a sample HUD. Script for putting in the target prims is also provided. Textures can be loaded from prim inventory or stored within the HUD script itself. Colors and glow can be configured by changing the button they’re on to the right values and using the included scripts to handle the HUD configuration for you.
Instructions
While a sample HUD is provided, you are strongly encouraged to make your own HUD to hold the scripts (particularly as mine is really ugly).
There are 3 scripts for the HUD, 1 script (change receiver) for the target prims, and 2 supporting tools (texture UUID dumper and face identifier).
HUD Setup
The HUD scripts are:
- Color reporting script
- Glow reporting script
- Texture changing HUD script
“Texture changing HUD script” goes in the ROOT of your HUD’s link set, and handles all clicks on the HUD. It identifies which button is being pressed by the prim’s name, which is where the two reporting scripts come in. While textures are managed by the HUD script, color and glow buttons must have pre-configured, and the two reporting scripts set name of the prim they are put in according to its color/glow.
There are 5 buttons supported by the HUD script (specified by name):
- “Texture preview” – these prims have textures set across their faces by the HUD script, to show the user textures they can choose.
- “Color <color>” – these prims trigger a color change when clicked. For example, a prim named “Color <0.00000, 0.00000, 0.00000>” would set the target to black when clicked.
- “Glow <glow>” – these prims trigger a glow (and optionally fullbright) change when clicked. For example a prim named “Glow 0.25″ would set a prim to quarter-glow when clicked.
- “Left arrow button” and “Right arrow button” – these allow paging through the texture preview.
- “Minimise button” – minimises the HUD by rotating it 90 degrees, and also de-minimises (but do make sure there’s a button on the face the user can see when the HUD is minimised!).
Any button is optional, and any button except left/right arrow can be duplicated across the HUD as many times as you can get to link.
Textures are loaded from two places; firstly, from a list stored inside the script, and secondly from prim inventory. While the first requires more work, it is required if you do not wish to ship full permission textures with your HUD due to SL’s security model. This is where the first supporting tool, “Texture UUID dumper” helps; if you put your textures (which MUST be full permission) into the Texture UUID dumper, then click it, it will produce a list or lists ready for insertion into the script.
If the texture UUID dumper produces more than one message (message length from LSL is limited, which makes this necessary), you’ll need to remove the “];” from the end, and “[" from the start, of between messages to create a single list for the LSL script.
The list should then be put into the script at the line (in place of "[]“:
list STORED_TEXTURES = [];
If you then ship the scripts (both HUD and change receiver) without modify permissions, the customer won’t be able to read the UUIDs out of the script. If you’re doing this, I’d recommend changing g_Channel in the HUD script and change receiving script, so they can’t listen for messages between the two scripts and extract the UUID that way. Remember that the channels MUST agree for the script to work.
Target Prim Setup
In each prim you wish to change you should put the script “Change receiver” into prim inventory. This script will attempt to load a configuration notecard and then listen for commands from the HUD. It can be configured to change only some sides of a prim, and to change full bright settings along with glow, by putting values into a notecard called “Configuration”, with the notecard placed in the same prim as the change script.
The configuration should look like:
sides=1,2,5
glow bright=false
In this case, that would change only sides 1, 2 and 5 of the prim, and would not change full bright settings. By default (if there is no sides entry in the configuration notecard), the script changes all sides of a prim at once.
For full bright settings; depending on use case, it can be beneficial to set full bright on prims when a prim is set glowing, in order to provide a glow boost, and also to disable full bright when glow is set to 0. This is where the “glow bright” option comes in; disabled by default, it sets a prim’s faces to full bright if glow is set to non-0 values, and sets full bright off if glow is set to 0. It can be configured with lines such as:
glow bright=true
or
glow bright=false
in the configuration notecard.
For identifying sides of a prim, a simple “Prim face identifier” script is provided which will say the number of the side clicked, when it is placed in a prim. Please note that the script is shipped not running; once you have added it to a prim, use Tools -> Set Scripts to Running in Selection to start the script.
Samples
A sample HUD, with a selection of random textures from a freebie box, is provided. Feel free to use it as a base for your own HUD (or ship it as is, if you like it, your choice).
A sample change receiving prim, “Change receiver”, is also supplied. It may provide particularly useful as it contains a sample configuration.
Color/texture painting and replacement tool – L$500
Posted by Xugu Madison in Products on May 17th, 2009
The first of my major releases this month is a tool for setting texture/color on prims in a link set. You can grab it from XStreetSL at https://www.xstreetsl.com/modules.php?name=Marketplace&file=item&ItemID=1471045.
Has three basic modes of operation:
- Bucket – sets all prim faces to one texture/color.
- Paint – sets an individual prim face on click.
- Replace – substitutes one texture/color with another.
Usage
There are three scripts, in two parts; a HUD which controls the texture tool, and the texture tool which performs the actual changes. The texture tool works by being linked to the target prim(s). For texture replacement to work, it needs to inject a script into every prim in the link set, and those scripts then need to be set running. Once finished, de-linking the texture tool from the link set will cause its client scripts to self-delete.
So, the procedure is, step by step (the texture tool will walk you through this, too):
- Rez texture tool and target prim(s).
- Link texture tool at root of target prim(s) linkset.
- Click texture tool to start script injection.
- Take link set to inventory.
- Rezz link set from inventory.
- While in build mode, select link set, then from the Tools menu pick “Set Scripts to
Running in Selection” - Wear the HUD to control the texture tool.
- Make changes.
- De-link the texture tool from the target prims, to cause its supporting scripts to self-delete.
You can do this by selecting the link set, then enabling “Edit Linked Parts” (from the Tools
menu), click the tool prim to select only it, and then click “Unlink” in the Tools menu.
The HUD, when attached, contains 3 basic parts:
- Mode buttons (far right); Bucket, Paint and Replace.
- Texture preview buttons (centre).
- Color buttons (bottom) – supplied in just black and white, but you can add more by
duplicating the existing button and attaching them to the HUD.
Textures are loaded from prim inventory, and MUST be full perms for the HUD to operate correctly.
To set all prims to one color/texture, select Bucket (it should turn yellow), then click on a texture preview button, or color button.
To set individual prims, select Paint, then click a texture/color, then click prims in the target link set. The clicked face will change to match the selected texture/color.
To replace textures/colors, select Replace, then click the texture/color to be replaced, followed by the texture/color to replace it with. Clicking a texture after a color, or a color after a texture, will cause the initial choice to be cleared.
Shop officially opening, 22nd May 2009, 9pm SLT
Posted by Xugu Madison in Uncategorized on May 16th, 2009
Finally my store in Second Life will be officially opening, this coming Friday 22nd May, at 9pm SL time. Madame Maracas from RadioRadio will be DJing through the night until midnight, at which point those of us in Europe time can keel over in an exhausted heap.
Event listing: https://secure-web18.secondlife.com/events/event.php?id=2708063&date=1242975600
SLURL: http://slurl.com/secondlife/Sunweaver%20Air/216/39/141
Rezz-day present giver – L$50
Posted by Xugu Madison in Products on May 16th, 2009
Somewhat in the theme of raffle balls or magic chairs, this is a rezz-day present giver. If an avatar clicks on the prim on the same day as the created their account (were “rezzed”), it gives them a random item from inventory. Otherwise, it tells them how many days until their rezz-day. Handles leap-birthdays (Feb 29) by handing out presents on March 1st instead (if the current year isn’t a leap year).
This script will only hand out objects (prims and prim sets), never notecards, landmarks, scripts or any other type of inventory.
XStreetSL: https://www.xstreetsl.com/modules.php?name=Marketplace&file=item&ItemID=1469303
Second Life: http://slurl.com/secondlife/Sunweaver%20Air/211/43/141
Freebie: Avatar age & height detector
Posted by Xugu Madison in Products on May 16th, 2009
Looks up the age and height of any avatar that clicks it. Nothing more than a cute toy. Produces output such as:
Avatar age & height detector 1.0: Xugu Madison is 1791 days old, and 1.22 metres tall (without shoes).
XStreetSL: https://www.xstreetsl.com/modules.php?name=Marketplace&file=item&ItemID=1468356
Howto: Texture UUIDs in Second Life
Posted by Xugu Madison in How to on May 11th, 2009
Driven by some of the searches bringing people to my blog, and the fact that I just put out a wildly popular freebie texture UUID extractor, I thought I’d write a howto on texture UUIDs in Second Life.
First of all, what do I mean a texture UUID? A UUID is a Universally Unique Identifier , so a texture UUID is a unique identifier for a texture. It can be used, via LSL, to set the texture on a prim without having the texture in prim inventory. I see the main legitimate use of this as allowing scripts to set textures on unlinked prims without having to pass the texture around (instead passing “by reference”). It does, unfortunately, also see a lot of use as part of Copybot and similar tools; if you can get a texture’s UUID, you can use it anywhere you like.
So how do you get a texture UUID? Well, LSL provides two methods for doing this; either get the key from a texture in prim inventory, or from a texture on the side of a prim. Both require full perms; on the texture if it’s in inventory, or on the prim if it’s got the texture on one side.
This is where my pet freebie comes in. Drop it, and full perm textures, into a prim together. Click your prim, and it will write out a list of the texture UUIDs, preformatted for inclusion in a script.
XStreetSL: https://www.xstreetsl.com/modules.php?name=Marketplace&file=item&ItemID=1447132
SL: http://slurl.com/secondlife/Sunweaver%20Air/195/25/141
Phase door script
Posted by Xugu Madison in Products on May 11th, 2009
This is a phase door script, meaning that it “opens” by converting the prim it is in to be partially transparent, and the link set to phantom (so avatars can move through it). It’s linkable, however because the entire link set goes phantom at once, the results may be a little unexpected.
Supports detailed access control; access can be owner-only, set to group, or everyone, with support for whitelist, blacklist and manager list (can control door lock/unlock) as well. Can play a door chime noise (sample included) when an avatar clicks on it. Configuration is entirely notecard based, will full instructions included.
I also do a multi-pack of blind, phase, swing and slide scripts, which includes this script.
XStreetSL: https://www.xstreetsl.com/modules.php?name=Marketplace&file=item&ItemID=1456440
Single object rezzer – L$500
Posted by Xugu Madison in Products on May 9th, 2009
Not strictly a new product, but a demo is now available. This is a simple menu driven rezzer for rezzing one object at a time out of a prim’s inventory.
XStreetSL: https://www.xstreetsl.com/modules.php?name=Marketplace&file=item&ItemID=1102539
XStreetSL (demo): https://www.xstreetsl.com/modules.php?name=Marketplace&file=item&ItemID=1452105
SLurl: http://slurl.com/secondlife/Sunweaver%20Air/207/34/141
Instructions
A sample rezzer and two scripts are included; the scripts are the important part here. The “Rezzer” script goes in the root prim of the object that will be the rezzer. The “Die” script goes in the objects to be rezzed, and enables the rezzer to delete them when they are no longer required. ALL scripts are shipped not running; once you have dropped them into the object, you need to select “Set Scripts to Running in Selection” from the “Tools” menu, with the object selected, in order to start them. This is done as a safety measure.
IMPORTANT: You MUST have copy permissions on objects to be rezzed (otherwise they would be moved from the prim’s inventory, and couldn’t be rezzed multiple times).
The rezzer will list all objects in the prim inventory as menu options, when clicked. Access is by default restricted to only the owner of the rezzer, but can be configured in a notecard, as can the offset (from the rezzer) of objects being rezzed.
Configuration
The rezzer script attempts to read a notecard called “Configuration” on startup, which it expects to look something like this:
access=owner
offset=<0.0, 0.0, 0.3>
rotation=<0.0, 0.0, 0.0>
clear_on_inactive=true
inactivity_delay=60.0
scan_range=20.0
IMPORTANT: The notecard must be full perms or the script won’t be able to identify it as a notecard, and so won’t load it.
The example configuration lines above mean that:
- “access=owner” means only the owner can access the rezzer. This can alsobe set to “group”, meaning that anyone with the same ACTIVE group as the rezzer’s prim can acccess it, or “everyone” which allows everyone to access the rezzer. The default is everyone.
- “offset=<0.0, 0.0, 0.3>” means that objects are rezzed 0.3metres above the rezzer (no x or y offset, only z).
- “rotation=<0.0, 0.0, 0.0>” means that objects are not rotated relative to the base object when rezzed.
- “clear_on_inactive=true” means that when the rezzer goes inactive (when it detects no avatars present), it auto-derezzes any object that is out.
- “inactivity_delay=60.0″ means that the rezzer scans for avatars every 60 seconds while active.
- “scan_range=20.0″ means the rezzer scans for avatars within 20 metres while active.
Any line beginning with the # character is ignored as a comment. Offsets are relative to the root prims of the rezzer, and the object being rezzed (NOT to the center of them, unless you place the root prim at the center).
Rotations (and these can be left out if you don’t need them, as can all configuration options) are relative to the base prim, and are expressed as a Euler angles (same as the rotations you can see in the build tool). Earlier versions of this script used quaterions (which LSL uses internally), but for storage Euler angles are enough and considerably simpler to understand. Please note that rotations are relative to the base, so if the base is rotated 90 degrees, the rezzed object will be rotated 90 degrees FURTHER than the configuration default.
Operation
Once set up, click the rezzer. This will show the dialog menu, and put the rezzer into the “active” state. In the active state it listens for commands from dialog choices, and scans for avatars close to it (see configuration to change range and/or time). Clicking an object listed in the dialog menu will cause it to rezz. Once an object is out, you can click “Clear” to remove it. When the rezzer no longer detects
any avatars close to it, it automatically goes inactive (stops listening and scanning). It can optionally derezz any object that is out, when it goes inactive (this is the default).
Included Examples
There are three included very simple examples. The rezzed objects have a very thin, nearly transparent prim as their root prim, to enable their rez position to be set reliably. All positions in the configuration notecard are relative to the root prim of the object being rezzed. The different samples are for different access permissions (see the included Configuration notecards).
“Where Am I?”
As a tool for determining offsets from a base prim, I’ve included two new scripts (plus matching example), “Where am I – Base” and “Where am I – Edge”. For an example, drop “Sample where am I?” in-world, and click the base prim. It’ll scan for the matching “edge” prim, find it, and report its relative location and rotation from the base prim. For your own prims, drop “Where am I – Base” into the base prim, “Where am I – Edge” into the prim to find the location of, SET BOTH SCRIPTS RUNNING (“Set Scripts to Running in Selection” from the “Tools” menu) and then click on the base prim.
Resale
These scripts are intended to be resold, but NOT with both copy and transfer permissions. Copy/mod or transfer/mod only please.
Prim face identifier (freebie)
Posted by Xugu Madison in Products on May 8th, 2009
Another support tool from the texture HUD, this is a script to identify the face of a prim that was clicked (really useful for writing scripts that set textures/colors/etc.). To use, drop the script into the prim you want to identify faces of, then click faces of the prim to identify their number. Produces output such as:
Prim face identifier 1.0 boxed: Touch me to identify the number of each face on this prim.
Prim face identifier 1.0 boxed: You touched face #1.
Prim face identifier 1.0 boxed: You touched face #0.
XStreetSL: https://www.xstreetsl.com/modules.php?name=Marketplace&file=item&ItemID=1450844
Texture UUID dumper (Freebie)
Posted by Xugu Madison in Products on May 7th, 2009
As part of the texture changing HUD, I’ve needed to write a few small tools to help with setup. One of these is a texture UUID (univerally unique identifier -referred to as key in LSL) dumper, for helping with scripting. Requires that the textures are full perms due to Second Life’s permissions model.
To use, drop this script into prim inventory along with the textures to extract UUIDs from, then click to activate. It will read in all the textures, warn on any problem cases, then print out the pre-formatted list.
XStreetSL: https://www.xstreetsl.com/modules.php?name=Marketplace&file=item&ItemID=1447132
Second Life: http://slurl.com/secondlife/Sunweaver%20Air/195/25/141
Edit: Now available in Second Life due to high demand.