METAbolt MD5 Script
To communicate with METAbolt you need to pass the METAbolt password generated in METAbolt "Application/Preferences". For extra security this password needs to be MD5'ed otherwise METAbolt will discard the request/message you are sending.
The concept is very simple. You simply need to drop the script named "METAbolt MD5" into the object where you scripts are and pass your password via LINK_MESSAGE. The METAbolt script will then MD5 it and pass it back to your script via LINK_MESSAGE. That's it!
We have included a sample script file called "SAMPLE Listen Script" in a package we are distributing free of charge:
http://slurl.com/Vilmarh/176/214/84/. As you will see it provides a sample of how to make the call and pass the password to the MD5 script and it also provides a sample on how your script should listen and receive the MD5ed password back. You should be able to just copy and paste this sample code into your script/s and it should work without any problems.
|
Security Levels
|
| From version 0.9.47.0 onwards LSL commands are disabled by default due to security reasons. You can enable them from the "Security" tab under Application/Preferences/General menu.
There are 2 ways of using the LSL interface:
1. Accept valid commands (ones with the correct METAbolt password) from all avatars and objects. To do this leave the Master avatar and object UUIDs as they are (00000000-0000-0000-0000-000000000000) and then unckeck the "Enforce LSL command security" option.
2. Specify a master avatar and objects. Commands only from the avatar and/or object you have specified will be accepted and all others ignored. Then check the "Enforce LSL command security" option. This is the recommended option for maximum security especially for bots performing SIM/Land related functions.
AS OR VERSION 0.9.51.0 THE LSL API IS NO LONGER IN METABOLT CORE. IT HAS BECOME A PLUG-IN WHICH IS DISTRIBUTED WITH THE METABOLT SOFTWARE DISTRIBUTION. THE PLUG-IN IS CALLED "MB_LSLAPI.EXE" AND CAN BE FOUND UNDER THE "EXTENSIONS" FOLDER OF METABOLT. TO USE THE LSL API YOU NEED TO LOAD THIS PLUGIN WHEN YOU START METABOLT.
|
METAbolt Commands¶
As of METAbolt version 0.9.3.0, METAbolt has made available LSL interfaces which allows SL scripters to develop scripts that will communicate with a METAbolt bot/avatar and get it to execute functions. The following IM commands are currently available:
ADDTOGROUPROLE
Add an avatar to a group role
Command format: cmd identifier|password|ADDTOGROUPROLE|group UUID|role UUID|avatar UUID
|
Note
|
| This command should not be confused with direct group invitations. ADDTOGROUPROLE is not a direct invite. It simply adds the given avatar to the defined group role. The avatar already needs to be a member of the group concerned i.e. If the avatar is in the "everyone" role you can also add them to "managers", "supervisors" or "owners" etc roles. |
AWAY
To set the avatar status to away
Command format: cmd identifier|password|AWAY
BUSY
To set the avatar status to busy
Command format: cmd identifier|password|BUSY
EJECTFROMGROUP
Eject an avatar from a group
Command format: cmd identifier|password|EJECTFROMGROUP|group UUID|avatar UUID
EJECTFROMGROUPROLE
Eject an avatar from a a group role
Command format: cmd identifier|password|EJECTFROMGROUPROLE|group UUID|role UUID|avatar UUID
FOLLOW
Follow a specified avatar
Command format: cmd identifier|password|FOLLOW|avatar name
GIVE
To get the bot to give an item to an identified avatar
Command format: cmd identifier|password|GIVE|item UUID|avatar UUID
GIVEFOLDER
To give a folder to the specified avatar
Command format: cmd identifier|password|GIVEFOLDER|folder UUID|folder name|avatar UUID
LAND_CREATE_OBJECTS¶
Toggle CREATE object permission for Everyone on a parcel
Command format: cmd identifier|password|LAND_CREATE_OBJECTS|true or falseNOTE: The bot needs to be in the same parcel
LAND_ENTER_OBJECTS¶
Toggle ENTER object permission for Everyone on a parcel
Command format: cmd identifier|password|LAND_ENTER_OBJECTS|true or falseNOTE: The bot needs to be in the same parcel
LAND_PUSH¶
Toggle Push setting on a parcel
Command format: cmd identifier|password|LAND_PUSH|true or falseNOTE: The bot needs to be in the same parcel
LAND_SAFE¶
Toggle Safe land setting on a parcel
Command format: cmd identifier|password|LAND_SAFE|true or falseNOTE: The bot needs to be in the same parcel
MOVETO
Walk, run or fly to a given coordinate
Command format: cmd identifier|password|MOVETO|movement type|coord x|coord y|coord zmovement types = walk, run or fly
NOTAWAY
To set the avatar status to not away
Command format: cmd identifier|password|NOTAWAY
NOTBUSY
To set the avatar to un busy
Command format: cmd identifier|password|NOTBUSY
PARCEL_RETURN_AVATAR_OBJECTS
Returns ALL objects belonging to an avatar on a parcel
Command format: cmd identifier|password|PARCEL_RETURN_AVATAR_OBJECTS|UUID of the avatarNOTE: The bot needs to be in the same parcel
PARCEL_RETURN_OBJECT
Returns a specific object from a parcel or SIM to its owner
Command format: cmd identifier|password|PARCEL_RETURN_OBJECT|UUID of ObjectNOTE: The bot needs to be in the same SIM
RETURN_OBJECTS_OWNED_BY_OTHERS
Returns all objects owned by others on a parcel
Command format: cmd identifier|password|RETURN_OBJECTS_OWNED_BY_OTHERSNOTE: The bot needs to be in the same parcel
SAY
To get the bot to say the passed message in public chat
Command format: cmd identifier|password|SAY|channel|message|message typemessage types = normal, shout or whisper
SENDNOTICE
Send a notice to a specified group
Command format: cmd identifier|password|SENDNOTICE|subject|message|attachment asset UUID|group UUID
SIM_ADD_TO_WHITE_LIST
Add an avatar to the "allowed" list of a SIM
Command format: cmd identifier|password|SIM_ADD_TO_WHITE_LIST|avatar UUIDNOTE: The bot needs to be in the same SIM
NOTE: Requires SIM Owner or Manager priviledges
SIM_BAN
To ban an avatar from the SIM
Command format: cmd identifier|password|SIM_BAN|avatar UUIDNOTE: The bot needs to be in the same SIM
NOTE: Requires SIM Owner or Manager priviledges
SIM_CHANGE_PARCELNAME_AND_OR_DESCRIPTION¶
Change the name and/or description of a SIM
Command format: cmd identifier|password|SIM_CHANGE_PARCELNAME_AND_OR_DESCRIPTION|parcel local ID|parcel name|parcel descriptionNOTE: The bot needs to be in the same SIM
NOTE: Requires SIM Owner or Manager priviledges
SIM_ESTATE_MESSAGE
Send an estate message
Command format: cmd identifier|password|SIM_ESTATE_MESSAGE|messageNOTE: The bot needs to be in the same SIM
NOTE: Requires SIM Owner or Manager priviledges
SIM_RECLAIM_LAND¶
Reclaim a land (parcel)
Command format: cmd identifier|password|SIM_RECLAIM_LAND|parcel local IDNOTE: The bot needs to be in the same SIM
NOTE: Requires SIM Owner or Manager priviledges
SIM_REGION_MESSAGE
Send a region message
Command format: cmd identifier|password|SIM_REGION_MESSAGE|messageNOTE: The bot needs to be in the same SIM
NOTE: Requires SIM Owner or Manager priviledges
SIM_RESTART
Re-start a SIM
Command format: cmd identifier|password|SIM_RESTARTNOTE: The bot needs to be in the same SIM
NOTE: Requires SIM Owner or Manager priviledges
SIM_RETURN_OBJECTS
Return all objects belonging to an avatar
Command format: cmd identifier|password|SIM_RETURN_OBJECTS|avatar UUIDNOTE: The bot needs to be in the same SIM
NOTE: Requires SIM Owner or Manager priviledges
SIM_SELL_LAND¶
Put a parcel on sale
Command format: cmd identifier|password|SIM_SELL_LAND|parcel local ID|priceNOTE: Price must be an integer i.e. number only (NO L$ or $ before or after it)
NOTE: The bot needs to be in the same SIM
NOTE: Requires SIM Owner or Manager priviledges
SIM_SEND_EVERYONE_HOME
Send everyone on the SIM home
Command format: cmd identifier|password|SIM_SEND_EVERYONE_HOMENOTE: The bot needs to be in the same SIM
NOTE: Requires SIM Owner or Manager priviledges
SIT
To sit on an object
Command format: cmd identifier|password|SIT|object UUID
STAND¶
To stand from a sitting position
Command format: cmd identifier|password|STAND|object UUID
STOP
Stop an avatar's movement e.g. follow or moveto
Command format: cmd identifier|password|STOP
TOUCH
To touch the specified object
Command format: cmd identifier|password|TOUCH|object UUID
TP
To get the avatar to teleport to a given location on a given SIM
Command format: cmd identifier|password|TP|SIM name|coord x|coord y|coord z
WEAR
To get the bot to change clothes to ones specified in a folder
Command format: cmd identifier|password|WEAR|folder UUID
Commands are sent to the bot/avatar via IM. The "cmd identifier" (listed in command formats above) is required by METAbolt to recognise commands. Currently this identifier is: ned34b54-3765-439j-fds5
New commands are added as and when. When new commands are made available it is not announced. Check this page regularly to keep up to date.
Important information/help on the MB_LSLAPI can be found
hereLatest version of the MB_LSLAPI API is found
hereThe METAbolt LSL script package which contains samples and guides for the above commands can be picked up from the L-Tek Showroom for FREE:
http://slurl.com/Vilmarh/176/214/84/The passwords used in the above commands need to be MD5ed (using the provided METAbolt MD5 script) before the command is sent to METAbolt. The password needs to be the same password contained in the "Application/Preferences" in METAbolt (obviously before it is MD5ed!).
How to get the UUID's of the items and folders you need¶
If you select an inventory item by clicking on it in the METAbolt inventory you will see that information regarding the item is diplayed in the pane on the right hand side of the application. One of them is the UUID you need to copy and paste into SL to use with the command above.
By using the "Automated clothes changer" accessible from the menu in the METAbolt inventory you can see the UUID of clothes folders you click on.
That's it. I will leave how to use these features to your imagination and hope that you will come up with interesting solutions which you can either give away or sell for a price.
Troubleshooting
1. The METAbolt password under the "Application/Preferences/General/Security" menu option has not changed.
solution: If it has changed either copy and paste the previous one from the script and save it in METAbolt, or generate a new one in METAbolt and copy paste it into the script
2. Check that the MB_LSLAPI is loaded from the "Plugins" menu.
solution: You can get APIs to auto-load every time METAbolt is started from the "Plugin Manager" option under the "Plugin" menu
3. You might have lost or deleted the METAbolt settings (.ini) file in which case METAbolt will have defaulted to the "secure mode" i.e. commands are disabled.
solution: Either from the "Plugin Manager" or Security tab under "Application/Preferences/General" set the Avatar/Object UUIDs and check/uncheck the "Enforce LSL security (Security tab) or the "Limit LSL commands to above avatar and object" checkbox options (they are both the same) as you need. This is described in more detail here:
http://www.metabolt.net/METAwiki/Using-Preferences.ashx?NoRedirect=1#SecurityL$_3
4. Check that the commands you are using in your script are correct and haven't changed.
solution: Read this page from the beginning
How to upgrade the MB_LSLAPI to the latest version
1.
Download the latest version from
here2. Unzip the file and copy the content "MB_LSLAPI.exe"
3. If any, close down all instances of METAbolt.
4. Open your
Data Dir and go into the "Extensions" folder and paste and replace the file you just copied
5. Restart your METAbolt and login to the grid of your choice
6. From under the "Plugins" menu select the "MB_LSLAPI" option to activate the API and then click on the "Hide" button to keep it running in the background (if that is what you want).