<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Elendreal+Halasy</id>
	<title>Second Life Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Elendreal+Halasy"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Elendreal_Halasy"/>
	<updated>2026-07-27T14:24:18Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Object_rez&amp;diff=1173602</id>
		<title>Object rez</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Object_rez&amp;diff=1173602"/>
		<updated>2012-10-17T02:06:26Z</updated>

		<summary type="html">&lt;p&gt;Elendreal Halasy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Event|event_id=28|event_delay|event=object_rez&lt;br /&gt;
|p1_type=key|p1_name=id|p1_desc=[[UUID]] of object rezzed.&lt;br /&gt;
|event_desc=Triggered when the object rezzes an object.&lt;br /&gt;
|constants&lt;br /&gt;
|spec&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
//gives inventory to object when it rezzes.&lt;br /&gt;
string inventory;&lt;br /&gt;
string object;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer count)&lt;br /&gt;
    {&lt;br /&gt;
        object=llGetInventoryName(INVENTORY_OBJECT,0);  //get name of the 1st object in inventory&lt;br /&gt;
        llRezObject(object, llGetPos() + &amp;lt;0.0, 0.0, 0.5&amp;gt;, ZERO_VECTOR, ZERO_ROTATION, 0);  //rez the 1st object&lt;br /&gt;
    }&lt;br /&gt;
    object_rez(key id)&lt;br /&gt;
    {&lt;br /&gt;
        inventory=llGetInventoryName(INVENTORY_OBJECT,1);  //get name of the 2nd object in inventory&lt;br /&gt;
        llGiveInventory(id,inventory);  //give 2nd object to 1st object when rezzed&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_header&lt;br /&gt;
|also_events=&lt;br /&gt;
{{LSL DefineRow||[[on_rez]]|Triggered when the object the script is in is rezzed}}&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llRezObject]]|Used to rez an object at the center of mass}}&lt;br /&gt;
{{LSL DefineRow||[[llRezAtRoot]]|Used to rez an object at the root}}&lt;br /&gt;
|also_articles&lt;br /&gt;
|also_footer&lt;br /&gt;
|notes&lt;br /&gt;
|mode&lt;br /&gt;
|cat1=Rez&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Elendreal Halasy</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Object_rez&amp;diff=1173601</id>
		<title>Object rez</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Object_rez&amp;diff=1173601"/>
		<updated>2012-10-17T02:02:16Z</updated>

		<summary type="html">&lt;p&gt;Elendreal Halasy: No present issues with function at this time.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;lsl&amp;gt;&lt;br /&gt;
//gives inventory to object when it rezzes.&lt;br /&gt;
string inventory;&lt;br /&gt;
string object;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer count)&lt;br /&gt;
    {&lt;br /&gt;
        object=llGetInventoryName(INVENTORY_OBJECT,0);  //get name of the 1st object in inventory&lt;br /&gt;
        llRezObject(object, llGetPos() + &amp;lt;0.0, 0.0, 0.5&amp;gt;, ZERO_VECTOR, ZERO_ROTATION, 0);  //rez the 1st object&lt;br /&gt;
    }&lt;br /&gt;
    object_rez(key id)&lt;br /&gt;
    {&lt;br /&gt;
        inventory=llGetInventoryName(INVENTORY_OBJECT,1);  //get name of the 2nd object in inventory&lt;br /&gt;
        llGiveInventory(id,inventory);  //give 2nd object to 1st object when rezzed&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_header&lt;br /&gt;
|also_events=&lt;br /&gt;
{{LSL DefineRow||[[on_rez]]|Triggered when the object the script is in is rezzed}}&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llRezObject]]|Used to rez an object at the center of mass}}&lt;br /&gt;
{{LSL DefineRow||[[llRezAtRoot]]|Used to rez an object at the root}}&lt;br /&gt;
|also_articles&lt;br /&gt;
|also_footer&lt;br /&gt;
|notes&lt;br /&gt;
|mode&lt;br /&gt;
|cat1=Rez&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Elendreal Halasy</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Object_rez&amp;diff=1173600</id>
		<title>Object rez</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Object_rez&amp;diff=1173600"/>
		<updated>2012-10-17T02:01:33Z</updated>

		<summary type="html">&lt;p&gt;Elendreal Halasy: Issues resolved, second was linked to first which has since been closed.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Event|event_id=28|event_delay|event=object_rez&lt;br /&gt;
|p1_type=key|p1_name=id|p1_desc=[[UUID]] of object rezzed.&lt;br /&gt;
|event_desc=Triggered when the object rezzes an object.&lt;br /&gt;
|constants&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=&lt;br /&gt;
* Triggers in all running scripts with an [[object_rez]] event, AND in the same &#039;&#039;&#039;prim&#039;&#039;&#039; as the script calling [[llRezObject]] or [[llRezAtRoot]].&lt;br /&gt;
** Does NOT trigger in linked prims.&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
//gives inventory to object when it rezzes.&lt;br /&gt;
string inventory;&lt;br /&gt;
string object;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer count)&lt;br /&gt;
    {&lt;br /&gt;
        object=llGetInventoryName(INVENTORY_OBJECT,0);  //get name of the 1st object in inventory&lt;br /&gt;
        llRezObject(object, llGetPos() + &amp;lt;0.0, 0.0, 0.5&amp;gt;, ZERO_VECTOR, ZERO_ROTATION, 0);  //rez the 1st object&lt;br /&gt;
    }&lt;br /&gt;
    object_rez(key id)&lt;br /&gt;
    {&lt;br /&gt;
        inventory=llGetInventoryName(INVENTORY_OBJECT,1);  //get name of the 2nd object in inventory&lt;br /&gt;
        llGiveInventory(id,inventory);  //give 2nd object to 1st object when rezzed&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_header&lt;br /&gt;
|also_events=&lt;br /&gt;
{{LSL DefineRow||[[on_rez]]|Triggered when the object the script is in is rezzed}}&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llRezObject]]|Used to rez an object at the center of mass}}&lt;br /&gt;
{{LSL DefineRow||[[llRezAtRoot]]|Used to rez an object at the root}}&lt;br /&gt;
|also_articles&lt;br /&gt;
|also_footer&lt;br /&gt;
|notes&lt;br /&gt;
|mode&lt;br /&gt;
|cat1=Rez&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Elendreal Halasy</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Elendreal_Halasy&amp;diff=1173599</id>
		<title>User:Elendreal Halasy</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Elendreal_Halasy&amp;diff=1173599"/>
		<updated>2012-10-17T01:52:34Z</updated>

		<summary type="html">&lt;p&gt;Elendreal Halasy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I currently run two sims Betelgeuse and Dangerfield. I also script, and will do so for you if you ask nicely. If you ask really nicely I may even build a web application for you that interfaces with Second Life content.&lt;br /&gt;
&lt;br /&gt;
If you are interested in any of my services please contact my in Second Life. My profile can be found [https://my.secondlife.com/elendreal.halasy (here)].&lt;/div&gt;</summary>
		<author><name>Elendreal Halasy</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Elendreal_Halasy&amp;diff=1173598</id>
		<title>User:Elendreal Halasy</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Elendreal_Halasy&amp;diff=1173598"/>
		<updated>2012-10-17T01:51:42Z</updated>

		<summary type="html">&lt;p&gt;Elendreal Halasy: Created page with &amp;quot;I currently run two sims Betelgeuse and Dangerfield.  If you are interested please contact my in Second Life. My Second Life profile can be found [https://my.secondlife.com/elend…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I currently run two sims Betelgeuse and Dangerfield.&lt;br /&gt;
&lt;br /&gt;
If you are interested please contact my in Second Life. My Second Life profile can be found [https://my.secondlife.com/elendreal.halasy (here)].&lt;/div&gt;</summary>
		<author><name>Elendreal Halasy</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Get_Profile_Picture&amp;diff=1173597</id>
		<title>Get Profile Picture</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Get_Profile_Picture&amp;diff=1173597"/>
		<updated>2012-10-17T01:44:20Z</updated>

		<summary type="html">&lt;p&gt;Elendreal Halasy: Removed my.secondlife.com edit -- Jira article from over a year ago, assumed project abandoned. Re-post notice if resumed.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}}&lt;br /&gt;
Get Profile Picture by Valentine Foxdale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Snippets and HTTPRequest bits were taken from:&lt;br /&gt;
//~ RANDOM PROFILE PROJECTOR v5.4.5 by Debbie Trilling ~&lt;br /&gt;
 &lt;br /&gt;
// Get Profile Picture by Valentine Foxdale&lt;br /&gt;
// optmisation by SignpostMarv Martin&lt;br /&gt;
// workaround for WEB-1384 by Viktoria Dovgal:&lt;br /&gt;
//  try meta tag instead of img first, try img as backup in case meta breaks&lt;br /&gt;
list sides;&lt;br /&gt;
list deftextures;&lt;br /&gt;
&lt;br /&gt;
string profile_key_prefix = &amp;quot;&amp;lt;meta name=\&amp;quot;imageid\&amp;quot; content=\&amp;quot;&amp;quot;;&lt;br /&gt;
string profile_img_prefix = &amp;quot;&amp;lt;img alt=\&amp;quot;profile image\&amp;quot; src=\&amp;quot;http://secondlife.com/app/image/&amp;quot;;&lt;br /&gt;
integer profile_key_prefix_length; // calculated from profile_key_prefix in state_entry()&lt;br /&gt;
integer profile_img_prefix_length; // calculated from profile_key_prefix in state_entry()&lt;br /&gt;
&lt;br /&gt;
GetProfilePic(key id) //Run the HTTP Request then set the texture&lt;br /&gt;
{&lt;br /&gt;
    //key id=llDetectedKey(0); This breaks the function, better off not used&lt;br /&gt;
    string URL_RESIDENT = &amp;quot;http://world.secondlife.com/resident/&amp;quot;;&lt;br /&gt;
    llHTTPRequest( URL_RESIDENT + (string)id,[HTTP_METHOD,&amp;quot;GET&amp;quot;],&amp;quot;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
GetDefaultTextures() //Get the default textures from each side&lt;br /&gt;
{&lt;br /&gt;
    integer    i;&lt;br /&gt;
    integer    faces = llGetNumberOfSides();&lt;br /&gt;
    for (i = 0; i &amp;lt; faces; i++)&lt;br /&gt;
    {&lt;br /&gt;
        sides+=i;&lt;br /&gt;
        deftextures+=llGetTexture(i);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
SetDefaultTextures() //Set the sides to their default textures&lt;br /&gt;
{&lt;br /&gt;
    integer    i;&lt;br /&gt;
    integer    faces;&lt;br /&gt;
    faces = llGetNumberOfSides();&lt;br /&gt;
    for (i = 0; i &amp;lt; faces; i++)&lt;br /&gt;
    {&lt;br /&gt;
        llSetTexture(llList2String(deftextures,i),i);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        profile_key_prefix_length = llStringLength(profile_key_prefix);&lt;br /&gt;
        profile_img_prefix_length = llStringLength(profile_img_prefix);&lt;br /&gt;
        llSetText(&amp;quot;Touch for this object to display your profile picture!&amp;quot;,&amp;lt;0.8,0,1&amp;gt;,1); &lt;br /&gt;
        //Note: Usage of another person&#039;s profile picture without their permission may be viewed as copyright infringement. &lt;br /&gt;
        GetDefaultTextures();&lt;br /&gt;
    }&lt;br /&gt;
    touch_start(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        GetProfilePic(llDetectedKey(0));&lt;br /&gt;
    }&lt;br /&gt;
    http_response(key req,integer stat, list met, string body)&lt;br /&gt;
    {&lt;br /&gt;
        integer s1 = llSubStringIndex(body, profile_key_prefix);&lt;br /&gt;
        integer s1l = profile_key_prefix_length;&lt;br /&gt;
        if(s1 == -1)&lt;br /&gt;
        { // second try&lt;br /&gt;
            s1 = llSubStringIndex(body, profile_img_prefix);&lt;br /&gt;
            s1l = profile_img_prefix_length;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if(s1 == -1)&lt;br /&gt;
        { // still no match?&lt;br /&gt;
            SetDefaultTextures();&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            s1 += s1l;&lt;br /&gt;
            key UUID=llGetSubString(body, s1, s1 + 35);&lt;br /&gt;
            if (UUID == NULL_KEY) {&lt;br /&gt;
                SetDefaultTextures();&lt;br /&gt;
            }&lt;br /&gt;
            else {&lt;br /&gt;
                llSetTexture(UUID,ALL_SIDES);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elendreal Halasy</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=SL_Cert_-_Intermediate_Scripting&amp;diff=675322</id>
		<title>SL Cert - Intermediate Scripting</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=SL_Cert_-_Intermediate_Scripting&amp;diff=675322"/>
		<updated>2009-11-30T09:32:05Z</updated>

		<summary type="html">&lt;p&gt;Elendreal Halasy: /* Prerequisites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SLCert Navbox}}&lt;br /&gt;
[[Category:Certification]]&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Criteria required for persons to become certified in intermediate scripting.&lt;br /&gt;
&lt;br /&gt;
==Audience==&lt;br /&gt;
&lt;br /&gt;
Persons who wish to demonstrate competence in intermediate LSL scripting.&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
&lt;br /&gt;
Applicant must hold basic scripting certification.&lt;br /&gt;
&lt;br /&gt;
(Recommended) An application should have a basic understanding of algebraic functions.&lt;br /&gt;
&lt;br /&gt;
==Criteria for testing to intermediate level==&lt;br /&gt;
&lt;br /&gt;
Scripting includes a wide variety of categories. At the intermediate level the different categories are broken out separately. The different categories are given below with the associated topics. Note that there is some overlap between categories. This is because the different topics can not be easily divided and are related. Some topics may be necessary for multiple categories and are listed multiple times to avoid prerequisite clashes between categories. &lt;br /&gt;
&lt;br /&gt;
=== Primitives, Objects   ===&lt;br /&gt;
&lt;br /&gt;
The different ways scripts can manipulate an object is included in this category. It does not include the ways to interact between objects and agents. The interaction categories are included in the detection and communications categories.&lt;br /&gt;
&lt;br /&gt;
* Faces&lt;br /&gt;
# Each face on a prim has a number associated with it. &lt;br /&gt;
# The number varies by prim type and can vary depending if the prim has a &amp;quot;cut.&amp;quot; &lt;br /&gt;
# It is not necessary to memorize all of the face numbers for every prim. It is necessary to know how to find the information and understand how the convention depends on whether or not a prim is cut.&lt;br /&gt;
&lt;br /&gt;
* Changing color&lt;br /&gt;
# Commands for changing the color &lt;br /&gt;
# RGB definition of a color vector in LSL and how it is different from the editor window.&lt;br /&gt;
# Know how to convert back and forth between an RGB color vector in LSL and the format found in the editor window.&lt;br /&gt;
# Know how to identify when a color is changed using the changed event and the predefined constant CHANGED_COLOR.&lt;br /&gt;
&lt;br /&gt;
* Changing alpha(transparency)&lt;br /&gt;
# Commands for changing the alpha level&lt;br /&gt;
# Difference between changing alpha level and the two different transparant textures, TEXTURE_TRANSPARENT and  e97cf410-8e61-7005-ec06-629eba4cd1fb (invisiprim).&lt;br /&gt;
# Know how to identify when an alpha level is changed using the changed event and the predefined constant CHANGED_COLOR.&lt;br /&gt;
&lt;br /&gt;
* Changing textures&lt;br /&gt;
# Commands for changing the textures&lt;br /&gt;
# Predefined constants for UUIDs of textures&lt;br /&gt;
# Know the difference between the constants TEXTURE_TRANSPARENT, TEXTURE_BLANK, TEXTURE_MEDIA, and TEXTURE_PLYWOOD.&lt;br /&gt;
# Know how to identify when a texture is changed using the changed event and the predefined constant CHANGED_TEXTURE.&lt;br /&gt;
&lt;br /&gt;
* Particles &lt;br /&gt;
# Command to create particles&lt;br /&gt;
# basic limitation of particles&lt;br /&gt;
# basic understanding on how to turn particles on and turn.&lt;br /&gt;
&lt;br /&gt;
* Link commands and options&lt;br /&gt;
# Commands to determine the UUID, link number, total number of prims etc. for prims within the current object.&lt;br /&gt;
&lt;br /&gt;
* Text and pie menu text&lt;br /&gt;
# Commands to change the text over a prim.&lt;br /&gt;
# Commands to change the text for different options in the pie menu.&lt;br /&gt;
&lt;br /&gt;
* Primitive name and description&lt;br /&gt;
# Commands to get the name and description of a prim.&lt;br /&gt;
# Commands to change the name and description of a prim.&lt;br /&gt;
&lt;br /&gt;
* Dataserver events&lt;br /&gt;
# Basic understanding of the data server event.&lt;br /&gt;
# Basic understanding of the different kinds of information that can be obtained using the Dataserver event.&lt;br /&gt;
&lt;br /&gt;
* Obtaining object information&lt;br /&gt;
# Getting agent information (llRequestAgentData)&lt;br /&gt;
# Getting object information (llGetObjectDetails)&lt;br /&gt;
&lt;br /&gt;
* Sound&lt;br /&gt;
# Commands to preload sound files.&lt;br /&gt;
# Commands to play sounds.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that for many of these items there are a large number of commands asociated with the topic. For example, just to change the color of a prim the following commands can be used: llSetColor, llSetLinkColor, llGetColor, llSetPrimitiveParams, llGetPrimitiveParams, llSetLinkPrimitiveParams. It is adequate for a person to just know how to use llSetPrimitiveParams and llSetLinkPrimitiveParams to change the color of a prim, but the person should know the other commands in case they are asked to adapt another person&#039;s code.&lt;br /&gt;
&lt;br /&gt;
=== Avatars and Agents === &lt;br /&gt;
&lt;br /&gt;
* Sit positions and associated functions&lt;br /&gt;
# Setting the position and rotation of a sit position.&lt;br /&gt;
# Turning off a sit position after it has been set.&lt;br /&gt;
# Know how to set the camera orientation for a sitting avatar.&lt;br /&gt;
&lt;br /&gt;
* Permissions&lt;br /&gt;
# Basic understanding of the permissions system. &lt;br /&gt;
# Basic understanding of the different types of permissions that may be obtained.&lt;br /&gt;
# Know how to obtain permissions and basic understanding when it is required.&lt;br /&gt;
&lt;br /&gt;
* Animations&lt;br /&gt;
# Know how to set a the animation of a person sitting on a prim.&lt;br /&gt;
# Know how to obtain permission before setting the animation.&lt;br /&gt;
# Know how to remove an active animation.&lt;br /&gt;
&lt;br /&gt;
* Camera Controls &lt;br /&gt;
# Know how to obtain permission to change the camera orientation.&lt;br /&gt;
# Know the basic ways to change the camera. (Static positioning)&lt;br /&gt;
&lt;br /&gt;
* Dataserver&lt;br /&gt;
# Know the commands that can be used to obtain information about an agent.&lt;br /&gt;
# Know how to obtain agent and avatar information via the data server event.&lt;br /&gt;
&lt;br /&gt;
A person should know the basic ways to manipulate and change an avatar. The person should be able to set and clear sit positions on a prim. The person should be able to set the default camera position for an agent once their avatar is sitting on a prim. The person should know how to find the UUID and link number of an avatar when an agent sits on an object.&lt;br /&gt;
&lt;br /&gt;
A person should demonstrate the basic use of the permission system. This includes the different types of permissions. Also, the person should know under what circumstances the agent is given a dialog to obtain permissions and when the dialog is not provided to the agent. The different permissions are not limited to just animations but include all permissions.&lt;br /&gt;
&lt;br /&gt;
The person should demonstrate a basic understanding of how to change a camera. The person is required to be able to move a camera to look at a specific point but not necessarily calculate specific rotations for a given view. The person  should be able to obtain permission to change a camera and know how to change it.&lt;br /&gt;
&lt;br /&gt;
The person should be able to identify all of the options available for the data server event and find a given piece of information. The person should be able to manipulate the information and identify what the information is and any limitations. For example, a query to determine if an agent is online will only determine if the agent is online and has provided permission for the owner of the script to determine if the agent is online.&lt;br /&gt;
&lt;br /&gt;
=== Inventory and Simulator Information ===&lt;br /&gt;
&lt;br /&gt;
* Notecards&lt;br /&gt;
# Get the number of lines in a note card.&lt;br /&gt;
# Step through and get each line in a note card.&lt;br /&gt;
# Know how to stop reading a note card by testing for the EOF constant.&lt;br /&gt;
&lt;br /&gt;
* Detect when the inventory has changed.&lt;br /&gt;
* Inventory information&lt;br /&gt;
# Get the name of the creator for an object.&lt;br /&gt;
# Inventory numbering system.&lt;br /&gt;
# Inventory types.&lt;br /&gt;
# Inventory Permissions.&lt;br /&gt;
&lt;br /&gt;
* Basic use of the llRequestSimulatorData command.&lt;br /&gt;
&lt;br /&gt;
A person seeking intermediate accreditation for the inventory and simulator information should be able to read the full contents of a note card and perform basic string manipulations to determine and react to the contents on a given line in the note card. The person should be able to read the full contents of the note card using both the number of lines in the card and using the EOF constant. &lt;br /&gt;
&lt;br /&gt;
The person should be able to use the changed event to determine when the inventory has been changed and react accordingly.&lt;br /&gt;
&lt;br /&gt;
The person should be able to get basic information about specific inventory items. The person should know how to search all items in the inventory and search all inventory items of a given type. This implies a basic understanding of how the inventory is numbered in relation to the different types. &lt;br /&gt;
&lt;br /&gt;
=== Intermediate I/0 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Chat commands&lt;br /&gt;
# Dialogs&lt;br /&gt;
# Limitations of chat commands&lt;br /&gt;
# Email&lt;br /&gt;
&lt;br /&gt;
* Text and menu&lt;br /&gt;
# Setting text over an object&lt;br /&gt;
# Commands to manipulate the pie menu&lt;br /&gt;
&lt;br /&gt;
* Link messages&lt;br /&gt;
# The link_message event.&lt;br /&gt;
# Sending link messages.&lt;br /&gt;
# Limiting link messages to specific prims within a build.&lt;br /&gt;
&lt;br /&gt;
* Basic security&lt;br /&gt;
# Relying on arcane channels is not secure.&lt;br /&gt;
# Methods to insure a message is coming from an agent/object.&lt;br /&gt;
# Basic validation using MD5 and SHA1 hashes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In addition to the basic chat commands and listen event defined in the basic level the person should now be able to perform more advanced interactions including the use of dialogs. Also the person should have a broader understanding of the limitations of chat commands and know how to use the options to share email messages between scripts.&lt;br /&gt;
&lt;br /&gt;
Also, the person should be able to change and manipulate the text over an object as well as remove the text over an object. The various commands to change the text in a pie menu should also be known. &lt;br /&gt;
&lt;br /&gt;
In addition to the chat and listening events the person should also know how to use link messages to communicate between scripts within an object. The person should know all of the options to communicate to specific prims or all of the prims in an object using link messages.&lt;br /&gt;
&lt;br /&gt;
Finally, the person should have a basic understanding of security issues and limitations. The person should be able to identify and check for specific agents as well as check and limit communications for ownership and group identities. &lt;br /&gt;
&lt;br /&gt;
Predefined channels (DEBUG_CHANNEL and PUBLIC_CHANNEL).&lt;br /&gt;
&lt;br /&gt;
=== Physics ===&lt;br /&gt;
&lt;br /&gt;
* Linear and Angular Force&lt;br /&gt;
# Commands for Force&lt;br /&gt;
# Know the difference between local and global settings.&lt;br /&gt;
# Know the difference between linear and angular forces.&lt;br /&gt;
* Linear and Angular Impulse&lt;br /&gt;
# Commands for Impulse&lt;br /&gt;
# Know the difference between local and global settings.&lt;br /&gt;
# Know the difference between linear and angular impulse.&lt;br /&gt;
* Vehicles&lt;br /&gt;
# Know the basic commands and settings to initiate a vehicle.&lt;br /&gt;
# Know the basic ideas behind the different options.&lt;br /&gt;
# Know the impact of changing the individual parameters.&lt;br /&gt;
&lt;br /&gt;
The person who wants to achieve an intermediate rating for physics should know all of the basic commands for both linear and angular force as well as momentum. The person should know the difference between the local and global settings. The person should know the difference between the the force/torque commands and the impulse commands.&lt;br /&gt;
&lt;br /&gt;
The person should know the relationship between force and impulse. Both are representations of Newton&#039;s Second Law where force is the differential form and impulse is the integral form. The person should understand the relationship between force, mass, and acceleration as well as the relationship between impulse and momentum.&lt;br /&gt;
&lt;br /&gt;
The very basic commands of scripting a vehicle should be known. At the intermediate level a person is not expected to be able to create a script for a vehicle but should understand the basic commands necessary for it&#039;s functionality and alter an existing vehicle script.&lt;br /&gt;
&lt;br /&gt;
=== Detection ===&lt;br /&gt;
&lt;br /&gt;
* Touch events.&lt;br /&gt;
# The three touch events.&lt;br /&gt;
# Functions to detect information about who has touched a prim.&lt;br /&gt;
# Passing touch information to other prims in a build.&lt;br /&gt;
&lt;br /&gt;
* Collision events&lt;br /&gt;
# The three collision events.&lt;br /&gt;
# Functions to detect information about what/who took part in the collision.&lt;br /&gt;
&lt;br /&gt;
* Land collision events&lt;br /&gt;
# The three land collision events.&lt;br /&gt;
# Functions to detect information about what/who took part in the land collision.&lt;br /&gt;
&lt;br /&gt;
* Sensors&lt;br /&gt;
# The  sensor commands.&lt;br /&gt;
# The two sensor related events.&lt;br /&gt;
# Limiting the scope of a sensor.&lt;br /&gt;
# Limitations of a sensor.&lt;br /&gt;
&lt;br /&gt;
A person who wishes to achieve an intermediate certification in detection should know the different events in which detection is relevant. The person should know how the different detection commands are used within the different events. The person should know be able to construct scripts that make use of the events and detection routines and combine them. &lt;br /&gt;
&lt;br /&gt;
Additionally a person should be able to use sensors to detect a person. The person should know the difference between a repeating and one time sensor. The person should know how to construct scripts that make use of the sensor and no_sensor events. The person should know the limitations of the commands and understand the importance and how to narrowly define a sensor.&lt;br /&gt;
&lt;br /&gt;
=== Programming and Software Development ===&lt;br /&gt;
&lt;br /&gt;
* More advanced use of lists.&lt;br /&gt;
# Adding to a list.&lt;br /&gt;
# Removing part of a list.&lt;br /&gt;
# Inserting into a list.&lt;br /&gt;
# Replacing part of a list.&lt;br /&gt;
# Finding an item in a list.&lt;br /&gt;
* More advanced string functions.&lt;br /&gt;
# Removing a substring.&lt;br /&gt;
# Replacing a substring.&lt;br /&gt;
# Inserting a substring.&lt;br /&gt;
# Finding a substring.&lt;br /&gt;
* More advanced revision systems.&lt;br /&gt;
# Basic understanding and use of at least on revision control system. (ex: RCS, subversion, or git)&lt;br /&gt;
# Be able to maintain revisions and find particular revisions using at least one revision control system.&lt;br /&gt;
* Workflow&lt;br /&gt;
# Demonstrate effective interactions with clients and remain flexible through the entire development cycle.&lt;br /&gt;
# Be able to establish a basic plan for the creation of a script that must accomplish multiple task.&lt;br /&gt;
# Be able to adapt the plan as the requirements change.&lt;br /&gt;
# Be able to provide effective mock-ups and trial programs for clients.&lt;br /&gt;
&lt;br /&gt;
At the intermediate level the Programming and Software Development category includes greater in depth knowledge of the basic LSL commands. At this level the person should know how to use all of the flow commands and construct a wide variety of scripts that require all of the flow commands.&lt;br /&gt;
&lt;br /&gt;
In addition, the person should know and understand how to use all of the list commands. A person should be able to manipulate lists. For example, a person should be able to delete and insert sublists into an existing list. The person should be able to use strided list and know how to sort and randomize a list.  The person should also have a basic understanding of the memory overhead associated with a list.&lt;br /&gt;
&lt;br /&gt;
The person should also know and understand all of the string manipulation routines. The person should be able to manipulate strings. For example, a person should be able to delete and insert substrings into an existing string. The person should have a basic understanding of the memory overhead associated with strings.&lt;br /&gt;
&lt;br /&gt;
The person should be able to make use of at least one revision control system. The person should be able to maintain revisions and recall specific revisions. At this level a person does not need to know know how to find differences in revisions or be able to create and maintain a branch and merge the branch into an existing code base.&lt;br /&gt;
&lt;br /&gt;
Finally, a person should understand how to create a broad, flexible plan to create and maintain a software project. The person should understand how the importance of creating a plan and developing an approach to a project before any coding is to begin. The person should understand the importance of flexibility and the importance of long term planning and how it relates to the code base.&lt;/div&gt;</summary>
		<author><name>Elendreal Halasy</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=SL_Cert_-_Intermediate_Scripting&amp;diff=675312</id>
		<title>SL Cert - Intermediate Scripting</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=SL_Cert_-_Intermediate_Scripting&amp;diff=675312"/>
		<updated>2009-11-30T09:31:36Z</updated>

		<summary type="html">&lt;p&gt;Elendreal Halasy: Minor change to include a recommendation that the user should have a basic understanding of algebraic functions. Especially in regards to physics.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SLCert Navbox}}&lt;br /&gt;
[[Category:Certification]]&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Criteria required for persons to become certified in intermediate scripting.&lt;br /&gt;
&lt;br /&gt;
==Audience==&lt;br /&gt;
&lt;br /&gt;
Persons who wish to demonstrate competence in intermediate LSL scripting.&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
&lt;br /&gt;
Applicant must hold basic scripting certification.&lt;br /&gt;
(Recommended) An application should have a basic understanding of algebraic functions.&lt;br /&gt;
&lt;br /&gt;
==Criteria for testing to intermediate level==&lt;br /&gt;
&lt;br /&gt;
Scripting includes a wide variety of categories. At the intermediate level the different categories are broken out separately. The different categories are given below with the associated topics. Note that there is some overlap between categories. This is because the different topics can not be easily divided and are related. Some topics may be necessary for multiple categories and are listed multiple times to avoid prerequisite clashes between categories. &lt;br /&gt;
&lt;br /&gt;
=== Primitives, Objects   ===&lt;br /&gt;
&lt;br /&gt;
The different ways scripts can manipulate an object is included in this category. It does not include the ways to interact between objects and agents. The interaction categories are included in the detection and communications categories.&lt;br /&gt;
&lt;br /&gt;
* Faces&lt;br /&gt;
# Each face on a prim has a number associated with it. &lt;br /&gt;
# The number varies by prim type and can vary depending if the prim has a &amp;quot;cut.&amp;quot; &lt;br /&gt;
# It is not necessary to memorize all of the face numbers for every prim. It is necessary to know how to find the information and understand how the convention depends on whether or not a prim is cut.&lt;br /&gt;
&lt;br /&gt;
* Changing color&lt;br /&gt;
# Commands for changing the color &lt;br /&gt;
# RGB definition of a color vector in LSL and how it is different from the editor window.&lt;br /&gt;
# Know how to convert back and forth between an RGB color vector in LSL and the format found in the editor window.&lt;br /&gt;
# Know how to identify when a color is changed using the changed event and the predefined constant CHANGED_COLOR.&lt;br /&gt;
&lt;br /&gt;
* Changing alpha(transparency)&lt;br /&gt;
# Commands for changing the alpha level&lt;br /&gt;
# Difference between changing alpha level and the two different transparant textures, TEXTURE_TRANSPARENT and  e97cf410-8e61-7005-ec06-629eba4cd1fb (invisiprim).&lt;br /&gt;
# Know how to identify when an alpha level is changed using the changed event and the predefined constant CHANGED_COLOR.&lt;br /&gt;
&lt;br /&gt;
* Changing textures&lt;br /&gt;
# Commands for changing the textures&lt;br /&gt;
# Predefined constants for UUIDs of textures&lt;br /&gt;
# Know the difference between the constants TEXTURE_TRANSPARENT, TEXTURE_BLANK, TEXTURE_MEDIA, and TEXTURE_PLYWOOD.&lt;br /&gt;
# Know how to identify when a texture is changed using the changed event and the predefined constant CHANGED_TEXTURE.&lt;br /&gt;
&lt;br /&gt;
* Particles &lt;br /&gt;
# Command to create particles&lt;br /&gt;
# basic limitation of particles&lt;br /&gt;
# basic understanding on how to turn particles on and turn.&lt;br /&gt;
&lt;br /&gt;
* Link commands and options&lt;br /&gt;
# Commands to determine the UUID, link number, total number of prims etc. for prims within the current object.&lt;br /&gt;
&lt;br /&gt;
* Text and pie menu text&lt;br /&gt;
# Commands to change the text over a prim.&lt;br /&gt;
# Commands to change the text for different options in the pie menu.&lt;br /&gt;
&lt;br /&gt;
* Primitive name and description&lt;br /&gt;
# Commands to get the name and description of a prim.&lt;br /&gt;
# Commands to change the name and description of a prim.&lt;br /&gt;
&lt;br /&gt;
* Dataserver events&lt;br /&gt;
# Basic understanding of the data server event.&lt;br /&gt;
# Basic understanding of the different kinds of information that can be obtained using the Dataserver event.&lt;br /&gt;
&lt;br /&gt;
* Obtaining object information&lt;br /&gt;
# Getting agent information (llRequestAgentData)&lt;br /&gt;
# Getting object information (llGetObjectDetails)&lt;br /&gt;
&lt;br /&gt;
* Sound&lt;br /&gt;
# Commands to preload sound files.&lt;br /&gt;
# Commands to play sounds.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that for many of these items there are a large number of commands asociated with the topic. For example, just to change the color of a prim the following commands can be used: llSetColor, llSetLinkColor, llGetColor, llSetPrimitiveParams, llGetPrimitiveParams, llSetLinkPrimitiveParams. It is adequate for a person to just know how to use llSetPrimitiveParams and llSetLinkPrimitiveParams to change the color of a prim, but the person should know the other commands in case they are asked to adapt another person&#039;s code.&lt;br /&gt;
&lt;br /&gt;
=== Avatars and Agents === &lt;br /&gt;
&lt;br /&gt;
* Sit positions and associated functions&lt;br /&gt;
# Setting the position and rotation of a sit position.&lt;br /&gt;
# Turning off a sit position after it has been set.&lt;br /&gt;
# Know how to set the camera orientation for a sitting avatar.&lt;br /&gt;
&lt;br /&gt;
* Permissions&lt;br /&gt;
# Basic understanding of the permissions system. &lt;br /&gt;
# Basic understanding of the different types of permissions that may be obtained.&lt;br /&gt;
# Know how to obtain permissions and basic understanding when it is required.&lt;br /&gt;
&lt;br /&gt;
* Animations&lt;br /&gt;
# Know how to set a the animation of a person sitting on a prim.&lt;br /&gt;
# Know how to obtain permission before setting the animation.&lt;br /&gt;
# Know how to remove an active animation.&lt;br /&gt;
&lt;br /&gt;
* Camera Controls &lt;br /&gt;
# Know how to obtain permission to change the camera orientation.&lt;br /&gt;
# Know the basic ways to change the camera. (Static positioning)&lt;br /&gt;
&lt;br /&gt;
* Dataserver&lt;br /&gt;
# Know the commands that can be used to obtain information about an agent.&lt;br /&gt;
# Know how to obtain agent and avatar information via the data server event.&lt;br /&gt;
&lt;br /&gt;
A person should know the basic ways to manipulate and change an avatar. The person should be able to set and clear sit positions on a prim. The person should be able to set the default camera position for an agent once their avatar is sitting on a prim. The person should know how to find the UUID and link number of an avatar when an agent sits on an object.&lt;br /&gt;
&lt;br /&gt;
A person should demonstrate the basic use of the permission system. This includes the different types of permissions. Also, the person should know under what circumstances the agent is given a dialog to obtain permissions and when the dialog is not provided to the agent. The different permissions are not limited to just animations but include all permissions.&lt;br /&gt;
&lt;br /&gt;
The person should demonstrate a basic understanding of how to change a camera. The person is required to be able to move a camera to look at a specific point but not necessarily calculate specific rotations for a given view. The person  should be able to obtain permission to change a camera and know how to change it.&lt;br /&gt;
&lt;br /&gt;
The person should be able to identify all of the options available for the data server event and find a given piece of information. The person should be able to manipulate the information and identify what the information is and any limitations. For example, a query to determine if an agent is online will only determine if the agent is online and has provided permission for the owner of the script to determine if the agent is online.&lt;br /&gt;
&lt;br /&gt;
=== Inventory and Simulator Information ===&lt;br /&gt;
&lt;br /&gt;
* Notecards&lt;br /&gt;
# Get the number of lines in a note card.&lt;br /&gt;
# Step through and get each line in a note card.&lt;br /&gt;
# Know how to stop reading a note card by testing for the EOF constant.&lt;br /&gt;
&lt;br /&gt;
* Detect when the inventory has changed.&lt;br /&gt;
* Inventory information&lt;br /&gt;
# Get the name of the creator for an object.&lt;br /&gt;
# Inventory numbering system.&lt;br /&gt;
# Inventory types.&lt;br /&gt;
# Inventory Permissions.&lt;br /&gt;
&lt;br /&gt;
* Basic use of the llRequestSimulatorData command.&lt;br /&gt;
&lt;br /&gt;
A person seeking intermediate accreditation for the inventory and simulator information should be able to read the full contents of a note card and perform basic string manipulations to determine and react to the contents on a given line in the note card. The person should be able to read the full contents of the note card using both the number of lines in the card and using the EOF constant. &lt;br /&gt;
&lt;br /&gt;
The person should be able to use the changed event to determine when the inventory has been changed and react accordingly.&lt;br /&gt;
&lt;br /&gt;
The person should be able to get basic information about specific inventory items. The person should know how to search all items in the inventory and search all inventory items of a given type. This implies a basic understanding of how the inventory is numbered in relation to the different types. &lt;br /&gt;
&lt;br /&gt;
=== Intermediate I/0 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Chat commands&lt;br /&gt;
# Dialogs&lt;br /&gt;
# Limitations of chat commands&lt;br /&gt;
# Email&lt;br /&gt;
&lt;br /&gt;
* Text and menu&lt;br /&gt;
# Setting text over an object&lt;br /&gt;
# Commands to manipulate the pie menu&lt;br /&gt;
&lt;br /&gt;
* Link messages&lt;br /&gt;
# The link_message event.&lt;br /&gt;
# Sending link messages.&lt;br /&gt;
# Limiting link messages to specific prims within a build.&lt;br /&gt;
&lt;br /&gt;
* Basic security&lt;br /&gt;
# Relying on arcane channels is not secure.&lt;br /&gt;
# Methods to insure a message is coming from an agent/object.&lt;br /&gt;
# Basic validation using MD5 and SHA1 hashes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In addition to the basic chat commands and listen event defined in the basic level the person should now be able to perform more advanced interactions including the use of dialogs. Also the person should have a broader understanding of the limitations of chat commands and know how to use the options to share email messages between scripts.&lt;br /&gt;
&lt;br /&gt;
Also, the person should be able to change and manipulate the text over an object as well as remove the text over an object. The various commands to change the text in a pie menu should also be known. &lt;br /&gt;
&lt;br /&gt;
In addition to the chat and listening events the person should also know how to use link messages to communicate between scripts within an object. The person should know all of the options to communicate to specific prims or all of the prims in an object using link messages.&lt;br /&gt;
&lt;br /&gt;
Finally, the person should have a basic understanding of security issues and limitations. The person should be able to identify and check for specific agents as well as check and limit communications for ownership and group identities. &lt;br /&gt;
&lt;br /&gt;
Predefined channels (DEBUG_CHANNEL and PUBLIC_CHANNEL).&lt;br /&gt;
&lt;br /&gt;
=== Physics ===&lt;br /&gt;
&lt;br /&gt;
* Linear and Angular Force&lt;br /&gt;
# Commands for Force&lt;br /&gt;
# Know the difference between local and global settings.&lt;br /&gt;
# Know the difference between linear and angular forces.&lt;br /&gt;
* Linear and Angular Impulse&lt;br /&gt;
# Commands for Impulse&lt;br /&gt;
# Know the difference between local and global settings.&lt;br /&gt;
# Know the difference between linear and angular impulse.&lt;br /&gt;
* Vehicles&lt;br /&gt;
# Know the basic commands and settings to initiate a vehicle.&lt;br /&gt;
# Know the basic ideas behind the different options.&lt;br /&gt;
# Know the impact of changing the individual parameters.&lt;br /&gt;
&lt;br /&gt;
The person who wants to achieve an intermediate rating for physics should know all of the basic commands for both linear and angular force as well as momentum. The person should know the difference between the local and global settings. The person should know the difference between the the force/torque commands and the impulse commands.&lt;br /&gt;
&lt;br /&gt;
The person should know the relationship between force and impulse. Both are representations of Newton&#039;s Second Law where force is the differential form and impulse is the integral form. The person should understand the relationship between force, mass, and acceleration as well as the relationship between impulse and momentum.&lt;br /&gt;
&lt;br /&gt;
The very basic commands of scripting a vehicle should be known. At the intermediate level a person is not expected to be able to create a script for a vehicle but should understand the basic commands necessary for it&#039;s functionality and alter an existing vehicle script.&lt;br /&gt;
&lt;br /&gt;
=== Detection ===&lt;br /&gt;
&lt;br /&gt;
* Touch events.&lt;br /&gt;
# The three touch events.&lt;br /&gt;
# Functions to detect information about who has touched a prim.&lt;br /&gt;
# Passing touch information to other prims in a build.&lt;br /&gt;
&lt;br /&gt;
* Collision events&lt;br /&gt;
# The three collision events.&lt;br /&gt;
# Functions to detect information about what/who took part in the collision.&lt;br /&gt;
&lt;br /&gt;
* Land collision events&lt;br /&gt;
# The three land collision events.&lt;br /&gt;
# Functions to detect information about what/who took part in the land collision.&lt;br /&gt;
&lt;br /&gt;
* Sensors&lt;br /&gt;
# The  sensor commands.&lt;br /&gt;
# The two sensor related events.&lt;br /&gt;
# Limiting the scope of a sensor.&lt;br /&gt;
# Limitations of a sensor.&lt;br /&gt;
&lt;br /&gt;
A person who wishes to achieve an intermediate certification in detection should know the different events in which detection is relevant. The person should know how the different detection commands are used within the different events. The person should know be able to construct scripts that make use of the events and detection routines and combine them. &lt;br /&gt;
&lt;br /&gt;
Additionally a person should be able to use sensors to detect a person. The person should know the difference between a repeating and one time sensor. The person should know how to construct scripts that make use of the sensor and no_sensor events. The person should know the limitations of the commands and understand the importance and how to narrowly define a sensor.&lt;br /&gt;
&lt;br /&gt;
=== Programming and Software Development ===&lt;br /&gt;
&lt;br /&gt;
* More advanced use of lists.&lt;br /&gt;
# Adding to a list.&lt;br /&gt;
# Removing part of a list.&lt;br /&gt;
# Inserting into a list.&lt;br /&gt;
# Replacing part of a list.&lt;br /&gt;
# Finding an item in a list.&lt;br /&gt;
* More advanced string functions.&lt;br /&gt;
# Removing a substring.&lt;br /&gt;
# Replacing a substring.&lt;br /&gt;
# Inserting a substring.&lt;br /&gt;
# Finding a substring.&lt;br /&gt;
* More advanced revision systems.&lt;br /&gt;
# Basic understanding and use of at least on revision control system. (ex: RCS, subversion, or git)&lt;br /&gt;
# Be able to maintain revisions and find particular revisions using at least one revision control system.&lt;br /&gt;
* Workflow&lt;br /&gt;
# Demonstrate effective interactions with clients and remain flexible through the entire development cycle.&lt;br /&gt;
# Be able to establish a basic plan for the creation of a script that must accomplish multiple task.&lt;br /&gt;
# Be able to adapt the plan as the requirements change.&lt;br /&gt;
# Be able to provide effective mock-ups and trial programs for clients.&lt;br /&gt;
&lt;br /&gt;
At the intermediate level the Programming and Software Development category includes greater in depth knowledge of the basic LSL commands. At this level the person should know how to use all of the flow commands and construct a wide variety of scripts that require all of the flow commands.&lt;br /&gt;
&lt;br /&gt;
In addition, the person should know and understand how to use all of the list commands. A person should be able to manipulate lists. For example, a person should be able to delete and insert sublists into an existing list. The person should be able to use strided list and know how to sort and randomize a list.  The person should also have a basic understanding of the memory overhead associated with a list.&lt;br /&gt;
&lt;br /&gt;
The person should also know and understand all of the string manipulation routines. The person should be able to manipulate strings. For example, a person should be able to delete and insert substrings into an existing string. The person should have a basic understanding of the memory overhead associated with strings.&lt;br /&gt;
&lt;br /&gt;
The person should be able to make use of at least one revision control system. The person should be able to maintain revisions and recall specific revisions. At this level a person does not need to know know how to find differences in revisions or be able to create and maintain a branch and merge the branch into an existing code base.&lt;br /&gt;
&lt;br /&gt;
Finally, a person should understand how to create a broad, flexible plan to create and maintain a software project. The person should understand how the importance of creating a plan and developing an approach to a project before any coding is to begin. The person should understand the importance of flexibility and the importance of long term planning and how it relates to the code base.&lt;/div&gt;</summary>
		<author><name>Elendreal Halasy</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=SL_Certification&amp;diff=670723</id>
		<title>SL Certification</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=SL_Certification&amp;diff=670723"/>
		<updated>2009-11-24T00:31:34Z</updated>

		<summary type="html">&lt;p&gt;Elendreal Halasy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SLCert Navbox}}&lt;br /&gt;
[[Category:Certification]]&lt;br /&gt;
&lt;br /&gt;
=SL Certification Project=&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
In Second Life, education exists already in the form of many SL Schools. But certification does not yet exist in the form of SL Certifiers. The goal of the SL Certification Project is to create these certifiers. &lt;br /&gt;
&lt;br /&gt;
SL Certification is a task-based approach to identifying those who have attained a given level of proficiency in world in a given knowledge and skills area. &#039;&#039;&#039;To become a SL Certification project participant, contact {{User|Orange Planer}} (Leader) or {{User|Glenn Linden}} (Linden Lab Sponsor).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Action Plan==&lt;br /&gt;
Test&lt;br /&gt;
=== Phase One - Develop Skills Lists ===&lt;br /&gt;
&lt;br /&gt;
# SLCERT team uses VOLUNTEER MODERATORS to maintain:&lt;br /&gt;
#* A single &#039;&#039;&#039;SCHOOLS LIST&#039;&#039;&#039; on the PUBLIC WIKI with links to their information locations showing what they teach&lt;br /&gt;
#* Multiple &#039;&#039;&#039;SKILLS LISTS&#039;&#039;&#039; on the PUBLIC WIKI of what people need to know how to do in multiple categories of SL skills&lt;br /&gt;
# The VOLUNTEER MODERATORS keep the lists current&lt;br /&gt;
# The SCHOOLS continue to:&lt;br /&gt;
#* Teach their classes&lt;br /&gt;
#* Remain responsible for their own existing certification programs for now&lt;br /&gt;
# RESIDENTS have a choice of where to go to learn the skills&lt;br /&gt;
# EVERYONE has the benefit of a shared set of SKILLS LISTS for reference:&lt;br /&gt;
#* Individuals have:&lt;br /&gt;
#** A checklist for managing their own skills education program&lt;br /&gt;
#* Schools have:&lt;br /&gt;
#** The opportunity to be known for the classes they already make available&lt;br /&gt;
#** The opportunity to offer new classes not yet available&lt;br /&gt;
#* Solution Providers have:&lt;br /&gt;
#** A checklist for managing their employee skills education programs or checking skills levels of their contractors&lt;br /&gt;
&lt;br /&gt;
=== Phase Two - Develop Skills Tests ===&lt;br /&gt;
# SL CERT team uses VOLUNTEER MODERATORS to develop, test, and document:&lt;br /&gt;
#* Multiple &#039;&#039;&#039;SKILLS TESTS&#039;&#039;&#039; on the PUBLIC WIKI of what people need to know, and know how to do, in multiple categories of SL skills&lt;br /&gt;
#* BEST BLENDS of test methods including: Written (True/False; Multiple Choice), Performance (Build; Texture; Plan), and Other.&lt;br /&gt;
&lt;br /&gt;
=== Phase Three - Identify Third Party Certification Companies ===&lt;br /&gt;
# SLCERT team identifies CANDIDATE THIRD PARTY SKILLS CERTIFICATION COMPANIES&lt;br /&gt;
#* Including criteria for ranking and selecting&lt;br /&gt;
#* Present their results and recommendations to Linden Lab Sponsor&lt;br /&gt;
&lt;br /&gt;
=== Phase Four - Hire Recommended Certification Company ===&lt;br /&gt;
&lt;br /&gt;
* SL Certification Developers identify and prioritize selection criteria&lt;br /&gt;
* Make recommendation to Linden Lab&lt;br /&gt;
* Target identifying recommended SL Certifier 2H09&lt;br /&gt;
&lt;br /&gt;
=== Phase Five - Certification in Operation ===&lt;br /&gt;
* Linden Lab Sponsor reviews SL Certification Developer recommendations&lt;br /&gt;
* Presents plan for Executive Committee discussion, approval, budgeting&lt;br /&gt;
* Target 2010 to begin&lt;br /&gt;
&lt;br /&gt;
== Process Guides ==&lt;br /&gt;
&lt;br /&gt;
=== SL Certification Process ===&lt;br /&gt;
* [[SL Cert Process Document | How skills lists become skills tests]]&lt;br /&gt;
&lt;br /&gt;
=== Roles Guide ===&lt;br /&gt;
* [[SL Certification Roles | Action roles in the SL Certification Project]]&lt;br /&gt;
&lt;br /&gt;
=== Certification Guide ===&lt;br /&gt;
* [[SL Cert Guide to Certification Testing | How 3rd party testing companies work]]&lt;br /&gt;
&lt;br /&gt;
=== Wiki Guide ===&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/Style_Guide SL KB Style Guide]&lt;br /&gt;
&lt;br /&gt;
=== Skills List Template ===&lt;br /&gt;
* [[SL Cert Criteria Template | A template for consistent format of skills list criteria pages.]]&lt;br /&gt;
&lt;br /&gt;
== Company Lists ==&lt;br /&gt;
&lt;br /&gt;
=== Education Companies / Schools ===&lt;br /&gt;
:Moderator: {{User|Lady Hathaway}}&lt;br /&gt;
* [[List of Second Life Skills Training Schools|SL Cert Schools]]&lt;br /&gt;
&lt;br /&gt;
=== Testing Companies / Certifiers ===&lt;br /&gt;
:Moderator: {{User|Orange Planer}}&lt;br /&gt;
* [[3rd Party Testing Agencies | SL Cert Certifiers (Candidates)]]&lt;br /&gt;
&lt;br /&gt;
== Skills Lists ==&lt;br /&gt;
* In PHASE ONE ACTION PLAN these lists are sorted in the order they were first created.&lt;br /&gt;
* In PHASE TWO ACTION PLAN a logical grouping will be added to make subjects easier to find.&lt;br /&gt;
&lt;br /&gt;
=== Land Management ===&lt;br /&gt;
:Moderator: {{User|Starglazer Blazer}}&lt;br /&gt;
* [[SL Cert - Basic Land Management]]&lt;br /&gt;
* [[SL Cert - Intermediate Land Management]]&lt;br /&gt;
* [[SL Cert - Advanced Land Management]]&lt;br /&gt;
&lt;br /&gt;
=== Texturing ===&lt;br /&gt;
:Moderator: {{User|Alice Klinger}}&lt;br /&gt;
&lt;br /&gt;
* [[SL Cert - Textures Skill Set]]&lt;br /&gt;
&lt;br /&gt;
=== Terraforming ===&lt;br /&gt;
:Moderator: {{User|Patrice Cournoyer}}&lt;br /&gt;
&lt;br /&gt;
* [[SL Cert - Terraforming]]&lt;br /&gt;
* [[SL Cert - Intermediate Terraforming]]&lt;br /&gt;
* [[SL Cert - Advanced Terraforming]]&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
:Moderator: {{User|Grandma Bates}}&lt;br /&gt;
&lt;br /&gt;
* [[SL Cert - Basic Scripting]]&lt;br /&gt;
* [[SL Cert - Intermediate Scripting]]&lt;br /&gt;
* [[SL Cert - Advanced Scripting]]&lt;br /&gt;
=== Event Hosting ===&lt;br /&gt;
:Moderator: {{User|Linda Sautereau}}&lt;br /&gt;
&lt;br /&gt;
* [[SL Cert - Basic Event Hosting]]&lt;br /&gt;
&lt;br /&gt;
=== Machinima ===&lt;br /&gt;
:Moderator: {{User|Allison Selene}}&lt;br /&gt;
&lt;br /&gt;
* [[SL Cert - Machinima Skills Set]]&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
:Moderator: {{User|Aquarius Paravane}}&lt;br /&gt;
&lt;br /&gt;
* [[SL Cert - Basic Building]]&lt;br /&gt;
&lt;br /&gt;
=== Marketing ===&lt;br /&gt;
:Moderator: {{User|Ppmediadev Blinker}}&lt;br /&gt;
&lt;br /&gt;
* [[SL Cert - Basic Marketing]]&lt;br /&gt;
&lt;br /&gt;
=== SL Mentoring ===&lt;br /&gt;
:Moderator: {{User|Orange Planer}}&lt;br /&gt;
&lt;br /&gt;
* [[SL Cert - Basic Mentoring]]&lt;br /&gt;
* [[SL Cert - Intermediate Mentoring]]&lt;br /&gt;
* [[SL Cert - Advanced Mentoring]]&lt;br /&gt;
&lt;br /&gt;
== Skills Tests ==&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
:Moderator: {{User|Grandma Bates}}&lt;br /&gt;
&lt;br /&gt;
* [[SL Cert - Scripting Test Reviews]]&lt;br /&gt;
&lt;br /&gt;
== Meetings and Notes ==&lt;br /&gt;
Certification discussions, hosted by {{User|Orange Planer}} (2009) and {{User|Emily Darrow}} (2008)&lt;br /&gt;
* [http://slurl.com/secondlife/SLDEVU/227/73/27 Location (SLDEVU ISLAND)]&lt;br /&gt;
* [http://www.spin-stream.com/support/forumdisplay.php?f=90 Minutes (SP COUNCIL FORUM)]&lt;br /&gt;
&lt;br /&gt;
=== 4th Quarter 2008 Accomplishments ===&lt;br /&gt;
* Team Leader [[User:Emily Darrow|Emily Darrow]]&lt;br /&gt;
* Developed Action Plan&lt;br /&gt;
* Schools List Up on Wiki&lt;br /&gt;
&lt;br /&gt;
=== First Quarter 2009 Accomplishments ===&lt;br /&gt;
* Team Leader {{User|Orange Planer}}&lt;br /&gt;
* Additional Participation Generated by Post on XStreet&lt;br /&gt;
* Ten Skills Lists Up on Wiki&lt;br /&gt;
&lt;br /&gt;
=== Second Quarter 2009 Goals ===&lt;br /&gt;
* Team Leader {{User|Orange Planer}}&lt;br /&gt;
* Continue and Deepen Generation of Skills Lists&lt;br /&gt;
* Begin Generation of Skills Tests&lt;br /&gt;
* Identify 3rd Party testing companies to be used for certification process&lt;br /&gt;
&lt;br /&gt;
== Overarching Goal ==&lt;br /&gt;
&lt;br /&gt;
SL Certification is a Resident-Managed Project with Linden Lab Sponsorship and Support.&lt;br /&gt;
&lt;br /&gt;
The purpose of the SL Certification Project is to allow individuals to have their Second-Life skills recognized as meeting a set criteria, at various levels of &amp;quot;Basic&amp;quot;, &amp;quot;Intermediate,&amp;quot; and &amp;quot;Advanced&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A list of certified people will then be maintained and made available to those requesting a service.&lt;br /&gt;
&lt;br /&gt;
To assist residents in achieving these levels, schools will educate those interested. They will create learning content based on the certification criteria.&lt;br /&gt;
&lt;br /&gt;
Once the process is complete, a list of certified individuals will then be made publically available.&lt;br /&gt;
&lt;br /&gt;
== Immediate Goal ==&lt;br /&gt;
* Develop certification criteria for modeling and scripting&lt;br /&gt;
** We are looking for members of the Developer, Instructor, and Volunteer communities to work with Lindens in creating the skills list and certification tasks for those skills in Modeling and in Scripting.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Linden Lab is supporting the development of certification for the use of key Second Life tools. We’ll begin with in-world building tools and LSL. We believe this will benefit Residents, Developers, and anyone who wishes to use Second Life by clearly identifying both key skills and the holders of those skills. This will also enable the creation of training to build the skills required for certification.&lt;br /&gt;
It is Linden Lab&#039;s intent to work with an external certification provider to offer certification testing and maintain a list of those Residents who have been certified.&lt;br /&gt;
&lt;br /&gt;
== Linden Participants ==&lt;br /&gt;
* {{User|Glenn Linden}}&lt;br /&gt;
&lt;br /&gt;
== [[:Category:SL Certification Participant|Resident Participants]] ==&lt;br /&gt;
{{:Category:SL Certification Participant}}&lt;br /&gt;
&lt;br /&gt;
== Certification Mailing List ==&lt;br /&gt;
https://lists.secondlife.com/cgi-bin/mailman/listinfo/slcertification&lt;br /&gt;
&lt;br /&gt;
== SL Certification Group ==&lt;br /&gt;
SL Certification Devs - request membership from {{User|Glenn Linden}} or {{User|Orange Planer}} in world.  Membership is open to anyone who requests it. Meetings are announced here.&lt;br /&gt;
&lt;br /&gt;
== Frequently Asked Questions ==&lt;br /&gt;
=== What is the value of Certification? ===&lt;br /&gt;
The primary value of certification is to those hiring people to create content for them in SL. Certification is one indication that someone has at least a minimum set of skills. Certification is only one of many ways to demonstrate competency. Certification also clarifies skills and helps instructors develop instruction. &lt;br /&gt;
&lt;br /&gt;
Certification also provides a set of skills against which anyone in Second Life, whether they build for fun or for hire, can measure their accomplishments.&lt;br /&gt;
&lt;br /&gt;
By more clearly defining skills related to Second Life tools, certification may improve the quality of construction in Second Life, and may encourage a broader range of instruction about the Second Life tools.&lt;br /&gt;
&lt;br /&gt;
=== Portfolios already show if someone is competent; why do we need certification? ===&lt;br /&gt;
Portfolios have a valuable role in demonstrating accomplishment, both in RL and SL. In Second Life, many projects are done collaboratively.  Builds can incorporate content that is bought and created, and many people can be involved. It can be hard to look at a project and understand what a particular person has contributed. Certification provides one method of demonstrating your own skill set. It should be only one of many potential ways to evaluate a candidate.&lt;br /&gt;
&lt;br /&gt;
=== Is Linden Lab mandating certification? ===&lt;br /&gt;
You can chose to be certified if you want, or not. Linden Lab has no intent to monitor or mandate that Second Life content be created only by Residents with certification, or to mandate certification in any way. Nor will Certification (or non-certification) be tied by Linden Lab in any way to land ownership, group membership, membership level, or any other attribute of a Second Life account. While Linden Lab may provide a way for those listed in the Developer Directory to identify certification, it will not require it for the Developer Directory, Classifieds, Events, or any other Linden Lab-operated listing service.  &lt;br /&gt;
&lt;br /&gt;
=== Is Linden Lab mandating content of certification? ===&lt;br /&gt;
Linden Lab has engaged the Residents in defining the skills involved in competency, and in developing the appropriate demonstration of those skills. Linden Lab is not defining the skills nor the demonstration of them, it is simply supporting the process. &lt;br /&gt;
&lt;br /&gt;
=== Will it cost money? Does Linden Lab intend to profit by Certification? ===&lt;br /&gt;
Linden Lab was looking to have a third party organization manage certification; we don&#039;t want the administrative hassle of doing it, nor the potential for anyone to claim that we would have influence on who gets certified. We intend to make certification as widely available as possible. We will work with Residents, Instructors and Developers to find the best way to enable certification.&lt;br /&gt;
&lt;br /&gt;
=== Who will be providing the Certification service? ===&lt;br /&gt;
At this time, the only answer we can give is &amp;quot;Not Linden Lab.&amp;quot; We will work with the Residents who participate in developing certification to find the best provider - whether a Resident, an external third party, or some other provider. Ironically, our original reason for only considering an external provider was to prevent any concern that one group of Residents might use Certification against other Residents. Linden Lab has no intent of operating the Certification service - we don&#039;t have the expertise or resources, nor do we want the inevitable accusations of bias.&lt;br /&gt;
&lt;br /&gt;
=== Will certification make it harder to become competent in using Second Life tools? ===&lt;br /&gt;
Certification is a way to more clearly communicate skills. Without certification, everyone has their own idea of what competency is.  Some classes will teach one set of skills, others another, and outcomes aren&#039;t comparable. That&#039;s why we&#039;re involving SL instructors in this project.&lt;br /&gt;
Learning to use SL Tools will still take the same amount of effort.  Certification will help guide builders and scripters in what they ought to learn in order to achieve particular measurable standards.&lt;br /&gt;
&lt;br /&gt;
=== How will information on who is certified by made available? ===&lt;br /&gt;
The Residents involved in developing certification will help us determine the most effective way to list who is certified.&lt;br /&gt;
&lt;br /&gt;
=== Can we do certification in Second Life? ===&lt;br /&gt;
At least one Resident has started building a set of in-world tasks that could become part of a certification system.  This seems preferable to having external tests/tasks.&lt;br /&gt;
&lt;br /&gt;
== Certification Categories ==&lt;br /&gt;
Categories for certification will be varied, and will grow over time. &lt;br /&gt;
The basic principal behind the certification process is to provide as wide an array of subjects as possible, and involve residents with skills in these areas.&lt;br /&gt;
&lt;br /&gt;
Currently the following categories are being developed:&lt;br /&gt;
* Graphic Design&lt;br /&gt;
* Machinima&lt;br /&gt;
* Client Interaction&lt;br /&gt;
* Building&lt;br /&gt;
* Land Management&lt;br /&gt;
* Terraforming&lt;br /&gt;
* Event Hosting&lt;br /&gt;
* Scripting&lt;br /&gt;
* Mentoring&lt;br /&gt;
&lt;br /&gt;
By the end of February 09 we hope to have a framework of skill-sets which will then form the basis to develop learning materials.&lt;br /&gt;
&lt;br /&gt;
== Previous Attempt at Categorization ==&lt;br /&gt;
An initial attempt at the SL Certification project began in the second quarter of 2007. Included below is an initial attempt at categorizing Modelling and Scripting skills (further works and discussion can be seen on the [[ModelingSkills|List of Modeling Skills]] and [[Scripting Certification|Scripting]] pages). The current work on skill categorization can be found in [[#Skills Lists|Skills Lists]] above.&lt;br /&gt;
&lt;br /&gt;
=== [[Modeling Certification|Modeling]] ===&lt;br /&gt;
[[ModelingSkills|List of Modeling Skills]]&lt;br /&gt;
* Architecture&lt;br /&gt;
* Furnishings/Interior Design&lt;br /&gt;
* Objects&lt;br /&gt;
* Weapons and Vehicles&lt;br /&gt;
Note: Includes using scripts to animate objects and textures but no writing of scripts&lt;br /&gt;
&lt;br /&gt;
=== [[Scripting Certification|Scripting]] ===&lt;br /&gt;
* Animation&lt;br /&gt;
** Note: Animation includes object animation, texture animation and particle systems&lt;br /&gt;
* Attachments &lt;br /&gt;
* Movement &lt;br /&gt;
* Physics &amp;amp; Collisions &lt;br /&gt;
* Detection &amp;amp; Sensing &lt;br /&gt;
* Asset Management &lt;br /&gt;
* Setting Properties &lt;br /&gt;
* Communications&lt;br /&gt;
* Interacting with external data stores &amp;amp; web content &lt;br /&gt;
* Media Management&lt;br /&gt;
&lt;br /&gt;
Alternative Method:&lt;br /&gt;
&lt;br /&gt;
* Dynamic Objects - manipulation of objects&lt;br /&gt;
** Subcategory: Physics and movement in 3-D space&lt;br /&gt;
** Subcategory: Primitive Attributes&lt;br /&gt;
* User interaction&lt;br /&gt;
** Subcategory: User input and communication&lt;br /&gt;
** Subcategory: Event handling&lt;br /&gt;
* Web interface&lt;br /&gt;
** HTML, XML/RPC, and any knowledge of web languages - Perl, Python, PHP, Java, etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Skills]]&lt;/div&gt;</summary>
		<author><name>Elendreal Halasy</name></author>
	</entry>
</feed>