Corrade

en-verb|corrades|corrading|corraded

  1. (obsolete) To gnaw into; to wear away; to fret; to consume.
  2. (geology) To erode, as the bed of a stream.
  3. (obsolete) To scrape together or rake together; to accumulate laboriously.

Change Log

Please see the full changelog for a complete list of changes, the the upgrade instructions for upgrading from a previous release or the the TODO list for upcoming changes and feature addtions.

Progressive

16 June 2017

  • Release 9.166 - bug fixes and major feature additions.
  • The Corrade Horde now allows load-balancing commands between different Corrade bots participating as peers in a horde. Corrade currently benefits from two load balancers - a weighted load balancer that distributes the command to a single Corrade instance computed using a configurable weighted algorithm and an unison balancer that attempts to make all Corrade instances execute the same command. For more information please see the Horde documentation.
  • An issue has been addressed concerning Corrade not being able to log back in after a first initial disconnect from the grid on first start.
  • The multiple simulator connections option has been removed hopefully to address memory issues.
  • Corrade now avoids trying to save an asset to the asset cache twice.
  • A mono compatibility issue pertaining to the download and upload commands has been resolved.
  • Corrade will now report errors more verbosely by unwinding stack frames and specifying where the error has occurred.
  • A new parameter has been added to Heartbeat named WorkerOccupation as a ratio between the number of currently occupied group workers versus the free group workers.
  • Multiple updates to the packages that Corrade uses including the Synthetic AI component.
  • Resolved a few race conditions pertaining to Corrade's caches.
  • Fixed concurrency issues with the Nucleus server.

Conservative

4 December 2015

  • Release 7.122 - backports from progressive.
  • Ported the wearables and attachments subsystem for both RLV and the changeappearance command.
  • Switched to the grid resolution functions that progressive is using.
  • Used the same system that progressive is using for finding primitives.

15 August 2015

  • Release 7.121 - back ported performance improvements from progressive.
  • The same group handling mechanism from progressive 8.37 has been used to speed up commands and requests.
  • The download and upload commands have been fixed to allow for a format.
  • Changed service dependencies to Netman and eventlog for compatibility.

4 August 2015

  • Release 7.120 - fixes.
  • Upgraded the Uri-escape functions.
  • Fixed issues with group invites not being sent (thanks CatalinaHunter).

Introduction

Corrade Configurator.

Console.

Corrade LSL travelling zeppelin.

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 http_request.

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.

Why Corrade?

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:

  • TestClient - TestClient distributed with libopenmetaverse and it was created by the developers as a test application to check that library functions implemented in libopenmetaverse work properly. Whilst TestClient implements a large subset of functionality from libopenmetaverse, Corrade implements a larger set - even from the libopenmetaverse library itself. Corrade does not even have a console that can accept commands - instead, Corrade can be interfaced with from LSL or via its HTTP interface.
  • Radegast, MetaBolt (& co.) - these are actually viewers (contrasted to bots) that attempt an implementation of a fully featured viewer (with a graphical interface, etc...). Corrade does not aim to be a viewer but rather a toolbox that can be used for automation. It is possible to create an interface to Corrade if you so desire - some example HTTP templates are created by us and pretty ready to be used.
  • PikkuBot - PikkuBots are very close to a “pet” bot or an NPC that accepts commands using chat functions and performs tasks. Corrade on the other hand is geared towards being controlled entirely by user scripts; passing an instant message or a local chat message to Corrade will at best have the effect of Corrade passing on that message to a script via its notification system. PikkuBots by comparison adopt a monolithic construct, benefiting from a graphical interface that is very useful as an end-product. PikkuBots also implement a lot of meta-commands and default behaviours that Corrade aims purposefully to not implement: PikkuBots has a cool vampire bite command that Corrade will never have! If you want Corrade to bite someone using the third-party Bloodlines product, then Corrade will provide you with all the necessary feedback and control elements to create such a device. However, that will never be in the Corrade core.
  • SmartBots (& co.) - These bots are a long standing corporate solution that are geared towards group management. They are closed source and can only be interfaced with given a HUD that is provided by the same company. SmartBots also offer a bundled solution where hosting is included in the service. Corrade does not provide any hosting but instead works through retailers: if you need hosting, you can check lower on this page for retailers, send an e-mail to us and we will recommend you a few retailers or you can join our group in Second Life and find some retailers.

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.

Why not Corrade?

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.

Retailers

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:

  • N7 Media, LLC offers Corrade services at 1000 Linden Dollars per month with a 500 Linden Dollars setup fee along with tertiary scripting services such as group invites and running on secure Linux servers. For more details, please contact Keldo.

Requirements

  • Unix (Linux, BSD) or Windows (Corrade is unsupported on mono/Unix)
    • On Unix you will need mono - you have to install from the mono project download page and get the latest release:
      • For the progressive release you will need at least version 4.8.1 of mono - note that Corrade does not perform well under mono for the progressive release and you are advised to use Windows instead.
      • For the conservative release you will need at least version 2.8.10 of mono.
    • On Windows:
      • For the progressive release you will need .NET Framework 4.5.
      • For the conservative release you will need .NET 3.5 for Windows (for Windows 8 onward, you have to enable .NET 3.5).
  • x86 or ARM CPU - both Corrade releases benefit a lot from multiple cores if available, however:
    • For the progressive release you will need at least 2 CPUs (either virtual or physical).
    • For the conservative release you will need only 1 CPU (either virtual or physical).
  • 100-250 MB RAM with all options turned on.
  • DSL onward (Linden Lab recommends cable, not wireless).
  • For the conservative release you will need an editor that can load and save files encoded in UTF8 (in order to configure Corrade).

Recommendations

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:

  • Windows Thin PC - Windows Thin PC is a stripped-down version of Windows 7, carrying only the interface and the necessary tools to run daemons such as Corrade. Microsoft announced other similar replacement for newer versions of Windows which you can obtain. However, Windows Thin PC can still be found on TPB.
  • Lite Windows - Light versions of Windows are made by slip-streaming service packs on a base Windows system and can usually be found on enthusiast websites. They are usually created with tools such as nLite which can disassemble a Windows install, strip out unwanted components and slip-stream service packs resulting in an operating system targeted at a specific audience.

Download Binaries

Corrade comes in two flavours:

  • progressive releases are updated very often, they have not been as extensively tested as conservative and they contain all the latest features and performance enhancements.
  • conservative releases are updated less often, they have been extensively tested, no new features get added and bugs are fixed as per feedback.

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.

Additional Software

  • Vassal is a land manager built on top of Corrade.
  • Stitch is an update tool for Corrade.
  • Corrade Bash Manager is a tool to deploy Stitch, Corrade and to start and stop a Corrade bot.

Progressive

  • Corrade 9.166 (SHA1SUM: 991765d1870386bc0baf0564d8c8367eb3da96a7)
  • Stitch 1.8 (SHA1SUM: 5dc6de18a54b6d746a6e2bce7335e2983b44c805)
  • Vassal 1.5 (SHA1SUM: c4663922049151a0d3dbbaa9ffc30774c943e00c)

Conservative

  • Corrade 7.122 (SHA1SUM: ccc7cac19c46b3db36e50d0eb62f210ae12d9621)

Progressive

Conservative

Third-Party Support

This section tracks third-party developments that include Corrade as part of their system.

CasperTech

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.

People On Corrade

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.

Template Store

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.

HTTP Templates

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.

Demonstration Website

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.

Template Archives

Setup Instructions

  • Download Corrade and unzip the files.
  • If you downloaded the progressive release, you can use the bundled Configurator.exe to 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.exe program, 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.
    • On Windows you can just double-click Configurator.exe in the main folder and then the Configurator should load up.
    • On Linux you can open a terminal, change to Corrade's directory and then issue the command: mono Configurator.exe in order to load the configurator.
    • On Mac OSX, you can open Utilities->Terminal and change directory to Corrade's directory and then issue the command: mono Configurator.exe in order to load the configurator.
  • If you downloaded the conservative release, you have to configure Corrade by hand:
    • In the Corrade folder you just downloaded, configure Corrade by editing the Corrade.ini file (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.
  • For Windows:
    • double-click the Corrade.exe file and the bot starts in interactive mode
  • For Linux:
    • you can run Corrade by issuing: mono-service -l:Corrade.exe.lock Corrade.exe
  • For Mac OSX:
    • you can open Utilities->Terminal, then change directory to the Corrade folder and issue: mono-service -l:Corrade.exe.lock Corrade.exe.
  • Check that the bot logs-on properly (Corrade logs to Corrade.log in the logs sub-directory).
  • Join or invite the bot to the group you want it to process commands for.
  • Create a primitive and start scripting with Corrade!
  • You can find more information for running Corrade as a service (Windows) or daemon (Unix) on the auto restart page.

Windows Quickstart Video

Communications Overview

Flow

  • Corrade connects as a client to Second Life.
  • An LSL script is used from within Second Life to send commands to Corrade.
  • Corrade processes these commands and executes them.
  • Optionally, an LSL script can have a callback installed such that Corrade will connect via HTTP POST to the LSL script or a different web-server and print the outcome of the command.
  • Optionally, Corrade can send notifications to a different (or the same) URL.
  • Optionally, Corrade also bundles an integrated web-server to which you can submit commands from outside of SecondLife via PHP, perl, python, ruby, etc...

Application Programmer Interface

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.

Progressive

Conservative

Scripting Considerations

Security

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.

Performance

For performance improvements please see the Corrade performance page.

Benchmarks and Referential Performance

Frequently asked Questions (FAQ)

Hosting Providers

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

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.

Progressive

Corrade progressive is maintained by Cari Tedeschi and hosted in the disorganic/corrade Docker registry to be found at:

Conservative

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:

Self-Standing Servers

These hosting providers are known to work fine with Corrade:

  • Kimsufi has shared hosting and dedicated hosting and reports are that you can install your own OS onto the machine if you so wish. More information on installing Windows on Kimsufi servers can be found around on the Internet (such as creating you own template or using an already created template).
  • Digital Ocean has Unix servers (Ubuntu, FreeBSD, Fedora, Debian, CoreOS, CentOS) starting from USD5 per month. The servers are located in San Francisco and pretty close to Linden Lab's servers. Several customers are running Corrade on their servers and they seem to be stable.
  • OVH has shared hosting and dedicated hosting (Unix and Windows) with data-centres in Canada and Europe. The pricing starts at USD2.99 or 2.40 EUROs per month. You have to pay for the Windows license separately (you pay to OVH and they pay a Windows license subscription for you).

Logos and Vanity Items

Most of these are acceptable to be used for websites, advertising or compliance purposes.

Item Description
Corrade Coat of Arms The Corrade Coat of Arms
Corrade Zeppelin The Corrade Zeppelin 1).
You can also download the Corrade banner PSD.
Wallpaper - great for servers running Corrade.

Contact and Support

If you need help with Corrade, we can be contacted in the following ways:

Thanks

  • Corrade's ASCII logo is signed jgs aka Joan G. Stark.
  • The Zeppelin logo that Corrade uses is a derivate work of Mattahan's (Paul Davey) buff icon set.
  • Tatiana Lapis @ FunGames Central for the many suggestions during Corrade's development - she runs a large business using Corrade.
  • AlphaVille Residential owners for using Corrade and offering suggestions and reports - they manage their rentals using Corrade.
  • Second Life Shelter is one of the oldest newcomer friendly help and hangout region run by FireEyes Fauna and they currently use Corrade to process group invites, send event notices, manage land settings, etc...

and...

  • all the other people that submitted a bug report even once which allowed us to fix important bugs.

Contributors

We would like to thank the following people (in no relevant order) for their extended testing of Corrade and patience with us:

  • Tatiana Lapis
  • MsLarah Resident
  • United Actor
  • Andru Beverly
  • Desdemona Enfield
  • Renae Daines
  • Evie Moriguchi
  • Sidius Core
  • Jarosław Maciejewski (nitro.bystrzyca@gmail.com)
  • Ĵyм Ѡҩℓƒ (Jym Resident) starring as Butters!
  • Catalinahunter Resident
  • Duck Seoung (also running the UnityStreams Stitch mirror)
  • Ghost Menjou
  • Roouli Korro for running a Canadian and French mirror.

Press

You can find various materials on Corrade published on our press page.

Index

1)
Corrade feels insulted if you call him a blimp! Corrade is a zeppelin!

secondlife/scripted_agents/corrade.txt · Last modified: 2017/06/28 08:15 by Wizardry and Steamworks

Access website using Tor


For the copyright, license, warranty and privacy terms for the usage of this website please see the license and privacy pages.