User:Void Singer/Challenge

From Second Life Wiki
Jump to navigation Jump to search

[Scripting Challenge]

What is it?

The [Scripting Challenge] is a periodic scripting competition to encourage the use of innovative solutions to different problems faced by LSL scripters in Second Life. Contestants are judged on Size, and Speed of the code based solely on the test script(s)/criterion provided by the challenge post so that anyone may verify the results. More categories may be added later.

Who Can Enter?

Any SL Resident with access to post in the Scripting Forum is welcome to compete. Currently this means any SL Resident that is in good standing. The competition may latter be moved to a different venue to widen the competition base.

Who came up with this?

The original idea was the Brainchild of Lazink Maeterlinck and formalized with input from Jesse Barnett and Void Singer.

How do I enter?

There is no sign up; simply post your solution to the current forum thread before the deadline stated in that thread.

Who Picks The Next Challenge?

For ease of deciding, the winner of the current [Scripting Challenge] may pick the time and content. If you have an idea for the next Functional Challenge, you can either include it in a post to the current challenge, or place the suggestion on this page with the date. If the current winner (or their proxy) does not choose a new challenge then the first person to post a new challenge on the next available date may decide (to prevent long lapses by absentee winners).

What's In It For Me?

  • First and foremost is exposure. Your name goes down as the originator of the code, which demonstrates your expertise and finesse to potential clients.
  • Second, You'll have control of the next [Scripting Challenge], which means more possible exposure, and your choice of Challenge topic.
  • Third, there is discussion of having people sponsor the challenge with a prize. This may be the previous winner, or an interested 3rd party, and will definitely be optional to each new challenge.


  1. All entries should contain the results of the test script(s) first.
  2. All entries should contain your solution code. (ie not the entire test script(s)).
  3. All entries should use consistent logical indentation of code and comments (in a script box).
  4. All entries should be commented to explain any hacks or optimizations for inexperienced lsl scripters.
  5. All entries WILL be public domain, free to copy and use by anyone, without restriction. (remember, we're trying to encourage good programming AND use)
  6. Winning submissions will be posted as "LIBRARY: <insert code description>" by the Challenge poster, to the forums with credit to the code's author, as public domain. They may also be linked to or reproduced on this wiki with a CC0 liscense.

Guidlines For New Challenge Posts

Length And Period

  • Begin dates should optimally be before Friday, to include weekends.
  • End dates should be at least 5-7 days later, and not more than 14 days.
  • End Times could possibly be set at GMT or SLT midnight.(ex: Wednesday through Sunday Midnight GMT.)
  • Winners (or their Proxies) should be considered Absentee if no new Challenge is issued within 14 days of the last challenge's close date.
  • Focus should probably be on simpler ideas, ones that can easily be attempted within a day or so to allow the largest contestant pool based on experience.


  • All testing materials should be linked or provided within the post.
  • Should be clearly stated, and easy to judge by anyone viewing the Challenge.
  • Special categories that cannot be judged by indifferent means should be avoided (for example "Style").

Challenge Status

Current Challenge

  • <closed|open|pending> Title Description + <link to post if open | to library if closed + [winners name(category)]>

Previous Challenges

Test Scripts

Function Size Test Script

/*//( v7-D Improved Code Size Tester )//*/
/*//-- Improvements:
 Automatically Detects Compile VM
 Simple Copiable Output Format
 Gets MONO size first try!

  //-- globals and functions go here (may not use a function named "x")

/*//-- Do NOT modify the following 3 lines --//*/
x(){ integer y = (llToLower( "Ü" ) == "Ü"); llSetObjectName( llList2String( ["MONO", "LSO"], y ) );
llOwnerSay( (string)(llList2Integer( [61082, 15865], y ) - llGetFreeMemory()) + " Bytes used" ); }
default{ state_entry(){ state z; } state_exit(){ x(); } } state z{ state_exit(){ } }
/*//-- Do NOT modify the previous 3 lines --//*/

  //-- states go here (must rename your default to something else; may not use "state z")

LSO Function Speed Test Script

  • not written yet

Suggestions For New Challenge Posts

Simple 6pt Compass

  • Date Submitted: 20 April, 2009
  • Format: string fStrCompassFacing( rotation vRotInput );
  • Conditions: Smallest and/or Fastest.
  • Details: create a function that takes a rotation and returns a string with the region relative facing in the format of [N|S][E|W][U|D] (North, South, East, West, Up, Down). valid output examples are any of the following N, E, S, W, U, D, NE, NEU, NED, NW, NWU, NWD, EU, ED, SE, SEU, SED, WU, WD.


Feel free to leave me a note on my User Talk page.