Online Status Indicator

Expired

Will show if the object owner is Online or Offline in Second Life.

 

key ownerkey;
string ownername;

default
{
    on_rez(integer start_param)
    {
        llResetScript();
    }
    
    state_entry()
    {
        ownerkey = llGetOwner();
        ownername = llKey2Name(ownerkey);
        llSetTimerEvent(30.0); //check every 30 seconds
        llRequestAgentData(ownerkey, DATA_ONLINE);
    }

    timer()
    {
        llRequestAgentData(ownerkey, DATA_ONLINE);
    }
    
    dataserver(key request, string data)
    {
        if (data == "1")
        {
                
                llSetText(ownername + " is Online", <0,1,0>, 1);
        }
        else
        {
                llSetText(ownername + " is Offline", <1 ,0,0>, 1);
        }
    }
}

 

Open Group Join Script

Expired

This script will give Touchers a link to the Group's Information window, where they can click the JOIN GROUP button.

Now includes separate version for Touch or Collision with object! 

The object this script is in must be set to Group you want people to Join. The group must be Open Enrollment.

TIP: If the object Group must be different because of land settings use this object somewhere where you are allowed and Copy the message said from Chat History. Then create a simple script that whispers this message when Touched.


TOUCH VERSION Users Touch and receive message

 

 

string groupkey;

findgroupkey()
{
    list a = llGetObjectDetails(llGetKey(), [OBJECT_GROUP]);
    groupkey = llList2String(a,0);
    if (groupkey == "00000000-0000-0000-0000-000000000000")
    {
        llWhisper(0, "Set the Group for this object in EDIT under the GENERAL tab and be sure your Group is Open Enrollment.");
    }
    else
    {
        llWhisper(0, "Click the link from Chat History (Ctrl+H) and then click on JOIN button! secondlife:///app/group/" + groupkey + "/about");
    }
}

default
{
    state_entry()
    {
        llSetText("Touch to Join\nour Group", <1 ,1,1>, 1.0); //Floating Text, edit or remove
        findgroupkey();
    }

    touch_start(integer total_number)
    {
        findgroupkey();
    }
}

 

 

 

COLLISION VERSION Users walk onto/bump into object and receive message

OBJECT MUST NOT BE PHANTOM!!! 

TIP: Make a big but very thin object like a welcome mat and set at teleport landing spot so everyone will need to step on it.

 

 

string groupkey;

findgroupkey(key user)
{
    list a = llGetObjectDetails(llGetKey(), [OBJECT_GROUP]);
    groupkey = llList2String(a,0);
    if (groupkey == "00000000-0000-0000-0000-000000000000")
    {
        llWhisper(0, "Set the Group for this object in EDIT under the GENERAL tab and be sure your Group is Open Enrollment.");
    }
    else
    {
        if (user == NULL_KEY)
        {
            llWhisper(0, "Click the link from Chat History (Ctrl+H) and then click on JOIN button! secondlife:///app/group/" + groupkey + "/about");
        }
        else
        {
            llInstantMessage(user, "Click the link from Chat History (Ctrl+H) and then click on JOIN button! secondlife:///app/group/" + groupkey + "/about");
        }
    }
}

default
{
    state_entry()
    {
        //llSetText("", <1 ,1,1>, 1.0); //Floating Text, edit or remove
        findgroupkey(NULL_KEY);
    }

    collision_start(integer total_number)
    {
        findgroupkey(llDetectedKey(0));
    }
}

 

 

 

 

Group Only Give

Expired

Gives an Object only to avatars with the same active group. 

Object to give must be inside prim with this script.

If item is not an object or you wish to give more than 1 item at once, put those items into a "box" object to be given.

 

 

default
{
    touch_start(integer total_number)
    {
        integer number = 0;
        do
        {
            if (llDetectedGroup(number))
                llGiveInventory(llDetectedKey(number), llGetInventoryName(INVENTORY_OBJECT,0));
            else
                llSay(0, "Wrong active group!");
        }while(total_number > ++number);
    }
}

 

 

 

Give Folder [Group Version]

Expired

Gives a folder of items only to avatars with the same active group.

 

// Add this script and your items to an object.
// When Touched a folder of all items inside the object will be given.
// Scripts are the only inventory type that will not be given, (including this script.)
// Avatars must have the same group active as object to get folder.

default
{
    state_entry()
    {
        llSetText("Touch for a Folder", <1 ,1,1>, 1.0);
    }
    
    touch_start(integer total_number)
    {
        integer i;
        for (i=0;i