Talk:Random AV Profile Projector
Random Profile Projector v5.4.1 ~ Help Page
What does it do?
The Random Profile Projector randomly selects an AV from a crowd & then displays their profile picture as texture on a prim and/or a 'holographic' image projected above the prim
How does it do it?
A profile picture is a publically available piece of data which can be searched for. See http://forums.secondlife.com/showthread.php?t=225460 for a full technical discussion.
To set-up the Random Profile Projector
If you are only intending to project the ‘holographic’ image, and not texture the prim, then it is not particularly important how the prim is built. However, a 0.25m x 0.25m x 0.25m sphere, textured blank, coloured dark-gray and shininess set to 'High' will work well. You can also put it in some object you wear.
If you are intending to texture the prim with the profile picture then keep the prim shape as a cube. A 1.5m x 1.5m x 1.5m cube, textured blank, coloured white works well. Ensure shininess is set to ‘None’.
Put the Random Profile Projector script into the ‘Contents’ of the prim.
See section 'Beginners Step-By-Step Guide' for full guidance.
To configure and customise the Random Profile Projector
There are a number of parameters in the script that you can change to determine how the Random Profile Projector will operate.
General Settings
OwnerChannel: by default this parameter is set to “54321”. It is the listen channel which the Owner will use to communicate ‘Exclude List’ information on. You can set it to any whole number, but avoid “0”, “1” and other commonly used channels. Ensure you read section 'Understanding OwnerChannel, OpenListen and CloseListen' below for further details.
ExcludeListSize: by default this parameter is set to "30". It is the maximum number of names that can be on the 'Exclude List' at any one time. Although it may be tempting to ramp this up to a high value, doing so increases the risk of violating the 16Kb memory limit for a single LSL script. If this occurs you will likely see a 'Script run-time error: Stack-Heap Collision' error message. Possible solutions are offered in the FAQ section below.
DialogTimeOut: by default this parameter is set to “20.00” seconds. It is the amount of time that the user has to make a selection from the blue dialog menu before the listen shuts down.
RepeatTime: by default this parameter is set to “35.00” seconds. It is the amount of time between each sweep to find a new AV
Range: by default this parameter is set to “25.00” meters. It is the distance from the prim that the sweep will be made.
TotalNoScansAllowed: by default this parameter is set to “20”. It controls the number of times that a sweep is made without finding anyone within ‘Range’. For example, if ‘RepeatTime’ is set to “35.00” seconds and TotalNoScansAllowed is set to “20”, then the Random Profile Projector will automatically switch itself off after 700 seconds (35.00 x 20) if it does not find anyone. However, if you set this parameter to zero “0” this functionality is disabled and the Random Profile Projector will continue to operate until turned off by the Owner.
DefaultTexturePalette: this is a “palette”of texture UUID’s. One of the UUID’s from this list will be randomly displayed if an AV is selected who does not have a profile picture. It is also the selection list used if ‘EmployDefaultTexture’ is set to ‘TRUE’. Although it may be tempting to load this list up with many different texture UUID's, doing so increases the risk of violating the 16Kb memory limit for a single LSL script. If this occurs you will likely see a 'Script run-time error: Stack-Heap Collision' error message. Possible solutions are offered in the FAQ section below.
EmployDefaultTexture: by default this parameter is set to “TRUE”. It controls whether one of texture UUID’s listed in ‘DefaultTexturePalette’ will be displayed when the Random Profile Projector is switched OFF. “TRUE” employs a default texture when switched OFF; “FALSE” will prevent a default texture from being employed.
Particle Settings
DisplayBanner: by default this parameter is set to “TRUE”. It controls whether the ‘holographic’ image of the profile picture will be projected. Set to “FALSE” to prevent this projection.
Size: This parameter only has an effect if “DisplayBanner = TRUE”. By default it is set to “2.50”. It controls the width in meters of the projected image. The maximum size of the projected image is 4.0m x 4.0m
Height: This parameter only has an effect if “DisplayBanner = TRUE”. By default it is set to “2.50”. It controls the distance above the prim in meters that the centre of the projected image will appear.
Prim Settings
TexturePrim: by default this parameter is set to “TRUE”. It controls whether the prim will be textured with the profile picture. “TRUE” will texture the prim with the profile picture; “FALSE” will prevent the prim from being textured.
PrimUUIDTexture: This parameter only has an effect if ("EmployDefaultTexture = FALSE") OR ("EmployDefaultTexture = TRUE" and "TexturePrim=FALSE"). It is the UUID of the texture to be applied to the prim when the Random Profile Projector is switched OFF.
PrimFullBright: This parameter only has an effect if ("EmployDefaultTexture = FALSE") OR ("EmployDefaultTexture = TRUE" and "TexturePrim=FALSE"). It controls whether the prim will be Full Bright when the Random Profile Projector is switched OFF. “TRUE” applies Full Bright; “FALSE” switches Full Bright off. Default value = "FALSE".
PrimColour: This parameter only has an effect if ("EmployDefaultTexture = FALSE") OR ("EmployDefaultTexture = TRUE" and "TexturePrim=FALSE"). It is the colour vector to apply to the prim when the Random Profile Projector is switched OFF. Default value = "<0.0,0.0,0.0>" (Black).
PrimAlpha: This parameter only has an effect if ("EmployDefaultTexture = FALSE") OR ("EmployDefaultTexture = TRUE" and "TexturePrim=FALSE"). It controls the degree of alpha to be applied to whenthe prim the Random Profile Projector is switched OFF. Default value = "1.0".
PrimShine: This parameter only has an effect if ("EmployDefaultTexture = FALSE") OR ("EmployDefaultTexture = TRUE" and "TexturePrim=FALSE"). It controls the degree of shine to be applied to the prim when the Random Profile Projector is switched OFF. Default value = "3".
Floating Text Settings
ApplyFloatingText: by default this parameter is set to "TRUE". It controls whether floating text appears above the Random Profile Projector prim. Set it to "FALSE" for no floating text.
FloatingText: This parameter only has an effect if "ApplyFloatingText = TRUE". It defines the actual text that will float above the Random Profile Projector prim.
FloatingTextColour: This parameter only has an effect if "ApplyFloatingText = TRUE". It controls the colour of the floating text.
FloatingTextAlpha: This parameter only has an effect if "ApplyFloatingText = TRUE". It controls the degree of alpha to be applied to the floating text.
Rotation Settings
ApplyRotation: This parameter only has an effect if "TexturePrim = TRUE". By default this parameter is set to "FALSE". It determines if the prim will slowly rotate when the Random Profile Projector is switched ON. Set to "TRUE" for rotation.
ShoutOut Parameters
ShoutOut: by default this parameter is set to “TRUE”. It controls whether a ‘ShoutOut’ will be given to the AV whose profile picture has been randomly selected. “TRUE” to give a ‘ShoutOut’; “FALSE” to prevent a ‘ShoutOut’
ShoutOutText: This parameter only has an effect if “ShoutOut = TRUE”. By default it is set to “’s face is up in lights!”. The text that will be shouted out to the AV whose profile picture has been randomly selected. The ShoutOutText’ will be preceded by their name, for example “Joe Smith’s name is up in lights!”
To operate the Random Profile Projector
Owner Only
General Usage
- To switch ON: ‘Touch’ the Random Profile Projector prim and select ‘On’ from the blue dialog menu.
- To switch OFF: ‘Touch’ the Random Profile Projector prim and select ‘Off’ from the blue dialog menu.
Understanding OwnerChannel, 'OpenListen' and 'CloseListen'
The Owner communicates with the Random Profile Projector using a combination of a blue dialog menu and typing in room chat. Communications from room chat to the Random Profile Projector are performed on the channel defined in parameter 'OwnerChannel'. By default this is "54321". However, unlike most similar devices that have room chat communications with their Owner, the Random Profile Projector requires that you first activate the listen channel. This is done by selecting 'OpenListen' from the blue dialog menu. Once the listen channel is open, the Random Profile Projector will listen for the Owner on the channel defined in parameter 'OwnerChannel'. This listen channel will remain open until the Owner selects 'CloseListen' from the blue dialog box, or switches the toy off. This ensures that the listen channel is only open as and when it is needed, and thus, in this small way, contributes to a healthier environment for us all.
The Random Profile Projector listens for the Owner to make the following commands (assuming the default of "54321"):
- /54321Exclude <AV_NAME> // add a named AV to the 'Exclude List'
- /54321Include <AV_NAME> // removes a named AV from the 'Exclude List'
- /54321List // lists all entries on the 'Exclude List'
- /54321ClearAll // clears the 'Exclude List' of all entries.
Note, the 'OpenListen' and 'CloseListen' buttons are only available when the Random Profile Projector is switched on.
See section 'Specific Tasks' below for further details.
Specific Tasks
To add someone to the ‘Exclude List’:
- ‘Touch’ the Random Profile Projector prim and select ‘OpenListen’ from the blue dialog menu. This will open a Owner Only listen on the channel number set in parameter “OwnerChannel”.
- In room chat, type: “/<OwnerChannel>Exclude <AV_NAME>”. For example, “/54321Exclude Joe Smith” (without the quotes)
- You will receive a confirmation message that the AV name has been added to the ‘Exclude List’
- ‘Touch’ the Random Profile Projector prim and select ‘CloseListen’ from the blue dialog menu. This will close the Owner Only listen on the channel number set in parameter “OwnerChannel”.
To remove someone from the ‘Exclude List’:
- ‘Touch’ the Random Profile Projector prim and select ‘OpenListen’ from the blue dialog menu. This will open a Owner Only listen on the channel number set in parameter “OwnerChannel”.
- In room chat, type: “/<OwnerChannel>Include <AV_NAME>”. For example, “/54321Include Joe Smith” (without the quotes)
- You will receive a confirmation message that the AV name has been removed from the ‘Exclude List’
- ‘Touch’ the Random Profile Projector prim and select ‘CloseListen’ from the blue dialog menu. This will close the Owner Only listen on the channel number set in parameter “OwnerChannel”.
To see who is listed in the ‘Exclude List’:
- ‘Touch’ the Random Profile Projector prim and select ‘OpenListen’ from the blue dialog menu. This will open a Owner Only listen on the channel number set in parameter “OwnerChannel”.
- In room chat, type: “/<OwnerChannel>List". For example, “/54321List” (without the quotes)
- You will be presented with the names currently on the ‘Exclude List’
- ‘Touch’ the Random Profile Projector prim and select ‘CloseListen’ from the blue dialog menu. This will close the Owner Only listen on the channel number set in parameter “OwnerChannel”.
To clear the ‘Exclude List’ of all entries:
- ‘Touch’ the Random Profile Projector prim and select ‘OpenListen’ from the blue dialog menu. This will open a Owner Only listen on the channel number set in parameter “OwnerChannel”.
- In room chat, type: “/<OwnerChannel>ClearAll". For example, “/54321ClearAll” (without the quotes)
- You will receive confirmation that the receive list has been cleared
- ‘Touch’ the Random Profile Projector prim and select ‘CloseListen’ from the blue dialog menu. This will close the Owner Only listen on the channel number set in parameter “OwnerChannel”.
Other Users
- A user can choose to be added to the ‘Exclude List’ by touching the Random Profile Projector prim and selecting ‘ExcludeMe’ from the blue dialog menu.
- A user can remove their name from the ‘Exclude List’ by touching the Random Profile Projector prim and selecting ‘IncludeMe’ from the blue dialog menu.
All Users
- Selecting ‘LearnMore’ from the blue dialog menu will present a link to the SL forum thread about the Random Profile Projector.
- Selecting ‘GetScript’ from the blue dialog menu will present a link to the latest version of the Random Profile Projector’s script.
- For Help: ‘Touch’ the Random Profile Projector prim and select ‘Help’ from the blue dialog menu. This will link you to the Random Profile Projector Help page.
The 'Exclude List'
Some people are not entirely comfortable allowing their profile picture to be displayed publically. This is recognised and the Random Profile Projector provides a means to prevent their profile picture from being used. The Random Profile Projector has an 'Exclude List'. Any name listed here will not have their profile picture displayed.
Adding Names to the 'Exclude List'
- An individual can add their own name to the Random Profile Projector's 'Exclude List' by touching the prim and selecting 'ExcludeMe' from the blue dialog menu.
- The Owner can add a name to the Random Profile Projector's 'Exclude List' as detailed in section 'Specific Tasks' above
Removing Names from the 'Exclude List'
- If an individual added their own name to the Random Profile Projector's 'Exclude List' then they can remove it by touching the prim and selecting 'IncludeMe' from the blue dialog menu. An individual cannot remove their own name if it was added to the 'Exclude List' by the Owner.
- The Owner can remove a name from the Random Profile Projector's 'Exclude List' as detailed in section 'Specific Tasks' above
Removing Yourself From Search Entirely
- An individual can remove themself from search by unchecking the 'Show in search' option on the '2nd Life' tab of your profile. Please note that it may take a few days of it to take effect.
Frequently Asked Questions
Q: "I'm not sure how to set up the Random Profile Projector. Where can I ask some questions and get some help?" A:
- See the 'Beginners Step-by-Step Guide' section below
- Post your question/comment on this SL forum thread: http://forums.secondlife.com/showthread.php?t=225692 There are people there more than able and willing to help :)
Q: "Can I sell it in my store?"
A: See section 'Usage Caveats' below. This script is free to use and modify as you wish on condition that the title and introduction remain in place within the script, and that due credit continues to be given to Moriash Moreau, Jana Kamachi and Solar Alter, and Debbie Trilling.
Q: "Why isn't it showing my picture?"
A: Ensure that you have a picture loaded into your profile, and the 'Show in search' option on the '2nd Life' tab of your profile is checked.
Q: "Why is it displaying my old profile picture?"
A: There appears to be a delay before the database is updated. Please try later, this may be a few days.
Q: "Why doesn't it display my profile picture at all? I have not changed it recently"
A:
- Ensure that the 'Show in search' option on the '2nd Life' tab of your profile is checked.
- On rare occasions, even though a picture is loaded into the profile, and hasn't recently been changed, no UUID is returned from the database. Please try later, this may be a few days.
Q: "Is it possible to have more than one default texture?"
A: Yes, multiple textures can be listed in parameter 'DefaultTexturePalette'.
Q: "Is it possible to apply the profile picture as a texture onto a prim?"
A: Yes. Ensure that parameter 'TexturePrim' is set to "TRUE".
Q: Why does it change the prim properties when I switch it off?"
A: You have set ("EmployDefaultTexture = FALSE") OR ("EmployDefaultTexture = TRUE" and "TexturePrim=FALSE") but have not then set the following parameters. It is therefore using the default values:
- PrimUUIDTexture
- PrimFullBright
- PrimColour
- PrimAlpha
- PrimShine
Q: "Why do I get a message 'Script run-time error: Stack-Heap Collision'?"
A: Likely you have exceeded the 16Kb script memory limitation. To fix this, reduce the number of textures you have listed in parameter 'DefaultTexturePalette', reduce the number of indivduals you have in the 'Exclude List' and/or reduce the value assigned to parameter 'ExcludeListSize'. You will need to re-compile the script.
Q:"I am not comfortable with my profile picture being displayed publically. Can it be stopped?"
A: Yes.
- 'Touch' the Random Profile Projector prim and select 'ExcludeMe' from the blue dialog menu to be added to the 'Exclude List'.
- Uncheck the 'Show in search' option on the '2nd Life' tab of your profile
- The Owner of the Random Profile Projector can add you to the 'Exclude List'
Q: "Actually, it really is not that bad at all, and is just a lil harmless fun. Can I remove my name from the 'Exclude List'?"
A: Yes
- If you placed yourself on the 'Exclude List', 'touch' the Random Profile Projector prim and select 'IncludeMe' from the blue dialog menu. However, you cannot yourself remove your own name from the 'Exclude List' if it was placed there by the Owner.
- The Owner of the Random Profile Projector can remove you from the 'Exclude List'
Q: "Where can I get a copy of the script?"
A:
- 'Touch' the Random Profile Projector prim and select 'GetScript' from the blue dialog menu.
- http://wiki.secondlife.com/wiki/Random_AV_Profile_Projector
Q: "Where can I learn more about the Random Profile Projector?"
A:
- 'Touch' the Random Profile Projector prim and select 'LearnMore' from the blue dialog menu.
- http://forums.secondlife.com/showthread.php?t=225692
- http://forums.secondlife.com/showthread.php?t=225460
Beginners Step-by-Step Guide
- The following steps describe how to build a Random Profile Projector with default settings, and then advise about customising and personalising it.
- Click the 'Build' button to rez a default cube.
- Set the size to 1.5m x 1.5m x 1.5m
- Set the texture to 'Blank'
- Set the colour to 'White'
- Click the 'Full Bright' check box
- Click the 'Content' tab
- Click the 'New Script...' button
- Right-click the New Script and select 'Open'
- Select 'Edit | Select All'
- Select 'Edit | Cut' to leave a blank New Script. Leave this open within SL
- Open the web page with the latest version of the code: http://wiki.secondlife.com/wiki/Random_AV_Profile_Projector
- The script code is contained within the dotted-lines in the pale yellow box. Select all of the contents of that box.
- Press <Ctrl-C> to copy the selected text
- Return to the blank New Script, and press <Ctrl-V> to paste the code
- Click 'Save'
- Close the script
- Close the 'Edit' window
- This will give you a Random Profile Projector using all the default settings. 'Touch' the prim and select 'On' from the blue dialog menu.
- The Random Profile Projector provides many options for you to customise and personalise it. To do this you will need to change parameters within the script, and 'Save' your script changes. You can find details about each of the options you can change on the Help page at http://wiki.secondlife.com/wiki/Talk:Random_AV_Profile_Projector.
- If you need help after reading the Help page, please leave a question or comment on the SL forum at http://forums.secondlife.com/showthread.php?t=225692
Revision History
- 5.5 In progress (delivery expected sometime after the expected meteror collision with Mars on 30/01/2008)
- Make 'OpenListen' and 'CloseListen' functionality avaliable even when toy is switched off
- When toy is switched off, add a 'Configure' button that will allow Owner to change the parameters, manage default textures and otherwise configure and customise the toy without the need to manually change the script. Only exception to this will be 'OwnerChannel' which will continue to default to "54321" unless amended from within the script.
- Add simple range and validation checking for values entered using new 'Configure' functionality. This is done by restricting value choices from a blue dialog menu or, where that is not convenient or possible, by using code.
- Add 'ResetScript' functionality avaliable from new 'Configure' functionality.
- Convert 'Exclude List' to a strided list in format "[<Exclude_Source_Indicator>, <Excluded_AV_NAME>]", rather than concatenating string 'SelfExcludedSuffix' to the end of the name
- Add ability to list only those AVs exclude by the Owner "/12345ListOwnerExcluded"
- Add ability to list only self-excluded "/12345ListSelfExcluded"
- Add ability to create any of the three lists from the Owner Main Menu
- List items to be displayed on a new line
- Change comparisons to format "(CONSTANT == variable)" as this will more readily cause a compile error if incorrect code changes/modifications are made by others. Will also help prevent a situation where those changes/modifications are compiled, but cause the toy to behaviour in an unexpected manner. See http://forums.secondlife.com/showthread.php?t=235229 for an example of what can happen when less experienced scripters inadvertantly get the comparison incorrect.
- Use 'states' for various functionality
- Rationalise messages with a view to memory saving
- Create an 'Install and Configuation Wizard' (probably as part of v6.0)
- 5.4.2 SE dated 20/01/2008
- Integrates into the 'Particle Text Generator' to produce a vertical particle stream displaying the AV's first name. Therefore, randomly selected AV "Joe Smith" has his profile picture displayed on the prim and displayed as a banner above the prim but also the letters "J", "O", "E", " " flow out vertically. Code not yet released publically.
- 5.4.1 dated 19/01/2008
- 'ApplyRotation' set to "FALSE" by default
- 5.4 dated 12/01/2008
- User can only remove their name from the 'Exclude List' if they put it on the list themself. They cannot remove their name if it was placed on the 'Exclude List' by the Owner
- When Owner requests a list of the names on the 'Exclude List', it differentiates between those names placed on it by the Owner and those entered by the users themselves
- Owner can configure the maximum number of entries that the 'Exclude List' will hold at any one time
- Code optimisations
- 5.3.1 Not released
- Ability to control floating text message above the prim
- Ability to give prim a slow rotation
- Ability set the Shine value of the prim if a profile picture is not being applied to it as a texture
- Add llOwnerSay() link to 'Help' page on rez
- Re-order functions more logically but keep GiveShoutOut() at the top
- Code optimisations
- 5.3 dated 11/01/2008:
- Dialog control for Owner
- Add dedicated 'OwnerChannel' for Owner communications
- Owner can 'OpenListen' on a defined listen channel
- Owner can add to 'Exclude List'
- Owner can remove from 'Exclude List'
- Owner can view a list of all entries on the 'Exclude List'
- Owner can clear the 'Exclude List' entirely
- Owner can 'CloseListen'
- Owner can 'LearnMore'
- Owner can 'GetScript'
- Link to 'Help' page added for all users
- Floating text added
- Rationalise comments and some parameter names
- Rationalise ListenRemoves
- Rationalise Startup() procedure
- 5.2 dated 10/01/2008: Code optimisation suggested by Void Singer. "change KillJoyListing = KillJoyListing + llKey2Name(DetectedUser); to KillJoyListing = (list)llKey2Name(DetectedUser) + llList2List( KillJoyListing, 0, 48 );"
- 5.1 dated 10/01/2008: Dialog box presented to user gives options to:
- 'LearnMore' ~ provides link to SL forum thread http://forums.secondlife.com/showthread.php?t=225692
- 'GetScript' ~ provides link to http://wiki.secondlife.com/wiki/User:Debbie_Trilling
- 'ExcludeMe' ~ adds the user to the 'Exclude List'
- 'IncludeMe' ~ removes the user from the 'Exclude List'
- 5.0 dated 05/01/2008:
- Ability to project the profile picture and/or apply the profile picture as a texture to the prim
- Ability for the user to set texture, colour, full bright and alpha preferences to the prim when it is turned OFF or if not texturing the prim with the profile picture
- 4.0 dated 05/01/2008:
- Accomodates a random choice of different default textures
- Code optimisation
- 3.3 dated 05/01/2008: If an AV is selected two times in a row, rather than displaying their profile picture again, display the default texture
- 3.2 dated 03/01/2008: When no one is detected within range, and the toy is not set to shutdown, project the default texture rather than continuing to display the last randomly selected profile picture
- 3.1 dated 20/12/2007: Correction to how the 8:5 format is handled
- 3.0 dated 14/12/2007:
- Displays image in 8:5 format which seems to suit most profile pictures better
- Automatically names the prim that the script is in, to avoid 'ShoutOuts' being prefixed with 'Object:'
- More effcient communications with Owner
- Product information for Owner
- Delivers URL to SL forum thread http://forums.secondlife.com/showthread.php?t=225692
- 2.0 dated 26/11/2007:
- Handling for when selected AV does not have a profile picture
- Function GiveShoutOut() added in such a way as to allow future easy development for gift-giving etc from 'Contents'
- Ability to set own default texture for display
- Ability to give a 'shout out' in the name of the person
- Ability to set what the 'shout out' text will be
- Ability to set how long the toy will operate before it switches itself off if no AV's are detected. Also ability to disable auto-off function
- Ability to project the default texture when the toy is switched off
- 1.0 dated 25/11/2007: Initial release
Innovative Variations
A modification of v5 is available as a large-size 'Welcome Board'.
As well as allowing multiple default textures for promotion purposes, when an AV is selected, it will display their profile picture on the Big Board and 'ShoutOut' a welcome. Not only that, it will then target that AV with a lil cute particle stream of their profile picture. Great fun; very effective.
A 'Free to Copy', full perms 'Welcome Board' modification of version 5 can be obtained from "SploLand - the Museum of Science, Art and Human Imperfection" at:
http://slurl.com/secondlife/SploLand/181/76/24/
While there, you could also pick up a 'Free to Copy' version of the Flag & Pole which uses the same core code.
v5.4.2 SE: produces a vertical particle stream of the randomly selected AV's first name.
Usage Caveats
Free to use and modify as you wish but under the condition that the title and introduction remain in place, and that due credit continues to be given to Moriash Moreau, Jana Kamachi and Solar Alter, and Debbie Trilling.