Category:LSL Library

From Second Life Wiki
Revision as of 15:09, 6 February 2010 by Xaviar Czervik (talk | contribs) (Added Scheme Interpreter)
Jump to navigation Jump to search

Script Library

Come to this page to see complex examples that show how to combine parts of LSL.

Go to the LSL Examples page to see brief examples of how to use parts of LSL

Why collect complex examples here? Well, ...

There are many scripts that have become buried in the Scripting Library forum, were lost with the death of the scripting forums, or sit idle in inventories that could be useful and should be more accessible.

Other scripters may be in the same situation. This wiki is a well-suited medium for a script library. Feel free to add your scripts to the script library by creating new pages for them and linking to those pages here.

Note that there are many more scripts in the LSL Library here, but you can't get to them if you don't know they exist, because they are subpages now, instead of an automatically updated category. Good luck searching.

Rules for posting:

  1. Your script must be tested and working. If it's not, stick it in your user-space until it is. This is a list of working, usable scripts.
  2. Add a link to your script's page here. Link back to this page from your script's page. Start your page with {{LSL Header}}.
  3. Do not add scripts that duplicate the same functionality as an existing script or built in function. If yours does, explain why.
  4. Do not list simple scripts here. Include those among the LSL Examples instead.

LSL Script Library

Name Creator Description
1st necessity of SL Beer Dailey Monitors for avatars and (de)activates scripts states to control script performance/lag.
3D Radar Jesse Barnett Rezzes a ball for each avatar in range. Each ball tracks its own AV and displays distance.
AntiDelay Node Xaviar Czervik Uses llMessageLinked to stop those pesky delays.
AO Overriding Pose Ball Jesse Barnett No more turning your AO off and on when you sit down
ARCFOUR Strong Encryption Implementation Nekow42 Zarf An LSL implementation of ARCFOUR, the most popular stream cipher still in use. It is licensed under a Creative Commons Attribution 3.0 license.
Assembly-Like Programming Language Xaviar Czervik A compiler that runs assembly-like programs.
Associative Array (Dictionary) Emulator Alynna Vixen This library provides a set of functions for using a list as an associative array where string based keys can refer to one or more variant elements.
AvatarFollower Dale Innis Allows one avatar to automatically follow another.
Base2Dec Siann Beck Convert a number to decimal from any base.
Basic Encryption Modules Beverly Larkin Basic encryption scripts, allows you to encrypt a float and shout it to another prim on a randomly chosen channel.
BigNum Library (RSA Encryption) Xaviar Czervik A BigNum Library for dealing with big numbers! Specialized for modular multiplication, and RSA encryption.
Binary Clock Fox Diller A Binary Clock.
BinaryDecimalConverter Soundless Smalls Converts a binary value to a decimal value and vice versa.
Blacklist and Remote Kill Chase Quinnell Blacklist(denial of use) or a creator kill script(can delete someone's item by command on private channel)
Be happy Emmas Seetan Basic smile attachment script, makes your avatar smile.
Best Neighbor Doran Zemlja Reduce ad clutter by hiding ads when users are on their own land nearby.
Builder's Buddy Tool Newfie Pendragon Script to easily move/rotate large builds that exceed the linkable size limit (30 meters).
Button Click Detector Sendao Goodman Use llDetectedTouchUV to determine which button was pressed on a texture.
Camera Sync Meyermagic Salome and Nomad Padar A system to synchronize the cameras of two avatars.
Chatbot Anonymous Compile and run the LSL you type on a channel, faster than you can thru the 2007-08 SL GUI.
Chat Logger (GPL) Nobody Fugazi Chat logger which requests permission from participants before recording them.
Chat Relay grumble Loudon A Chat relay which can be routed using a path header and won't echo.
Code Racer Anonymous Race two versions of code forever, to see which runs faster.
Code Sizer Anonymous Count the bytes compiled from source code, to measure how to write small code.
Color Changer Plus Neo Calcutt A color changer with 14 colors, a random function, and a custom vector function.
Color Changer Void_Singer Dialog driven color changer. Supports 16million+ colors, web color codes, multiple targeted prims, with save and recall.
Color Conversion Sally LaSalle Convert between Red Green Blue (RGB) and Hue Saturation Value (HSV).
ColorConvert Siann Beck Convert color values to vector from RGB, hex or HTML color name.
Color script Masakazu Kojima Script for changing colors trough a listener with pre-defined colors.
Combined Library Strife Onizuka Library of mostly encoding and decoding functions, some more useful then others.
  • String functions: Replace / Trim right / Trim left / Trim both
  • Unicode conversion: UTF8 to Unicode / Unicode to UTF8
  • List functions: Replace / Compare
Computer:jaycoonlanguage jayco121 Bing A language written in LSL that is meant for my computer (available at the shop).
Configuration Notecard Reader Dedric Mauriac A script to read configuration information from a notecard. Parses notecard to extract key words and their assigned values. Allows for comment lines and many more useful features.
Configuration Notecard Reader (advanced) Lear Cale Robust configuration notecard reader; supports multiple notecards with same suffix, handles reconfig on inventory change, and does not usurp the default state.
Conversation Relay Jippen Faddoul Chat relay which requests permission from participants before relaying their messages. Also includes their attachments. (ToS compliant).
Curtain script Zilla Larsson A simple script to retract/stretch curtains, blinds, bedcovers and more
Dataserver API Revolution Perenti Dataserver Framework for Notecards.
Date Library Corto Maltese Date library, based on number of day since march 3rd 1600, can be used to calculate weekday, date differences, and date offset, and date formating.
Days in Month IntLibber Brautigan Clicking on it returns the number of days in the present month. Useful for scripting calendars and tier systems that need to know the number of days in the month at hand or to calculate for any month. Even adjusts for leap years.
Day of the Week DoteDote Edison Function to get day of the week from llGetUnixTime.
Deed Tools Falados Kapuskas Tools that allow the creator to modify Group-Owned (Deeded) Objects via chat.
Describe Chatter Anonymous Chat to see yourself as others do.
Drink script Emmas Seetan Used mainly for food and drink in Second Life.
TOXDropBox Dimentox Travanti This is a Drop box which allows people to drop certain items in a object & has many config options.
ClickAndDrag Nexii Malthus Click and Drag user interface elements using dynamic feedback
First Name Letter Prize RaithSphere Whybrow Gives a prize if the person who sits on it's first letter of first name matches the random letter!
Hierarchics Nexii Malthus Advanced script to create an efficient self-aware hierarchic structure.
Basic A-Star Pathfinder Nexii Malthus My own interpretation of A Star into a highly efficient algorithmn
PhysicsLib Nexii Malthus Interesting set of fun physics functions.
FastConeSpread Nexii Malthus Fast Algorithmn to achieve cone spread, main use in weaponry systems.
Progress Bar Nexii Malthus Flexible and powerful little function for creating progress bars useful in hovertext.
Dialog Control Nargus Asturias A (not-so) simple dialog & menu control script. Call dialog and receive selected value via link_message(), with built-in timer and link_message() notification on time out. Supports multi-pages dialog and numeric property dialog. Button text and dialog's returned value can differ.

Latest version also has Dialog Menus Control built-in; which allow multi-level menus through SL dialog system.

Dialog Number Pad DoteDote Edison Use a dialog to accept positive integer input from users.
Efficiency Tester Xaviar Czervik Tests the speed of a function.
Email2IM DoteDote Edison Send IMs to SL friends via email (translate emails from friends into IMs).
ExplodingObjects Dale Innis Causes an object (of the appropriate type) to explode on command.
FadeEasy Nika Rugani The easy way of fading objects in or out (Using llSetLinkAlpha)
Find Avatar Key Huney Jewell Explores UUID of avatar whose name is said in local chat or who touches the prim.
Fix_Small_Prims Emma Nowhere Finds and adjusts the smallest prims in a linkset so that it can be scaled down further.
Float2Hex Strife Onizuka Very useful for transporting floats.
Float Box Contents Rolig Loon Displays object inventory in hover text, identified by type and updated marquee-style.
Follower Unknown, uploaded by Slik Swindlehurst Makes an object follow the nearest person. Do not use for griefing.
Geometric Library Community Project A substantial amount of various geometric functions for intersection and other purposes of 3D maths.
Get Profile Picture Valentine Foxdale Sets the texture of the object to profile picture of the person that touches ot
GetTimestampOffset Siann Beck Returns llGetTimestamp() with an hour offset.
Give InvItem every n hours Criz Collins Will give an inventory item on touch only every n hours, even if somebody touches the object more than once.
Give random object Emmas Seetan Touch to receive a random object in the prim's inventory
Google Charts Dedric Mauriac Create links to display raw data as a chart image.
Go transparent when walking Emmas Seetan An attachment that goes invisible when you walk and visible when you don't walk.
Group Information v1.0 Tyrennic Rivera When clicked the prim will show group information (set on the prim) from the official Second Life Search page.
Group Authorization Chase Quinnell Checks to see if object is set to appropriate group (checks by group key)
Group Privacy Chance Unknown Security device to insure members of a group can have a private area. Deactivates when nobody present.
Group key finder Emmas Seetan Touch to find the key of the group
Hello Avatar Linden Lab SL's default script.
Holodeck Revolution Perenti Home Rezzing System (Open Source).
Intra-Region Update Server Emma Nowhere Centrally update objects such as Freeview screens or teleport pads within a region that are configured by notecards or contain modifiable objects or media assets.
Interpolation Library Nexii Malthus A small set of interpolation functions.
Inventory Menu Revolution Perenti Inventory Based Menu System.
iTunes RPC Fox Diller iTunes RPC via LSL llEmail and llRemoteDataReply.
Keypad Door Tdub Dowler Door and keypad with changeable code. Follow instructions carefully!
list_cast Fractured Crystal Casts a list of strings into the type they appear to be. Designed for preprocessing user input for feeding into llSetPrimitiveParams
lsDancemachine Kephra Nurmi Low lag client server dancemachine.
lsDeejay Home Edition Kephra Nurmi Client server media control for music, video, youtube, pictures, and texture animations.
lsDialog Kephra Nurmi Universal notecard driven menu dialog system.
lsDisplay Kephra Nurmi Picture cycler with preloader.
lsDistributor Kephra Nurmi Simple 'try' and 'buy' vendor system.
LSL_languageAPI Gypsy Paz Multi-lingual API from notecard based language files
Last Sound System Babbage Linden An LSL Last.fm client.
Listener Script Emmas Seetan Use to listen to other people's conversations (Like spying)
List2CSV Kunnis Basiat List2CSV & CSV2List that include preserving type and escaping characters.
List: Reverse Void Singer Returns an input List in reverse order
List: Find Last Index Void Singer Returns the last index of searched item in a source list. (backwards version of llListFindList)
List: Multi Find Void Singer Returns the first found index of multiple search items in a list. (Multi-item version of llListFindList. Fwd and Rev versions included)
Load URL Emmas Seetan Touch to get a dialog to visit the URL inside the script.
Mandelbrot Explorer Babbage Linden An interactive fractal explorer.
Merge Sort Xaviar Czervik Implements a Merge Sort in LSL, however this code is 300(ish) times slower than llListSort. Don't use this in a script!
Minesweeper Xaviar Czervik A simple minesweeper game.
Morse Code Bobbyb30 Swashbuckler A script that allows for the conversion to and from morse code and can "play" morse code.
Multi Item Rezzer Jesse Barnett A rework of my old High Altitude Rezzer. Place the objects that you wish to choose from to be rezzed inside. Sit on the rezzer and pick the item and the height. It will go to target height and rez the object.
Multirezzer (on collision) Beet Streeter Spawns up to 10 objects when the object containing the script collides with a user.
Name2Key in LSL Maeva Anatine Get the Name2Key feature inside your scripts. Works even on lastly subscribed avatars.
No Auto-Return Bella Clarity To stop your long and hard builds from getting returned in sandboxes (only single prims, though!).
No Auto-Return NR Jor3l Boa This really works (29-05-09), needs a nearby region to do the trick and avoid auto return. (Tested on Blue and Rausch)
No Auto-Return (Multi) Xaviar Czervik A revision of Bella's that works for multi-prim objects.
No Limit Teleporter Morgam Biedermann Teleport to infinite altitudes (up to 4096m)
Object to Data Xaviar Czervik Turns an object into text (and back). Allows people to transfer objects through notecards (or otherwise).
Online Indicator Kristy Fanshaw Will show if the user is online or not. Displays users profile picture and allows to send IM's to user. Also gives a link to open the users profile
Open Group Join Alicia Stella User Touches Object to Join Group from Group Info window, (no bot.)
Object Size Chase Quinnell Gets the dimensions and footprint of a linkset
ParseString2List Strife Onizuka Same as llParseString2List and llParseStringKeepNulls, but not limited to 8 spacers or separators. Thus substitute a call to the llParseString2List and llParseStringKeepNulls functions by a call to ParseString2List whenever you have more than 8 separators or more than 8 spacers.
Password Generator Syntrax Canucci This is an over-complicated, semi-complex password generator, which goes through multiple steps.
Pathfinder Babbage Linden A potential field based pathfinding library.
Phantom Child Aeron Kohime Causes a child in a link set to become phantom without the entire object becoming phantom.
PosJump Uchi Desmoulins A much more efficient alternative to the popular warpPos function for bypassing 10m distance-moved limitations.
Posing Stand Bella Clarity Just a pose script to edit attachments more easily.
Prefix Calculator Xaviar Czervik A calculator that evaluates expressions in prefix notation.

+ 3 4 = 5. * + 1 2 + 3 4 = 14.

Pseudo-random Number Generator Xaviar Czervik Generates a Pseudo-random number between -0x7FFFFFFF and 0x7FFFFFFF
Play and Loop Sound Bella Clarity Very short and simple script; plays and loops a sound in an object.
Rainbow_palette Rui Clary Build a color picker, using only one prim, and a few lines of code.
Random AV Profile Projector Debbie Trilling Randomly selects an AV from a crowd & then projects their profile picture as a 'holographic' image
Random Object Vendor CodeBastard Redgrave Simple vendor that gives out random objects when paid the right amount
Random Password Generator Jor3l Boa Generate Random passwords based on String Length.
RavText Ravenous Dingo An alternate to XyText. This is a lightweight, multiple font 10 character text display system. It only supports uppercase alphanumeric text and a few special characters, but it is very fast, renders quickly and supports multiple fonts. It is meant for specialized use when all that is desired is basic, fast text display and the extra "bells and whistles" are not needed.
Region Frames Per Second Heymariou Mystakidou Says the region name and frames per second out loud on command.
Rental Box, Simply Sendao Goodman Simple explanation of how to make rental boxes.
Rental Cube Hank Ramos Simple cube for renting out a space.
Remote Texture Loader Bobbyb30 Swashbuckler A set of scripts for remotely loading textures within a sim. This means that a single "texture server" can manage multiple changing billboards within a sim.
sbDialog Siann Beck A simple replacement function for llDialog. It re-orders the button list so that the button values, as passed to it, display left-to-right, top-to-bottom. It also opens a listen on the specified channel, and returns the handle.
Scheduler Haravikk Mistral Schedule multiple events using a single script timer
Scheme Interpreter Xaviar Czervik A scheme interpreter capable of handling most scheme expressions, including lambda and lists.
Script Override Functions Revolution Perenti bypass default strings, integer etc in chat channel.
Scripted Attachment Detector Bobbyb30 Swashbuckler A script that will display avatars wearing scripted attatchments in hovertext. This may be worn as an hud or rezzed.
Self Upgrading Script Enhanced Cron Stardust Keeps only latest version of the script on prim (even with multiple adds of the same script!)
Sensor Visualizer Cerise Sorbet Shows the size and shape you get with llSensor range and arc parameters
Serverless Key Exchange Sendao Goodman Maintains a network of object keys without using an external server.
SHA1 Hash Xaviar Czervik Preforms a SHA1 Hash on an input text. Similar to MD5 only (slightly) more secure.
Sim Map Particle Projector Jesse Barnett Displays a floating map of the sim the script is in.
Sim Restart Logger Kyrah Abattoir Counts region restarts and displays log of last 9 restarts together with region FPS and dilation.
Simple Elevator in a Box Hank Ramos Simple elevator example.
Skunk Money Hank Ramos Fun gambling machine of yesteryear, which only supports freeplay now due to SL regulations against gambling.
SLateIt Babbage Linden An augmented virtual reality HUD.
SLetanque Babbage Linden An LSL petanque game.
SLURL HUD CodeBastard Redgrave Touch this HUD to get a SLURL through IM, email and floating text.
SL Mail V1.2 Flennan Roffo Second Life mail client V1.2 (released sept'07). Send and receive mail from within Second Life from and to any address. With Address Book function and many chat commands. V1.3 is upcoming soon!
SL NTPoHTTP client SignpostMarv Martin Second Life Needs Time Parsing over Hyper Text Transfer Protocol

Emulates the function of llGetWallclock for any timezone by using SLOpenID's SLNTPoHTTP service. Also supports ISO 8601 and RFC 2822 timestamps. Script is dependent upon an external service operated by the author!

Smooth Rotating Door Toy Wylie A script for doors that open and close smoothly using llTargetOmega
Smooth Sliding Door SimonT Quinnell A script for sliding doors that open and close smoothly using llMoveToTarget. Asjusts for prim orientation.
Spiral Staircase Generator Meyermagic Salome Generates nice looking spiral staircases without much hassle.
Static_URLs Jor3l Boa How to generate a static url for HTTP-In temporal limitations.
String Compare Xaviar Czervik Compares two strings and reliably returns either 1, -1, or 0 if they are the same.
String: Reverse Void Singer Returns an input string in reverse order
String: Last Index Void Singer Returns the last index of search found in string (the backward equivalent of llSubStringIndex)
Teleport HUD Jesse Barnett WORKS TO 4096 METERS!! Very user friendly teleport HUD. Add destinations by touching "Add" & naming destination in chat. Automatically gets sim name and coordinates. Will only display the destinations in the sim you are currently in. Demonstrates more advanced list manipulation and stride functions.
Teleporter (landmark based) Void_Singer Uses Landmarks to offer map teleports. Works as Hud or inworld objects, just drop in landmarks and go.
Texture Changers Bobbyb30 Swashbuckler A collection of texture changing scripts.
Texture Management Revolution Perenti Dialog Menu based Texture Selection.
Tic Tac Toe CG Linden Step by step demo on how to implement a larger scripting project
Timestamp:
Unix time code to list format
Void Singer converts Unix timestamps to their [Y, M, D, h, m, s] equivalents (ex: 1234567890 to [2009, 2, 13, 3, 31, 30])
Timestamp:
List format to Unix time code
Void Singer converts [Y, M, D, h, m, s] timestamps to their Unix equivalents (ex: [2009, 2, 13, 3, 31, 30] to 1234567890)
Timestamp:
Weekday from Unix timestamp
Void Singer Gets weekday from Unix timestamps (ex: "Friday" from 1234567890)
Timestamp:
Weekday from (Y, M, D) format
Void Singer Gets weekday from (Y, M, D) timestamps (ex: "Friday" from (2009, 2, 13))
TightList Revolution Perenti Tight List is a family of functions for encoding lists as strings and then decoding them back into lists.

There are two flavors: TightList and TightListType. TightListType preserves types and uses a 6 char header, while TightList uses a 1 char header that doesn't preserve type.

Timer Module Isabelle Aquitaine Manage multiple timers via linked messages.
Touch A Quote CodeBastard Redgrave Touch an object to read quotes sequentially from a notecard
Touring Balloon Hank Ramos Automated touring balloon with many options from long ago. Always seems to work on one SL release, and not the other.
Unix2DateTime Flennan Roffo Conversion from Unix time (llGetUnixTime()) to date and time string and vice versa.
Under Age Boot Chance Unknown Security device example to teleport home accounts below a minimum age limit; can be useful in combating free griefer accounts.
Universal Translator Hank Ramos Chat listener that handles seamless translation of public chat between 50+ written languages without the need for configuration. Handles numerous avatars, auto-detects languages, and works together with multiple copies of translators to spread-workload using a sophisticated back-end communications sub-system.
Unmutable Descript Nagger Bobbyb30 Zohari To nag avatars to take off their scripted attatchments.
UUID Song Generator Sendao Goodman Translates a UUID into a simple song and plays it.
VirtualID URL Mapper for HTTP-in Cenji Neutra A script showing how to setup a static URL of the form <your-alias>.obj.virtualid.info which maps to the dynamic HTTP-in URL LSL generates and keeps it up-to-date.
Visitor Greeter Void_Singer Reduced spam visitor greeter, highly configurable, easy to modify.
Visitor Logger (Web/Basic) Buddy Sprocket A very basic visitor logger - log visitors in SL to a text file on your web-site.
Vote Simple JB Kraft Simple vote collector. One avi, one vote.
WarpPos Keknehv Psaltery Non-physical movement without the 10m limit.
Window Control Emmas Seetan For window opacity, helpful for buildings.
WHMcs SecondLife plugin Alicia Sautereau Linden Dollar payment plugin for the WHMcs hosting portal.
XTEA Strong Encryption Implementation Morse Dillon An LSL implementation of XTEA (eXtended Tiny Encryption Algorithm). This is the first known public release of a 'real' strong encryption implementation in LSL and is released under the GNU General Public License (GPL).
XyText Xylor Baysklef Display text (up to 10 characters) on a prim. Use as many prims as desired.
XyyyyzText Criz Collins Display text (up to 10 characters) on a prim. Displays different text for each line instead of one single text, that will be broken into the next lines. Watch here for what that means: http://screencast.com/t/1wMLujLcEO
XyzzyText Thraxis Epsilon and Gigs Taggart Display text (up to 10 characters) on a prim. Way more efficient than XyText.
Wiki3DBuilder Wiki3DBuilder1.0 Salahzar Stenvaag Allows a group of people to collectively build up complex 3D mindmaps with connected concepts. Uses particles for connections and low prim usage. Nodes can be textured, colored, changed form size moved collectively by everybody and can distribute notecards, landmarks, URL, objects, textures. I provide two version 0.1 and 1.0 and probably next version will communicate with moodle and sloodle external websites.
Youtube TV Morgam Biedermann Watch your favorite Youtube videos / auto set the texture to the parcel media texture.
Zero Lag Poseball Jippen Faddoul A simple poseball with no lag

Support Script Library

These are scripts in other languages, intended to be run on other systems that support scripts written in LSL

Name Creator Description
HTTP Post request to a PHP server Corto Maltese This small library allows you to make simple POST requests to your website. The libraries allow you to get your request through the variable $_POST on the server. It also include a basic security mechanism aimed to stop hacking. Comprises of LSL client script and PHP server script.
Silo Zero Linden General purpose data store in PHP. Use this to persist arbitrary data from LSL via llHTTPRequest. See:
SLDB Luc Aubret Flexible web database storage using PHP/MySQL. Used to store per-user field/value pairs from in-world objects using llHTTPRequest.
llXorBase64StringsCorrect SignpostMarv Martin An implementation of llXorBase64StringsCorrect in PHP- should be useful if you're using llXorBase64StringsCorrect to do cryptography work in LSL2 and posting it out to the web via llHTTPRequest.
lsl_fu.php SignpostMarv Martin A basic OOP'd PHP Class containing VeloxSeverine's $_POST fixer and Marv's own eccentric ideas for "fixing" things.
Name2Key.php Jor3l Boa Get Avatar's UUID using Second Life search service. (like in LSL Name2Key)
Key2Name.php Ina Centaur Get Avatar's Name using Second Life search service. (like in LSL Key2Name)
Lame Object DNS and Cross Sim Messaging Liandra Ceawlin Simple, cheeseball method of doing cross-sim communications with http-in and an external object DNS service.
Public Object DNS Liandra Ceawlin Public object DNS-like system running on GAE, for http-in. Hopefully scalable enough for wide-spread usage.
Calendar Image UUID API Ina Centaur API that gives the UUID of an image of a calendar image give month and year arguments.

See Also

Articles

Subcategories

This category has the following 2 subcategories, out of 2 total.

Pages in category "LSL Library"

The following 200 pages are in this category, out of 219 total.

(previous page) (next page)
(previous page) (next page)