LSL Commands

Send commands to your bot via LSL Instant Message:
llInstantMessage(botUUID, scriptPassword + "^" + command);

Actions

Log out
pass + "^offline"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^offline");
    }
}
↑ Top
Send an IM
pass + "^im^UUIDavatar^message"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
key UUIDavatar = "00000000-0000-0000-0000-000000000000"; // Recipient UUID
string message = "Hello from my bot!";

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^im^" + (string)UUIDavatar + "^" + message);
    }
}
↑ Top
Say in local chat
pass + "^say^channel^message"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string message = "Hello world!";

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^say^0^" + message); // channel 0 = local chat
    }
}
↑ Top
Whisper in local chat
pass + "^whisper^channel^message"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string message = "Hello world!";

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^whisper^0^" + message);
    }
}
↑ Top
Shout in local chat
pass + "^shout^channel^message"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string message = "Hello world!";

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^shout^0^" + message);
    }
}
↑ Top
Teleport the bot
pass + "^tp^region^x^y^z"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^tp^Belphegor^225^201^69");
    }
}
↑ Top

Groups

Join a group
pass + "^join^UUIDgroup"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string UUIDgroup = "00000000-0000-0000-0000-000000000000"; // Group must be open for enrollment

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^join^" + UUIDgroup);
    }
}
↑ Top
Invite in group (with check)
pass + "^invite^UUIDgroup^UUIDrole^UUIDavatar"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string UUIDgroup  = "00000000-0000-0000-0000-000000000000"; // Group UUID
string UUIDrole   = "00000000-0000-0000-0000-000000000000"; // Role UUID (00000...0 = Everyone)
string UUIDavatar = "00000000-0000-0000-0000-000000000000"; // Avatar to invite
// Bot MUST have invite rights in the group!

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^invite^" + UUIDgroup + "^" + UUIDrole + "^" + UUIDavatar);
    }
}
↑ Top
Invite without verification
pass + "^invitef^UUIDgroup^UUIDrole^UUIDavatar"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string UUIDgroup  = "00000000-0000-0000-0000-000000000000";
string UUIDrole   = "00000000-0000-0000-0000-000000000000";
string UUIDavatar = "00000000-0000-0000-0000-000000000000";

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^invitef^" + UUIDgroup + "^" + UUIDrole + "^" + UUIDavatar);
    }
}
↑ Top
Leave a group
pass + "^leave^UUIDgroup"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string UUIDgroup = "00000000-0000-0000-0000-000000000000";

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^leave^" + UUIDgroup);
    }
}
↑ Top
Eject from group
pass + "^eject^UUIDgroup^UUIDavatar"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string UUIDgroup  = "00000000-0000-0000-0000-000000000000";
string UUIDavatar = "00000000-0000-0000-0000-000000000000";

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^eject^" + UUIDgroup + "^" + UUIDavatar);
    }
}
↑ Top
Give item to all group members
pass + "^givetogroup^UUIDgroup^UUIDitem"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string UUIDgroup = "00000000-0000-0000-0000-000000000000";
string UUIDitem  = "00000000-0000-0000-0000-000000000000";

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^givetogroup^" + UUIDgroup + "^" + UUIDitem);
    }
}
↑ Top
Send a group notice
pass + "^notice^UUIDgroup^Subject^Message^AttachmentUUID"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string UUIDgroup       = "00000000-0000-0000-0000-000000000000";
string Subject         = "Hello";
string Message         = "This is a message";
string AttachmentUUID  = "00000000-0000-0000-0000-000000000000"; // Optional

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^notice^" + UUIDgroup + "^" + Subject + "^" + Message + "^" + AttachmentUUID);
    }
}
↑ Top

Navigation

Set home
pass + "^sethome"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^sethome"); // Land must allow setting home
    }
}
↑ Top
Teleport bot home
pass + "^tphome"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^tphome");
    }
}
↑ Top
Offer a teleport
pass + "^offertp^UUIDavatar"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string UUIDavatar = "00000000-0000-0000-0000-000000000000";

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^offertp^" + UUIDavatar);
    }
}
↑ Top
Walk to a position
pass + "^walkto^x^y"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^walkto^216^212");
    }
}
↑ Top
Sit on a prim
pass + "^sit^UUIDprim"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string UUIDprim = "00000000-0000-0000-0000-000000000000";

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^sit^" + UUIDprim);
    }
}
↑ Top
Touch an object
pass + "^touch^UUIDobject"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string UUIDobject = "00000000-0000-0000-0000-000000000000";

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^touch^" + UUIDobject);
    }
}
↑ Top

Items

Give an item
pass + "^giveitem^UUIDitem^UUIDavatar"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
// To find an item UUID: IM your bot "#Search:itemname"
string UUIDitem   = "00000000-0000-0000-0000-000000000000";
string UUIDavatar = "00000000-0000-0000-0000-000000000000";

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^giveitem^" + UUIDitem + "^" + UUIDavatar);
    }
}
↑ Top
Give a folder
pass + "^givefolder^UUIDfolder^UUIDavatar"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string UUIDfolder = "00000000-0000-0000-0000-000000000000";
string UUIDavatar = "00000000-0000-0000-0000-000000000000";

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^givefolder^" + UUIDfolder + "^" + UUIDavatar);
    }
}
↑ Top

Options

Get current options
pass + "^Options^UUIDyou"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^Options^" + (string)llGetOwner());
        // Bot will IM you the current accept/reject settings
    }
}
↑ Top
Reject TP offers
pass + "^RejTP"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + ""^RejTP");
    }
}
↑ Top
Reject friendship offers
pass + "^RejFriend"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + ""^RejFriend");
    }
}
↑ Top
Reject group invitations
pass + "^RejGroup"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + ""^RejGroup");
    }
}
↑ Top
Reject inventory offers
pass + "^RejInv"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + ""^RejInv");
    }
}
↑ Top
Accept TP offers
pass + "^AccTP"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + ""^AccTP");
    }
}
↑ Top
Accept friendship offers
pass + "^AccFriend"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + ""^AccFriend");
    }
}
↑ Top
Accept group invitations
pass + "^AccGroup"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + ""^AccGroup");
    }
}
↑ Top
Accept inventory offers
pass + "^AccInv"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + ""^AccInv");
    }
}
↑ Top
Forward IMs to you
pass + "^ForwIM"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^ForwIM"); // Bot will forward all received IMs to you
    }
}
↑ Top
Stop forwarding IMs
pass + "^NoForwIM"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^NoForwIM");
    }
}
↑ Top

Animations

Fly
pass + "^fly"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^fly");
    }
}
↑ Top
Stop fly
pass + "^stopfly"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^stopfly");
    }
}
↑ Top
Jump
pass + "^jump"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^jump");
    }
}
↑ Top
Stop jump
pass + "^stopjump"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^stopjump");
    }
}
↑ Top
Stand
pass + "^stand"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^stand");
    }
}
↑ Top
Sit on ground
pass + "^sitground"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^sitground");
    }
}
↑ Top
Sleep
pass + "^sleep"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^sleep");
    }
}
↑ Top
Stand up
pass + "^standup"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^standup");
    }
}
↑ Top
Yoga float
pass + "^yoga"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^yoga");
    }
}
↑ Top
Walk (animation only)
pass + "^walk"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^walk");
    }
}
↑ Top
Turn left
pass + "^turnleft"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^turnleft");
    }
}
↑ Top
Turn right
pass + "^turnright"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^turnright");
    }
}
↑ Top
Run (animation only)
pass + "^run"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^run");
    }
}
↑ Top
Land
pass + "^land"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^land");
    }
}
↑ Top

Estate Commands (requires estate rights)

Restart the region
pass + "^restart"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^restart");
    }
}
↑ Top
Restart region if bot is on it
pass + "^restartif^regionname"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string regionname = "My%20Region"; // Use %20 for spaces

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^restartif^" + regionname);
    }
}
↑ Top
IM all avatars on region
pass + "^imregion^message"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string message = "Hello everyone!";

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^imregion^" + message);
    }
}
↑ Top
TP home all avatars on region
pass + "^tphomeregion"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^tphomeregion");
    }
}
↑ Top
Kick avatar from region
pass + "^kickregion"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^kickregion");
    }
}
↑ Top
TP one avatar home
pass + "^tpavathomeregion^UUIDavatar"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string UUIDavatar = "00000000-0000-0000-0000-000000000000";

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^tpavathomeregion^" + UUIDavatar);
    }
}
↑ Top
Ban avatar from region
pass + "^banavatregion^UUIDavatar"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string UUIDavatar = "00000000-0000-0000-0000-000000000000";

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^banavatregion^" + UUIDavatar);
    }
}
↑ Top
Unban avatar from region
pass + "^unbanavatregion^UUIDavatar"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string UUIDavatar = "00000000-0000-0000-0000-000000000000";

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^unbanavatregion^" + UUIDavatar);
    }
}
↑ Top
Add group to estate allowed list
pass + "^addgroupregion^UUIDgroup"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string UUIDgroup = "00000000-0000-0000-0000-000000000000";

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^addgroupregion^" + UUIDgroup);
    }
}
↑ Top
Remove group from estate allowed list
pass + "^remgroupregion^UUIDgroup"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string UUIDgroup = "00000000-0000-0000-0000-000000000000";

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^remgroupregion^" + UUIDgroup);
    }
}
↑ Top
Add avatar to estate allowed list
pass + "^addavatregion^UUIDavatar"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string UUIDavatar = "00000000-0000-0000-0000-000000000000";

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^addavatregion^" + UUIDavatar);
    }
}
↑ Top
Remove avatar from estate allowed list
pass + "^remavatregion^UUIDavatar"
key bot = "00000000-0000-0000-0000-000000000000"; // UUID of your Bot
string pass = "yourpass"; // Script Password of your Bot
string UUIDavatar = "00000000-0000-0000-0000-000000000000";

default
{
    touch_start(integer n)
    {
        llInstantMessage(bot, pass + "^remavatregion^" + UUIDavatar);
    }
}
↑ Top

IM Commands (send in chat to your bot)

Where are you?
IM your bot: Where are you ?

Bot replies with its current region and position. Only responds to you.

Step forward
IM your bot: step forward

Bot moves 1 metre forward in the direction it is facing. Only responds to you.

Step back
IM your bot: step back

Bot moves 1 metre backward. Only responds to you.

Turn right
IM your bot: turn right

Bot rotates 90° to the right. Only responds to you.

Turn left
IM your bot: turn left

Bot rotates 90° to the left. Only responds to you.

Sit on a prim by name
IM your bot: sit PrimName

Bot scans within 10m for a prim with that name.
If multiple prims share the same name, the bot sends you a numbered list — reply with the number to choose.
Note: the prim must be in the bot's object cache (bot must have been near it for a few seconds).

Stand up
IM your bot: stand

Bot stands up if currently sitting. Only responds to you.

Follow me
IM your bot: follow me

Bot follows you and stays approximately 1.5 metres away, always facing you. Bot and master must be in the same region. Only responds to you.

Stop follow
IM your bot: stop follow

Bot stops following and stays in place. Only responds to you.

Connect your bot via script

Connect bot via HTTP request
string bot   = "00000000-0000-0000-0000-000000000000"; // UUID of your bot
string spass = "yourpass"; // Script Password (NOT the SL password)

key reqid;

default
{
    touch_start(integer total_number)
    {
        reqid = llHTTPRequest(
            "https://duckbot.net/goonline.php?",
            [HTTP_METHOD, "POST", HTTP_MIMETYPE, "application/x-www-form-urlencoded"],
            "uuid=" + bot + "&spass=" + spass
        );
        llOwnerSay("Please wait...");
    }

    http_response(key request_id, integer status, list metadata, string body)
    {
        if (request_id == reqid && status == 200)
            llOwnerSay(body);
        else if (request_id == reqid)
            llOwnerSay("Error: " + (string)status);
    }
}