nyuuzyou/wikis huggingface dataset:
MLPV2 Addons

*MLPV2 Ball Script with more flexible parameters
*MLPV2 Check Animations Permissions Tool 
*MLPV2 "Cleaner" MLP Say
*MLPV2 Color Changer Add-on
*MLPV2 Give Item Add-on (Item or Items, one at a time, NOT in folder)
*MLPV2 Give Folder Add-on (Item or Items, all at once, in folder)
*MLPV2 Give Items in Folder to a Specific Person
* MLPV2_LockGuard_plugin: Add LockGuard support to MLP2
*MLPV2 Menu Maker Helper
*MLPV2_Props_Texture_Changer_Add-on
*MLPV2 Reset_from_Child_Plugin 
* MLPV2 Rez Prop Independent of Pose (Master rezzer script that goes in with other MLP scripts)
*MLPV2 Rez Prop Independent of Pose (Child script that goes into each item)
*MLPV2_RLV_Plugin
*MLPV2_RLV_Capture_Plugin
*MLPV2_RLV_Capture_By_Menu_Plugin
*MLPV2_Sounds as background music
*MLPV2_Sound_Effects (Triggered by poses)
*MLPV2_Texture_Changer_Add-on
===Patches===
* MLPV2_Balls_Patch: Use different balls for ~ball0...5
===Tools===
*Script to report on who made which animations in a prim
*Script to sort & match .MENUITEMS posename and ".POSITIONS" posenames
Category:MLPV2
MLPV2 Ambiant Sound Add-on

* Back to MLPV2_Addons
* MLPV2
* MLPV2_Texture_Changer_Add-on
* MLPV2_Props_Texture_Changer_Add-on
* MLPV2_Color_Changer_Add-on
Simple add on tool for MLPV2 that puts a button on the MLPV2 menu that, when clicked, play a looped sound in the content of the prim where the MLPV2 scripts are.
(This script won't work for props, only for the prim where the MLPV2 scripts are, and the prims linked to it)
By Teq Hutchinson, November 2009. 
Steps to use:
#Copy and paste the Sound_Script on this page into a script called as you want;
#Drop this script into the prim where you have the rest of the MLPV2 scripts;
#Drop the sound you want to be played into the prim where you have the rest of the MLPV2 scripts;
#Add to the menu in an MLPV2 menu notecard the following line(s):
 LINKMSG PlaySound1 | 0,-4,989999,SoundName
 LINKMSG PlaySound2 | 0,-4,989999,SoundName2
 LINKMSG StopSound | 0,-4,989999,stoploop
 
In the above line, there are elements for you to customize as appropriate:
* PlaySound/StopSound : these are the button labels (in the menu)
* SoundName1 and SoundName2 : the name of the sound (in inventory)
You can have any number of different sounds.
<lsl>
// SOUND_SCRIPT (MULTIPLE)
// add-on by Teq Hutchinson for MLPV2 by Lear Cale. November 2009.
// STOP feature added by Lear Cale
default {
 link_message(integer sender_num, integer num, string str, key id) {
 if (num == 0 && str == "STOP") {
 llStopSound();
 } else if (num == 989999) {
 llStopSound();
 if (str != "stoploop") {
 llStopSound();
 llLoopSound(str, .5); // .5 is the volume of the played sound - must be between 0.0 (silent) and 1.0 (loudest)
 }
 }
 }
}
</lsl>
Category:MLPV2
MLPV2 Balls Patch

* MLPV2
* MLPV2_Addons
This is a patch of the ~menu Script that allows Ball Menus to use different Objects as Pose Balls.
===Step 1: Patch the ~menu Script===
find the line 
<lsl> llRezObject("~ball",llGetPos(),ZERO_VECTOR,ZERO_ROTATION,ch+BallCount);</lsl>
in the ~menu Script and replace it with
<lsl> // extension by Jenni Eales: use special balls for a ball number
 if (llGetInventoryType("~ball" + (string)BallCount) == INVENTORY_OBJECT)
 {
 llRezObject("~ball" + (string)BallCount,llGetPos(),ZERO_VECTOR,ZERO_ROTATION,ch+BallCount);
 }
 else
 {
 llRezObject("~ball",llGetPos(),ZERO_VECTOR,ZERO_ROTATION,ch+BallCount);
 }
</lsl>
===Step 2: Add another Ball===
* make a copy of your ~ball object
* rename it to ~ball0, ~ball1 etc.
* add special features, e.g. add the ~capture Plugin
* put it into your piece of furniture
Category:MLPV2
MLPV2 Color Changer Add-on

* MLPV2
* MLPV2_Texture_Changer_Add-on
* MLPV2_Props_Texture_Changer_Add-on
* MLPV2_Ambiant_Sound_Add-on
Simple add on tool for MLPV2 that puts a button on the MLPV2 menu that, when clicked, gives a user a choice of colors for prims in the object with the MLPV2 scripts.
(This script won't work for props, only for the prim where the MLPV2 scripts are, and the prims linked to it)
By Teq Hutchinson, November 2009. 
Steps to use:
#Copy and paste the Main_Script on this page into a script called as you want;
#Drop this first script into the prim where you have the rest of the MLPV2 scripts;
#Copy and paste the Slave_Script on this page into a script called as you want;
#Drop this second script into the prims you want the color to be changed (including root prim or prim where the MLPV2 scripts are);
#Add to the menu in an MLPV2 menu notecard the following line(s):
 LINKMSG ColorName1 | 0,-4,987788,<0.0,0.0,0.0>
 LINKMSG ColorName2 | 0,-4,987788,<0.5,0.5,0.5>
 ...
In the above line, there are two elements for you to customize as appropriate:
* ColorName1 : the wording that you want to appear for the button on the blue menu.
* <0.0,0.0,0.0> :the color vector you need to use, in RGB, format: <RED value,GREEN value,BLUE value>.
(More about colors here: and here: llSetColor)
<lsl>
// Color Changer MAIN_SCRIPT
//add-on by Teq Hutchinson for MLPV2 by Lear Cale. November 2009.
default
{
link_message(integer sender_num, integer num, string str, key id) 
{
 
if (num ==987788 ) llMessageLinked( LINK_SET, 987799, str, "" );
}
}
</lsl>
<lsl>
// Color Changer SLAVE_SCRIPT
//add-on by Teq Hutchinson for MLPV2 by Lear Cale. November 2009.
default
{
link_message(integer sender_num, integer num, string str, key id) 
{
 
if (num ==987799 ) llSetColor( (vector) str, ALL_SIDES );
//THIS WILL APPLY THE COLOR TO ALL THE SIDES OF THE PRIM
//SEE https://wiki.secondlife.com/wiki/LlSetColor IF YOU NEED SOMETHING DIFFERENT
}
}
</lsl>
Category:MLPV2
MLPV2 Give Folder Add-on

* Back to MLPV2_Addons
<lsl>//This MLP Addon script by Paradisio Adasia is a variant on the original ~give script by Chaz Longstaff.
//This script is free to distribute the modify as long as credit to the creators is included.
//The usage is similar and both the givefolder variant here and the original one can work in the same item.
//Usage:
//To use this put it in a menu as appropriate using the following syntax:
//LINKMSG buttonname | 1,-4,957789,Item1+Item2+Item3++Foldername
//Replace Buttonname with what you want the name in the MLP to use for the button
//Replace Foldername with whatever you wish for the folder given to be called
//Replace Item1+Item2+Item3 with the exact names of the items.
//The + sign is required as it separates the items in the code.
//As well the ++ is required as well after the item list and before the foldername to separate them as well.
//Contact Paradisio Adasia for any problems or suggestions!
default{
link_message(integer from, integer num, string str, key id) { 
 if (num == 957789) {
 list TempList = llParseStringKeepNulls(str,["++"],[]);
 string FolderName = llStringTrim(llList2String(TempList, 1),STRING_TRIM);
 string Objects = llStringTrim(llList2String(TempList, 0),STRING_TRIM);
 list Inventory = llParseStringKeepNulls(Objects,["+"],[]);
 llGiveInventoryList(id, FolderName, Inventory);
 } //end of if for channel
 } //end link_message
} //end default
</lsl>
Category:MLPV2
MLPV2 Menu Maker Helper

<lsl>
//won't make your MLP menu for you completely but will save you some typing time by giving you an outline of your menu based on a set of animations
//drop in a box of animations that are paired by name logically so that they will appear in alpha order in an inventory list.
//it will make an MLP menu giving POSE name to first animation in the set of two
//you may need to re-order M and F anims in the pose line depending on your style of creating MLP menu lines
//to use, copy this into a script, save, add script to a box which holds the animations you want to use, then click the box to run the script.
//WON'T be useful with all animations because of course how animations are named varies wildly from animator to animator, and not even animators are consistent with their own styles and if such inconsistently named anims are also no mod, you're beat....
//Chaz Longstaff November 2013
//
//Sample of what this can produce for you
//[05:58] POSE Cuddle 1 B|Cuddle 1 B|Cuddle 1 T
//[05:58] POSE Kiss His Neck B|Kiss His Neck B|Kiss His Neck T
//[05:58] POSE Relax Hug1 B|Relax Hug1 B|Relax Hug1 T
//[05:58] POSE Sex Neck Kiss 01 B|Sex Neck Kiss 01 B|Sex Neck Kiss 01 T
//[05:58] POSE Sex1 B|Sex1 B|Sex1 T
//[05:58] POSE Sex1Brut B|Sex1Brut B|Sex1Brut T
//[05:58] POSE Sex1BrutFast B|Sex1BrutFast B|Sex1BrutFast T
//[05:58] POSE Sex1Fast B|Sex1Fast B|Sex1Fast T
//[05:58] POSE SexLickTit B|SexLickTit B|SexLickTit T
mySay(string objectName, string msg) {
 string name = llGetObjectName();
 llSetObjectName(objectName);
 llSay(0, "/me " + msg);
 llSetObjectName(name);
}
list printObjectList(integer type) {
 list result = [];
 integer n = llGetInventoryNumber(INVENTORY_ANIMATION);
 integer i = 0;
 integer count = 1;
 string myitem;
 string myitem1;
 string myitem2;
 integer type; 
 mySay("", "__________________________________________");
 while(i < n) {
 
 string itemName = llGetInventoryName(INVENTORY_ANIMATION, i);
 type = llGetInventoryType(itemName);
 
 if (type == INVENTORY_ANIMATION) {
 
 string myitem = llGetInventoryName(type, i);
 if (count == 1) {
 myitem1 = myitem;
 // llSay(0, (string)count + " " + myitem1);
 }
 else myitem2 = myitem;
 
 if (count == 2) {
 // llSay(0, (string)count + " " + myitem2);
 mySay("","POSE " + myitem1 + "|" + myitem1 + "|" + myitem2 ); 
 count = 1;
 myitem = "";
 myitem1 = "";
 myitem2 = "";
 }
 else {
 count = count + 1; 
 }
 
 
}
 
 
 ++i;
 }
 mySay("", "__________________________________________");
 return result;
}
//__________________________
default
{
 on_rez(integer start_param) {
 llResetScript();
 }
 
 
 state_entry() {
 }
 
 
 changed(integer change) {
 if (change & CHANGED_INVENTORY) {
 llResetScript();
 }
 }
 
 touch_start(integer total_number) {
 string tmp = "all"; 
 integer type; 
 type = INVENTORY_ALL;
 
 printObjectList(type);
 }
 
 
}
</lsl>
MLPV2 Props Texture Changer Add-on

* Back to MLPV2_Addons
* MLPV2
*MLPV2_Texture_Changer_Add-on
* MLPV2_Color_Changer_Add-on
* MLPV2_Ambiant_Sound_Add-on
Simple add on tool for MLPV2 that puts a button on the MLPV2 menu that, when clicked, gives a user a choice of textures for props rezzed with the MLPV2 scripts.
By Teq Hutchinson, November 2009. 
Steps to use:
#Copy and paste the Main_Script on this page into a script called as you want;
#Drop this first script into the prim where you have the rest of the MLPV2 scripts;
#Copy and paste the Prop_Main_Script on this page into a script called as you want;
#Drop this second script into the root prim of the props you want to texture with it;
#Copy and paste the Prop_Slave_Script on this page into a script called as you want;
#Drop this third script into the child prims of the props you want to texture with it;
#Add the textures you wish to use into each concerned prims of your prop(including root prim if you want);
#Add to the menu in an MLPV2 menu notecard the following line(s):
 LINKMSG Choice1 | 0,-4,985555,Texture1
 LINKMSG Choice2 | 0,-4,985555,Texture2
 ...
In the above line, there are two elements for you to customize as appropriate:
* Choice1 : the wording that you want to appear for the button on the blue menu.
* Texture1 :the name (case and spacing sensitive) of the texture you need to use.
<lsl>
//MAIN_SCRIPT
//Drop me into the prim where you have the rest of the MLPV2 scripts
//add-on by Teq Hutchinson for MLPV2 by Lear Cale. November 2009.
default
{
link_message(integer sender_num, integer num, string str, key id) 
{
if (num ==985555 ) llSay(-8724, str);
}
}
</lsl>
<lsl>
// Prop_Main_Script
//Drop me into the root prim of the props you want to texture with it
//add-on by Teq Hutchinson for MLPV2 by Lear Cale. November 2009.
integer listener;
default
{
on_rez(integer start)
{
listener = llListen(-8724, "", "", "");
}
listen( integer chan, string name, key id, string msg )
{
if (chan ==-8724)
{
{
llMessageLinked( LINK_ALL_OTHERS, 887777, msg, "" );
if (llGetInventoryType(msg)==0) llSetTexture(msg, ALL_SIDES);
 
//THIS WILL APPLY YOUR TEXTURE TO ALL THE SIDES OF THE PRIM
//SEE https://wiki.secondlife.com/wiki/LlSetTexture IF YOU NEED SOMETHING DIFFERENT
 
}
}
}
} 
</lsl>
<lsl>
// Prop_Slave_Script
//Drop me into the child prims of the props you want to texture with it;
//add-on by Teq Hutchinson for MLPV2 by Lear Cale. November 2009.
default
{
link_message(integer sender_num, integer num, string str, key id) 
{
if (num ==887777 && llGetInventoryType(str)==0 ) llSetTexture(str, ALL_SIDES);
 
//THIS WILL APPLY YOUR TEXTURE TO ALL THE SIDES OF THE PRIM
//SEE https://wiki.secondlife.com/wiki/LlSetTexture IF YOU NEED SOMETHING DIFFERENT
}
}
</lsl>
Category:MLPV2
MLPV2 Rez Prop Independent of Pose Item

* Back to MLPV2_Addons
Companion script to ~prop permanent rezzer (MASTER) script
<lsl>
//~prop permanent derezzer
//
//put this script in a prop that you have rezzed via the ~prop permanent rezzer (MASTER) script in MLP
//when the ~prop permanent rezzer script in MLP hears a button command to derez, it informs this rezzed object of that command to derez
//so this rezzed object will go away
//version 1.2 by Chaz Longstaff 2014-02-09
 integer ch;
 integer ListenHandle;
default {
 
 on_rez(integer channel) {
 ch = channel;
 ListenHandle = llListen(ch,"",NULL_KEY,"");
 }
 
 
 
 listen(integer channel, string name, key object, string str) {
 list TempList2 = llParseStringKeepNulls(str,["##"],[]);
 string command = llStringTrim(llList2String(TempList2, 0),STRING_TRIM);
 string object = llStringTrim(llList2String(TempList2, 1),STRING_TRIM);
 
 
 if ( (command == "DeRezAll") || ((command == "DeRez")&&(object == llGetObjectName())) ) {
 llDie();
 } 
 }
 
 
}
</lsl>
MLPV2 Texture Changer Add-on

* Back to MLPV2_Addons
* MLPV2
* MLPV2_Color_Changer_Add-on
* MLPV2_Ambiant_Sound_Add-on
* MLPV2_Props_Texture_Changer_Add-on
Simple add on tool for MLPV2 that puts a button on the MLPV2 menu that sets the texture on any number of prims. Put several in a menu to give a choice of textures.
This script won't work for props, only for the prim where the MLPV2 scripts are, and the prims linked to it.
This script should *not* be used for objects with lots of prims that need retexturing.
By Teq Hutchinson, November 2009.
Simplified by Lear Cale, March 2011.
Steps to use:
#Create a new script in your inventory. Name it whatever you want, but LC recommends "~~texture".
#Drop this script into every prim that you want retexturable;
#Add the textures you wish to use into each retexturable prim;
#Add lines like the following to a menu in your MLPV2 .MENUITEMS.* notecard(s):
 LINKMSG Choice1 | 0,-1,987777,Texture1
 LINKMSG Choice2 | 0,-1,987777,Texture2
 ...
Each line creates a menu button. There are two elements for you to customize:
* Choice1 : the wording that you want to appear for the button on the blue menu.
* Texture1 :the name (case and spacing sensitive) of the texture you need to use.
<lsl>
// Texture Changer script
// add-on by Teq Hutchinson for MLPV2. November 2009.
// simplified by Lear Cale, March 2011
default
{ 
 link_message(integer sender_num, integer num, string str, key id)
 {
 if (num == 987777 && llGetInventoryType(str) == INVENTORY_TEXTURE)
 {
 // This will apply your texture to all the sides of the prim
 // SEE https://wiki.secondlife.com/wiki/LlSetTexture if you need something different
 llSetTexture(str, ALL_SIDES);
 }
 }
} 
</lsl>
*Here an other script to use UUID texture.
Steps to use are near the same :
# Create a new script in your inventory. Name it whatever you want, but LC recommends "~~texture".
# Drop this script into every prim that you want retexturable;
# Add lines like the following to a menu in your MLPV2 .MENUITEMS.* notecard(s): 
 LINKMSG nom1 | 0,-1,987777,Texture1
 LINKMSG nom2 | 0,-1,987777,Texture2
<lsl>
// Texture Changer script
// By Teq Hutchinson, November 2009.
// Simplified by Lear Cale, March 2011.
// UUID by Heyter Nitely. June 2014.
string texture1 = "f39ca3bf-0058-9cd6-2a56-dd198a992fc0" ;
string texture2 = "2d56afdf-9541-70b1-0342-820cd826d635" ;
string texture3 = "953a7e95-8cdb-c0f7-d251-996564a7dc67" ;
string texture4 = "1a661817-070d-5f9c-2f00-4d6f0c3e7573" ;
string texture5 = "a9a32bf2-7085-98f2-ab25-ac5c6854bd19" ;
// string texture* = "UUID" ; Add more lines if you want
 
 
default
{ 
 link_message(integer sender_num, integer num, string str, key id)
 {
 if (num == 987777)
 {
 if (str == "nom1")
 llSetTexture(texture1, ALL_SIDES);
 else if (str == "nom2")
 llSetTexture(texture2, ALL_SIDES);
 else if (str == "nom3")
 llSetTexture(texture3, ALL_SIDES);
 else if (str == "nom4")
 llSetTexture(texture4, ALL_SIDES);
 else if (str == "nom5")
 llSetTexture(texture5, ALL_SIDES);//Add lines while you need as string texture. Change "nom*" as you want to show in main MLVP menu. Must be the same that in the note card.
 }
 }
}
</lsl>
Category:MLPV2
MMOX/SL assets

Asset Type	Component	Inert	Rezable	UI
Primitive 	Yes 	No 	Yes 	Yes
Objects 	No 	No 	Yes 	Yes
Textures 	Yes 	Yes 	Yes 	Yes
Terrain 	No 	No 	Yes 	No
Animations	Yes 	No 	Yes 	No
Notecards 	Yes 	Yes 	No 	Yes
Scripts 	Yes 	No 	No 	Yes
Gestures 	Yes 	No 	Yes 	Yes
Body Parts	Yes 	No 	Yes 	No
L$ 	No 	Yes 	No 	Yes
== Primitives ==
Prims are meshes, mostly 3D, although Sculpted Prims can be 2-dimensional.
=== Objects ===
Objects are formal groups of prims, linked to each other, with one prim in the object set defined as "root"
Objects used to have the ability to group themselves in a slightly less formal way via Joints
== Textures ==
Textures are raster images.
=== Sculpted Prims ===
Sculpted prims require a specially formulated texture in order to be "sculpted".
=== Photos ===
SL Inventory seems to make a distinction between textures and Photos (images saved to file of what the viewer was rendering at a given moment in time).
=== Animations ===
Animations are supported by composting each frame of an animation sequence into a single tile.
=== Terrain ===
Terrain can be uploaded as a 13 channel RAW file, although currently only the RGB channels are used to affect terrain.
* Red : Height field
* Green : Height field multiplier
* Blue : Water table (Second Life currently only supports a single, sim-wide water table, although adjacent regions can have their water table at different altitudes)
== Sounds ==
== Animations ==
== Notecards ==
Plain text documents that can have other assets embedded within them.
== Scripts ==
LSL code in a plain text file for editing. Scripts can only "run" while existing in a prim's inventory, though they can be stored in a non-running state in both prim and Resident inventories.
== Gestures ==
Gestures can have sounds and animations applied to them.
== Body Parts ==
Body parts can have textures applied to them.
== L$ ==
Linden Dollars are used to enable commerce in Second Life.
== See Also ==
MMOX/SL entity properties
Category:MMOX
MMOX/SL entity properties

== Entities ==
* Residents - the representations of the real people making use of Second Life
* Groups - formal collectives of Residents
* Regions - Large chunks of the overall world. All regions (currently) have identical dimensions. Regions cannot (currently) occupy the same vertical space. Regions exist in 3 dimensions.
* Parcels - Sub-areas of Regions. Can vary in area. Parcels cannot occupy the same vertical space. Parcels exist in 3 dimensions.
* Events - Created by a Resident, occurring on a Parcel during a specified time period. Visiting the location of the event while it is occurring can levy an entry fee.
== Ubiquitous properties ==
These are properties that every entity has.
* key
** Resident UUID
** Group UUID
** Region UUID
** Parcel UUID
** Event ID
* name
** Resident name
** Group name
** Region name
** Parcel name
** Event summary
== Common properties ==
These are properties that most entities have.
* description
** Resident profile text
** Group charter
** Parcel info text
** Event description
* image
** Resident profile texture
** Group insignia
** Region map tile
** Parcel listing texture
* rating
** Group: Mature, PG
** Region: Mature, PG
** Parcel: Mature, PG
** Event: Mature, PG
== Shared properties ==
These are properties that have similar meaning for seperate entities, but aren't common or ubiquitous.
* owned parcels - Residents and Groups can both "own" land.
* co-ordinates - Regions have "global" co-ordinates, Parcels have "local" co-ordinates for their teleport location, Event co-ordinates usually use the co-ordinates of the parcel the event is held on.
* category - Parcels and Events both have a category property.
* fee - Groups can have a membership fee, Events can have a cover charge; a L$ amount expressed as an integer, with "0" being "free". 
== Special properties ==
These are properties that only exist for individual entities.
=== Residents ===
* rezday - date Resident account was created
* picks
** mentioned picks - picks that mention a particular Resident's full name in the description text.
* founded groups
* owned regions
=== Groups ===
* founder - Groups have a Resident as a founder.
* member count - how many Residents are in the group.
* open enrollment - whether or not a Resident can join without an invite.
=== Regions ===
* owner - Regions have a Resident as an owner.
* parcels - Regions have at least 1 parcel, though this parcel does not have to be listed in search.
=== Parcels ===
* unique status - whether or not there's another parcel in the same region listed in search that has the same name.
* region - what region the Parcel is in
=== Events ===
* host - the Resident who posted the event.
* dtstart - the date & time the event is scheduled to start
* dtend - the date & time the event is scheduled to end
* region - the name of the region the event is located in (regions that old events were held in may no longer exist, so presenting the UUID may either be pointless or impossible).
* parcel - the name of the parcel the event will occur on (same "old events" issue that applies to regions applies to parcels)
== See Also ==
MMOX/SL assets
Category:MMOX