Device development for ARES is similar to development for Companion, and most of the familiar processes still apply. Most development is done using the light bus, albeit with minor differences. For the time being, starting materials can be found from the Companion 8 SDK, available for free from our store in Eisa. ARES also uses many of the public bus commands, and compatibility with ACS devices and interference is similar to that of Companion.

Application development is much different. ARES provides a robust API which is quite dissimilar to normal LSL programming. Here are the highlights:

  • Many common "ll"-prefixed LSL functions are renamed for brevity and convenience. This was optional in Companion but highly encouraged in ARES. These definitions come from the utils.lsl file in the SDK root.
  • No default {} state—the program's entry point for command-line use is the SIGNAL_INVOKE block inside a main() function. Timers and events like on_rez are emulated through kernel signals, but can still be implemented for programs that need high performance.
  • A basic stream API is used for text input and output, similar to Unix pipes. llSay(0, "Hello World!"); is now print(outs, user, "Hello World!"); — pipes can be chained together to automatically pass messages from one program to another, or even in and out of normal chat.

ARES SDK

ARES software development requires the Firestorm viewer, which augments the LSL compilation process with the Boost::Wave preprocessor. The SDK includes UDL 2.1 syntax highlighting definitions for Notepad++ (provided you like dark mode.)

To install the SDK, extract the zip archive below into a new directory (ideally one without any spaces in the path), and configure Firestorm's preprocessor (Preferences > Firestorm > Build 1) to point at it. The LSL preprocessor must be enabled, along with the 'Script optimizer' and '#includes from local disk' checkboxes.

Not all of the files in the ARES SDK may be reused freely. Your use of the SDK is subject to the terms of the ARES Software Copyright License. Please make sure you are familiar with the terms of the ASCL's different sublicenses before downloading.
releaseversiondate
SDK Alpha 2.20.2.22023-12-09
SDK Alpha 10.12023-07-08initial release

Once the SDK is installed, look for the file ARES/application/template.lsl as a basis for writing your own programs.

Packaging and Distribution

The server axtest:0 in Eisa contains the sample package, which is a self-documenting template for creating your own packages.

ARES package servers are not yet available for purchase. In the interim, note that any inventory items (with the exception of scripts) ctrl-dragged onto the ARES HUD will be automatically relocated to user memory, where you may act upon them.

File Licenses

Most of the files in the SDK are ASCL-iii, which is a "BSD-like" permissive open source license that allows for closed-source derivatives. However, many (especially those in the ARES/application/ directory) fall under more restrictive licenses, as summarized below.

filedescriptionterms
ARES/application/calc.lslcalculatorASCL-ii (copyleft/share-alike)
ARES/application/db.lsldatabase utilityASCL-ii (copyleft/share-alike)
ARES/application/define.lslwiki lookupASCL-ii (copyleft/share-alike)
ARES/application/filter.lslvox filtersASCL-i (modding only)
ARES/application/find.lslgrep clone (WIP)ASCL-ii (copyleft/share-alike)
ARES/application/fortune.lslGNU fortune frontendASCL-ii (copyleft/share-alike)
ARES/application/fortune.h.lslGNU fortune frontend (dependency)ASCL-i (modding only)
ARES/application/help.lslmanual interfaceASCL-ii (copyleft/share-alike)
ARES/application/id.lslsystem configuration toolASCL-i (modding only)
ARES/application/land.lslparcel and region utilitiesASCL-ii (copyleft/share-alike)
ARES/application/lslisp.lslLSLisp programming languageASCL-ii (copyleft/share-alike)
ARES/application/mantra.lslself-hypnosis toolASCL-ii (copyleft/share-alike)
ARES/application/mail.lslemail utilityASCL-ii (copyleft/share-alike)
ARES/application/media.lslsound & animation playback widgetASCL-ii (copyleft/share-alike)
ARES/application/media.event.lslsound & animation playback widget (dependency)ASCL-ii (copyleft/share-alike)
ARES/application/news.lslRSS aggregatorASCL-ii (copyleft/share-alike)
ARES/application/persona.lslpersonality configuration toolASCL-ii (copyleft/share-alike)
ARES/application/scidb.lslscientific database query toolASCL-ii (copyleft/share-alike)
ARES/application/tell.lslsends chat messagesASCL-ii (copyleft/share-alike)
ARES/application/xset.lslcaptures standard outputASCL-ii (copyleft/share-alike)
ARES/system/exec.lslcommand shellASCL-i (modding only)
ARES/system/exec.event.lslcommand shell (dependency)ASCL-i (modding only)
ARES/system/policy.lslsecurity policiesASCL-i (modding only)
ARES/system/power.lslsubsystem managerASCL-i (modding only)
ARES/system/security.lsluser access controlASCL-i (modding only)
lslisp.lslLSLisp programming languageASCL-ii (copyleft/share-alike)
lslisp.h.lslLSLisp programming languageASCL-ii (copyleft/share-alike)

In case of disagreements or omissions between actual files and the entries above, license declarations inside the files take precedence.