Linden Scripting Language

From Wikipedia, the free encyclopedia

Linden Scripting Language, or LSL, is the programming language used by residents of Second Life, a virtual world by Linden Lab. LSL scripts can control the behavior of in-world objects. LSL has a syntax similar to C. LSL allows objects to interact with the Second Life world and the Internet via email, XML-RPC, and most recently, outbound HTTP requests.


[edit] Default LSL script

The default script, a hello world program that speaks when the object containing the script is 'rezzed' (brought into the Second Life world) or 'touched' (a simple user interaction usually initiated using a mouse click) , looks like:

default
{
  state_entry()
  {
    llSay(0, "Hello, Avatar!");
  }
   
  touch(integer total_number)
  {
    llSay(0, "Touched.");
  }
}

[edit] LSL's future

Second Life's revised version of its scripting system was originally scheduled for release in the first quarter of 2006, but has been pushed back indefinitely. Linden Lab is still moving forward, however, as evidenced by demonstrations presented at Microsoft. The new engine executing scripts uses Mono (the open source implementation of the Microsoft .NET framework) as the virtual machine for scripts running on the servers. On January 29th, 2008, Linden Lab released the Mono VM to several sims on the Second Life Beta grid, for compatibility testing with the wide range of existing LSL code.

The LSL scripting language remains the same, but executing on the Mono underpinnings gives a 50 to 150 times speed increase. An additional benefit of this change is that any language that compiles to the Mono virtual machine can potentially be uploaded to execute in Second Life.


[edit] External links

  • LSL forum—Second Life LSL forum
  • LSL Wiki—A community effort to supplement the available LSL documentation
  • LSL Portal—A new Wiki hosted by Second Life
  • Second Life in Mono – Information regarding the move to Mono
  • Lang.NET Symposium Videos – Official Linden Blog post regarding the video presentation made by James Purbrick and Cory Ondrejka at the 2006 Lang.NET Symposium