This Page is in middle of updates. Some info here might change and/or no longer work in the same way

YEngine is the LSL Engine used on Mobius Grid, formerly known as XMREngine is a script engine and compiler for Opensim 0.9.1 and higher developed by the DreamNation and AviNation grids.
YEngine also supports several extensions to the Linden Scripting Language to make it easier to write scripts through the use of yoptions.

Extension Description
advflowctl provide traditional break/continue/switch/case statements
arrays provide an associative mutable datatype
chars provide the character datatype
inline events handle event processing inline instead of using event handlers
norighttoleft enables an optimization
objects provide mechanism to create script-definable class types, including generics and fixed-dimension arrays
sorpra mechanism to move scripted objects across sim border
trycatch provide mechanism to catch exceptions
builtins miscellaneous built-in functions not mentioned in the above sections
scriptdb persistent storage available to scripts

There are sample scripts here.


  1. The keywords that are part of the extensions will not be recognized until the corresponding yoption statement has been given, so the new keywords don't interfere with existing scripts.
  2. The parts of the yoption statement are case-insensitive.
  3. If you are using half or more of the yoptions in a single script you could use the yoption allowall; to make it easier. This, however, does not include norighttoleft.

Test Program

There is a script test program available. It will compile your script then run it directly on your computer. For any ll…() functions, it prints out the function name and arguments passed to stdout. If the ll…() function returns a value, it reads the return value from stdin. When an event handler completes, it reads the next event name and its arguments from stdin. You can then examine the printed values to see if it is doing what you expect for the inputs given. You can put the inputs in a file and pass it to your script and make sure the output is correct, comparing it to known good data.

Download it here to get it and unzip. Run it like this:

   mono xmrengtest.exe <scriptfile>

It will compile the script and call the default state_entry handler. It will exit when the default state_entry handler completes. To have it process more events after that, include the -eventio option:

   mono xmrengtest.exe -eventio <scriptfile>

…and it will read the name and arguments of subsequent events from stdin, one event per line in the format:

   event_name ( arguments ... )

such as

   http_response ("firstone", 3, [0,<1,2,3>,"456"], "body")

You must be sure to get the argument types correct or an error will result.

The -builtins option lists the functions and built-in constants that the compiler recognizes:

   mono xmrengtest.exe -builtins
QR Code
QR Code wiki:scripting_portal:yengine (generated for current page)