16 June 2017
weightedload balancer that distributes the command to a single Corrade instance computed using a configurable weighted algorithm and an
unisonbalancer that attempts to make all Corrade instances execute the same command. For more information please see the Horde documentation.
multiple simulator connectionsoption has been removed hopefully to address memory issues.
uploadcommands has been resolved.
WorkerOccupationas a ratio between the number of currently occupied group workers versus the free group workers.
4 December 2015
15 August 2015
uploadcommands have been fixed to allow for a
4 August 2015
Corrade is a multi-purpose scripted agent (bot) written in C# that runs as a system daemon, without any graphical interface and stays connected to a Linden-based grid (either Second Life or OpenSim) while being controlled entirely from in-world LSL scripts or external scripts (such as PHP, Perl, etc...). We like to think of Corrade as a bridge, that gives access to viewer-commands to LSL scripts that would not normally be able to perform certain actions.
The reason for having two components is that LSL scripts offer a more convenient language to deal with in-world assets whereas the libomv C# library that Corrade is built-on exposes some functions that are not available to LSL. In essence, Corrade can be compared to LSL's
RLV extension, where Corrade provides extra viewer-side features to LSL scripts that are inaccessible or difficult to implement in LSL.
The system is composed of an LSL part and a C# client which makes the bot flexible and easily configured for multiple users and groups. Each group configured in Corrade is identified by a password and has a certain processing quota. In Corrade, all actions are quantified and restricted by limits such that you can provide hosting for other people by adding their group in Corrade's configuration file.
However, Corrade is not restricted to manipulating groups. It can get region statistics, query primitives for information, grab particles from any primitive, get the
UUID of textures on a primitive, teleport around to other regions, change the estate covenant, sit down and trigger an animation, talk in a group, in local chat, send instant messages, post to Twitter and Facebook and many, many more functions to explore. Due to the notification feature, Corrade can also act as a relay, sending events such as group chat, instant messages, money balance changes over HTTP POST to either web-servers or in-world LSL scripts listening with
Since Corrade can cater to multiple groups, Corrade implements an access-control system where every feature or set of features is conditioned by per-group permissions. In that sense, for example, only configured groups with the money balance permission are able to receive money balance notifications.
Some people claim Corrade is the “best bot on the grid” - however, we beg to differ because we see Corrade as a different approach to scripted agents (bots). Here is a comparison of what we consider a “different approach” to other players in the industry:
Something that clearly sets Corrade aside from its peers is that Corrade does not implement default behaviours that all the other scripted agents do. In other words, Corrade does not take decisions but rather exposes all the necessary data to a programmer, allowing them to script their own behaviours into Corrade. For instance, consider an agent sending an inventory item to Corrade. Other bots either reject or accept the item depending on a setting or some pre-configured behaviour.
When an inventory item is sent to Corrade, Corrade will put the item on hold, store the inventory transfer request and send a notification to a script that has bound to the inventory notification. A script can then poll the list of pending inventory transfer requests using a follow-up command, retrieve the reply and then send a different follow-up command to Corrade in order to accept or decline the offer. This sort of handshake, whilst elaborate and laborious, is characteristic to Corrade (the same sort of “dance” applies to permission requests, pop-up dialogs, etc...) and ensures that full control is granted to the programmer rather than leaving it up to Corrade to take a decision on some pre-defined or pre-configured behaviour.
It is important to understand that Corrade is not an end-product - you cannot expect to walk in a shop that sells car components and ask to buy a car: we will tell you to go to a car dealer instead! Following the analogy, Corrade's target audience consists of programmers (whether LSL or otherwise). Programmers will take Corrade as a component and will create an end-product for you.
We do provide some scripting templates in the Corrade store, as well as HTTP templates, that are closer to an end-product - for instance, the Corrade HUD is a pretty functional tool if you want a pet in a Linden-based grid (yet it only implements a fraction of Corrade's capabilities); similarly, we also develop Vassal that is a land / estate manager. Nevertheless, all of these tools can be changed or created differently (or better) by a programmer that interfaces with Corrade. As for coverage, if you want a particular targeted application that would require a scripted agent, then chances are that a programmer could create one for you using Corrade.
If you do not care about setting up a bot, or if you do not have the means to run one, there are some in-world retailers that we know about that provide Corrade bots:
mono- note that Corrade does not perform well under
monofor the progressive release and you are advised to use Windows instead.
Given the benchmarks and out of experience, the best operating system to run Corrade on is a stripped-down version of Windows typically created for embedded devices:
Corrade comes in two flavours:
If you are confused which version to choose: you should choose the progressive Corrade in order to get all the new features and stay up-to-date. If, on the other hand, you already have experience with Corrade and want to create a long-standing bot that is meant to perform a set of functions and you do not intend to write any new scripts, then you should pick conservative.
For previous version please see the archived binaries page.
This section tracks third-party developments that include Corrade as part of their system.
Since version 0.91, Corrade is supported by CasperTech as an OpenSource alternative. You can find details about setting up Corrade with CasperTech on their official website.
chakkichakki has developed a controller HUD for Corrade and with the help of Bintang Stromfield, she created a website documenting their work. The controller HUD and scripts are free of charge and can be obtained in-world.
You can find scripting templates (that also function as test harnesses) for the progressive release in Corrade's store on the Second Life marketplace:
they are demonstration scripts that could provide you with a starting base for programming with Corrade.
By using Corrade's HTTP interface you can pull data from outside of SL without using LSL and by using any programming or scripting language you can think of. In this section you can find various template programs that are built on-top of Corrade which are free to use, adapt, share and even commercialise as part of your own projects under the GNU GPLv3 public license.
The following website contains some demonstrations that show how data can be pulled and processed outside of the grid by using Corrade's HTTP interface.
Configurator.exeto configure Corrade. If this is the first time using the Configurator, then press the
Load...button and load the provided
Corrade.ini. Then you can just change the configuration. For Corrade to be able to interact with scripts, you will need to set-up a group (this can be done both in the
Configurator.exeprogram, or by hand) that exists in the grid (ie: SecondLife) you are connecting to. The UUID, group name and group password are essential to getting Corrade to respond to scripts.
Configurator.exein the main folder and then the Configurator should load up.
mono Configurator.exein order to load the configurator.
Utilities->Terminaland change directory to Corrade's directory and then issue the command:
mono Configurator.exein order to load the configurator.
Corrade.inifile (the file is documented) in order to add your bot account, set-up groups and accept the TOS of the grid you are connecting to. Please note that Corrade works with UTF8 and that if you get configuration file errors such as
invalid configuration, please check that you have saved the file as UTF8.
Corrade.exefile and the bot starts in interactive mode
mono-service -l:Corrade.exe.lock Corrade.exe
Utilities->Terminal, then change directory to the Corrade folder and issue:
mono-service -l:Corrade.exe.lock Corrade.exe.
The application programming interface can be found on a separate page and describes all the commands that can be sent to Corrade along with examples.
Please see the scripting considerations page
We present the various attack vectors on Corrade as well as mitigating them on the Corrade security page. Please revise this en-large to make sure that Corrade is secured properly.
For performance improvements please see the Corrade performance page.
Please see the frequently asked questions page.
Since Corrade needs a server to run on, there are multiple online services providing the means to do so. You can of course run Corrade on your own computer at no cost - since that is what the Corrade project aimed at, but there are online services that can take away the pain of administrating a server by yourself. We list some of these services: some free, some commercial, some affiliated with SL, etc... In case you know other hosting providers, or if you are a hosting provider that offers Corrade hosting (we are particularly looking for a hosting provider that is aware of SL and offers Corrade bots for leasing), please contact us and we will add you.
Docker is a free service for one private repository (root-jail), and up to USD7 per month for 5 private repositories (you can find more information on the Docker pricing page.
Corrade progressive is maintained by Cari Tedeschi and hosted in the
disorganic/corrade Docker registry to be found at:
The Corrade conservative branch is available on Docker and kindly provided as a project by Kovu Kumel. Corrade is hosted in the
iconmeta/corrade Docker registry and can be found at:
and the Corrade conservative docker project can be found on github at:
These hosting providers are known to work fine with Corrade:
Most of these are acceptable to be used for websites, advertising or compliance purposes.
If you need help with Corrade, we can be contacted in the following ways:
jgsaka Joan G. Stark.
We would like to thank the following people (in no relevant order) for their extended testing of Corrade and patience with us:
You can find various materials on Corrade published on our press page.