Scripting Languages

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(JScript.Net: Fuller description of theoretical usage if previous code ever fixed.)
(VB.Net: Second attempt at updating the information)
Line 43: Line 43:
 
VB.Net is a .Net language.<br />
 
VB.Net is a .Net language.<br />
 
Although it is VB.Net the behaviour is much like LSL in the sense that you still use ll-functions like llSay(), and still use the same events as in LSL.<br />
 
Although it is VB.Net the behaviour is much like LSL in the sense that you still use ll-functions like llSay(), and still use the same events as in LSL.<br />
The first line of your script must be the comment "//vb" for the compiler to treat it as VB.NET. For a particular script engine, you can also specify //XEngine:vb or //YEngine:vb (caution: YEngine is still considered experimental in OpenSim 0.9.1.0 "Snail" release!)<br />
+
The first line of your script must be the comment "//vb" for the compiler to treat it as C#. You can also specify //XEngine:c# but at present you will find that YEngine does not support C# as of OpenSim 0.9.1.0 "Snail" release.<br />
  
 
Example code:
 
Example code:
Line 51: Line 51:
 
  End Sub
 
  End Sub
  
Only XEngine currently supports VB.NET. You need AllowedCompilers = lsl, vb under [XEngine] to make this work. Caution! This may not be safe because visitors *may* be able to use arbitrary code. Use it at your own risk or only in regions where no others have access.
+
You need AllowedCompilers = lsl, vb under [XEngine] to make this work. Caution! This may not be safe because visitors *may* be able to use arbitrary code. Use it at your own risk or only in regions where no others have access.
  
 
== JScript.Net ==
 
== JScript.Net ==

Revision as of 03:44, 20 November 2019


Scripting Languages

OpenSimulator currently supports 2 scripting languages. The others listed here are no longer supported or may only work on some platforms.

Scripts are restored automatically when OpenSimulator starts.

LSL

LSLv2 is the well known Second Life scripting language. It is basically a C#/Java-like language. The majority of ll-functions has been implemented and it is possible to make usable scripts comparable to SL. Although LSL (including OSSL and Mod* functions where enabled) is the default, if for any reason you want to ensure that the compiler treats your script as LSL you should have "//lsl" in a comment in the first line of the script. For a particular script engine, you can also specify //XEngine:lsl or //YEngine:lsl (caution: YEngine is still considered experimental in OpenSim 0.9.1.0 "Snail" release!) Example code:

default
{
   state_entry()
   {
      llSay(0, "This is an incredibly useless program.");
   }
}

C#

C# is a .Net language.

Although it is C# the behaviour is much like LSL in the sense that you still use ll-functions like llSay(), and still use the same events as in LSL.

The first line of your script must be the comment "//c#" for the compiler to treat it as C#. You can also specify //XEngine:c# but at present you will find that YEngine does not support C# as of OpenSim 0.9.1.0 "Snail" release.

Example code:

//c#
public void default_event_state_entry()
{
    llSay(0, "This is an incredibly useless program.");
}

You also need AllowedCompilers = lsl, c# under [XEngine] to make this work. Caution! This may not be safe because visitors *may* be able to use arbitrary code. Use it at your own risk or only in regions where no others have access.

VB.Net

Mono does not have compiler for VB.Net, so VB.Net scripts may not work on Mono. :)

VB.Net is a .Net language.
Although it is VB.Net the behaviour is much like LSL in the sense that you still use ll-functions like llSay(), and still use the same events as in LSL.
The first line of your script must be the comment "//vb" for the compiler to treat it as C#. You can also specify //XEngine:c# but at present you will find that YEngine does not support C# as of OpenSim 0.9.1.0 "Snail" release.

Example code:

//vb
Public Sub default_event_state_entry()
    llSay(0, "This is an incredibly useless program.")
End Sub

You need AllowedCompilers = lsl, vb under [XEngine] to make this work. Caution! This may not be safe because visitors *may* be able to use arbitrary code. Use it at your own risk or only in regions where no others have access.

JScript.Net

Javascript has not been present in OpenSimulator for a very long time (probably pre 0.6.6), as the required components are no longer supported upstream

The first line of your script must be the comment "//js" for the compiler to treat it as JScript.NET. However, JScript.NET support has been commented out in the code for some time. You'd need to do some serious work to fix it. You could theoretically specify //XEngine:js though presumably YEngine would not support JScript.NET as of OpenSim 0.9.1.0 "Snail" release even if the previous code were fixed?

Example code:

//js
function default_event_state_entry()
{
    llSay(0, "This is an incredibly useless program.");
}

If this were one day functional again, you would theoretically require AllowedCompilers = lsl, js under [XEngine] to make this work. Caution! Even if it worked, it might not be safe because visitors *might* be able to use arbitrary code. If it is ever available again, use it at your own risk or only in regions where no others have access.

Yield Prolog

The status of Yield Prolog support is currently unknown.

The first 4 characters in your script must be "//yp" for the compiler to treat it as Yield Prolog.

Example code:

//yp
Personal tools
General
About This Wiki