LSL Functions — Quick Reference
A compact list of commonly used Linden Scripting Language functions with one-line descriptions.
Tip: Hover your cursor over function names in your IDE to see full signatures and constants.
Touch & Interaction
| Function | What it does |
|---|---|
llDetectedKey(i) | Gets the key (UUID) of the i-th detected toucher/collider. |
llDetectedName(i) | Name of the detected agent/object at index i. |
llDetectedType(i) | Bitfield describing what was detected (AGENT, ACTIVE, PASSIVE...). |
llDetectedTouchFace(i) | Face index touched; -1 if unknown. |
llDetectedTouchUV(i) | UV touch coordinates on the face. |
llGetOwner() | Returns the key of the object’s owner. |
llGetOwnerKey(id) | Owner key of an avatar/object by key. |
llGiveInventory(dst, name) | Sends an inventory item to a user or object. |
llDialog(av, msg, buttons, chan) | Shows a dialog to an avatar with buttons; listens on channel. |
llTextBox(av, msg, chan) | Prompts an avatar for text input via dialog. |
Movement & Physics
| Function | What it does |
|---|---|
llSetPos(pos) | Moves the prim (in region coordinates); limited for attachments. |
llSetRot(rot) | Sets local rotation of the prim. |
llSetRegionPos(pos) | Teleports the object within region bounds (non-physical). |
llMoveToTarget(pos, tau) | Applies a soft spring force to move toward a position. |
llStopMoveToTarget() | Stops movement started by llMoveToTarget. |
llLookAt(rot, strength, damping) | Applies forces to orient the object toward a rotation. |
llSetStatus(flag, on) | Enables/disables physics flags (PHYSICS, TEMP_ON_REZ...). |
llSetForce(force, local) | Applies a continuous force to a physical object. |
llApplyImpulse(imp, local) | Applies an instantaneous impulse. |
llSetVelocity(v, local) | Sets velocity (physical) or “pushes” (non-physical). |
Object & Prim
| Function | What it does |
|---|---|
llGetLinkNumber() | Returns the current prim’s link number. |
llGetLinkName(link) | Name of a specific link in a linkset. |
llGetNumberOfPrims() | Total prims in the linkset (or 1 if unlinked). |
llSetLinkAlpha(link, alpha, face) | Sets transparency for a link’s face(s). |
llSetLinkColor(link, color, face) | Sets color for a link’s face(s). |
llSetTexture(texture, face) | Applies a texture by name/UUID to a face. |
llScaleTexture(u, v, face) | Scales texture repeats. |
llOffsetTexture(u, v, face) | Offsets texture mapping. |
llRotateTexture(angle, face) | Rotates texture on a face. |
llSetPrimitiveParams(params) | Bulk set prim parameters (size, hollow, path, etc.). |
Avatar & Attachment
| Function | What it does |
|---|---|
llRequestPermissions(id, perms) | Ask an avatar for permissions (animate, take controls...). |
llTakeControls(controls, accept, pass_on) | Listen for avatar key inputs when attached/seated. |
llSetAlpha(alpha, face) | Sets prim transparency (attachments too). |
llStartAnimation(name) | Starts a built-in or custom animation on the avatar. |
llStopAnimation(name) | Stops a running animation. |
llAttachToAvatar(point) | Attaches object to an avatar attachment point. |
llDetachFromAvatar() | Detaches the object from the avatar. |
llRequestAgentData(id, data) | Requests agent info (online status, etc.). |
Communication
| Function | What it does |
|---|---|
llSay(chan, msg) | Chats on channel (0 = public chat, 20m range). |
llShout(chan, msg) | Chats louder (100m range). |
llWhisper(chan, msg) | Chats quietly (10m range). |
llRegionSay(chan, msg) | Delivers to the whole region on channel. |
llOwnerSay(msg) | Private message to the object owner. |
llInstantMessage(id, msg) | Sends a direct IM to an avatar/key. |
llMessageLinked(link, num, str, key) | Sends a message between scripts in a linkset. |
llListen(chan, name, id, msg) | Registers a listener for chat on a channel. |
llListenRemove(handle) | Stops a previously set listener. |
Timing & Sensors
| Function | What it does |
|---|---|
llSetTimerEvent(sec) | Triggers the timer() event at an interval. |
llGetTime() | Seconds since last reset of script. |
llResetTime() | Resets the script timer. |
llSensor(name, id, type, range, arc) | Active sensor scan for things/avatars. |
llSensorRepeat(name, id, type, range, arc, rate) | Repeating sensor calls. |
llSensorRemove() | Stops an active repeating sensor. |
llVolumeDetect(on) | Makes prim phantom but triggers collision events. |
Inventory & Data
| Function | What it does |
|---|---|
llGetInventoryNumber(type) | How many items of a type are in the prim. |
llGetInventoryName(type, i) | Name of the i-th inventory item of given type. |
llGiveInventoryList(dst, folder, list) | Sends a folder of inventory items. |
llGetNotecardLine(name, line) | Asynchronously reads a line from a notecard. |
llGetNumberOfNotecardLines(name) | Gets total lines in a notecard (async). |
llCreateLink(target, parent) | Links two objects you own together. |
llBreakLink(link) | Unlinks a prim from a linkset. |
llGetObjectDetails(id, params) | Retrieves various details (name, owner, pos...). |
Math, Strings & Lists
| Function | What it does |
|---|---|
llVecMag(v) | Magnitude of a vector. |
llVecNorm(v) | Normalized vector. |
llRot2Euler(r) | Converts quaternion rotation to Euler angles. |
llEuler2Rot(v) | Euler angles to quaternion rotation. |
llRound(x) | Rounds to nearest integer. |
llList2String(list, i) | Gets an element of a list as string. |
llList2Integer(list, i) | Gets an element as integer. |
llListFindList(src, sub) | Finds sub-list index in a list. |
llParseString2List(str, delims, spacers) | Splits text into a list. |
llDumpList2String(list, sep) | Joins list into a string. |
Environment & Region
| Function | What it does |
|---|---|
llGetPos() | Current position of the object. |
llGetRot() | Current rotation. |
llGetRegionName() | Name of the current region (sim). |
llGetRegionCorner() | Global grid corner coordinates of the region. |
llGetEnv(var) | Reads environment values (e.g., "owner", "agent_limit"). |
llSetEnvironment(pos, list) | Modifies parcel/region environment (experience perms required). |
llRequestURL() | Requests an HTTP-in URL for the script. |
llReleaseURL(url) | Releases an HTTP-in URL. |
HTTP & Networking
| Function | What it does |
|---|---|
llHTTPRequest(url, params, body) | Makes an outgoing HTTP(S) request. |
llHTTPResponse(req, status, body) | Sends response to an inbound HTTP-in request. |
llEmail(address, subj, msg) | Sends email from the object. |
llGetFreeURLs() | How many HTTP-in URLs you can still request. |
llRequestSecureURL() | Requests HTTPS HTTP-in URL (when supported). |
Sound & Media
| Function | What it does |
|---|---|
llPlaySound(name, volume) | Plays a sound once on the prim. |
llLoopSound(name, volume) | Loops a sound. |
llStopSound() | Stops currently playing sound. |
llPreloadSound(name) | Hints the viewer to cache a sound. |
llSetSoundQueueing(on) | Queue multiple sound triggers smoothly. |
Script & State
| Function | What it does |
|---|---|
llResetScript() | Resets the current script (state re-enters default). |
llSetMemoryLimit(bytes) | Attempts to set memory limit for the script. |
llGetScriptName() | Returns the running script’s name. |
llGetFreeMemory() | Bytes of free script memory remaining. |
llSetRemoteScriptAccessPin(pin) | Allows remote loading via pin. |
llRemoteLoadScriptPin(id, name, pin, running, start_param) | Loads a script into another prim by pin. |
Money & Commerce
| Function | What it does |
|---|---|
llSetPayPrice(default, quicklist) | Sets pay button values on the object. |
llRequestPermissions(id, PERMISSION_DEBIT) | Requests permission to take money. |
llTransferLindenDollars(id, amount) | Initiates an L$ transfer (requires debit permission). |
Particles
| Function | What it does |
|---|---|
llParticleSystem(params) | Starts/stops particle effects using a parameter list. |
llLinkParticleSystem(link, params) | Particles on a specific link in a linkset. |
llMakeSmoke(alpha, scale, glow) | Legacy helper to make smoke (deprecated style). |
Dataserver & Async
| Function | What it does |
|---|---|
llRequestInventoryData(name) | Asks for an asset’s key; result via dataserver event. |
llRequestAgentData(id, data) | Agent info (online, born date…); result async. |
llRequestUsername(id) | Gets username (async) from a key. |
llRequestDisplayName(id) | Gets display name (async). |
Text & Hover
| Function | What it does |
|---|---|
llSetText(text, color, alpha) | Floating hover text above the prim. |
llSetLinkPrimitiveParamsFast(link, params) | Fast bulk param changes; good for frequent updates. |
Teleport & Sit
| Function | What it does |
|---|---|
llSitTarget(offset, rot) | Defines where an avatar sits on the prim. |
llUnSit(av) | Unsits an avatar from the object. |
llTeleportAgent(av, sim, pos, look) | Teleports an avatar (needs experience & perms). |
llTeleportAgentGlobalCoords(av, global, look) | Teleports via global coords (experience required). |
OSSL (OpenSimulator Extensions)
| Function | What it does |
|---|---|
osTeleportAgent(...) | Teleports a specified avatar to a region/position (permissions required). |
osTeleportOwner(...) | Teleports the object owner to a target location. |
osTeleportAgentHome(key) | Sends an avatar back to their home location. |
osMessageObject(key, msg) | Sends a direct message to another object by UUID. |
osRegionSayTo(key, chan, msg) | Sends chat to a specific avatar anywhere in-region. |
osSetDynamicTextureData(params, data) | Renders dynamic image/text onto the prim using data (e.g., drawing commands). |
osSetDynamicTextureDataFace(params, data, face) | Same as above, but targets a specific face. |
osSetDynamicTextureURL(url, params) | Applies image from a URL as a dynamic texture. |
osSetDynamicTextureURLFace(url, params, face) | URL-based dynamic texture on a single face. |
osNpcCreate(first, last, pos, clone) | Creates an NPC at a position (optionally cloned from an avatar). |
osNpcRemove(key) | Deletes an NPC by UUID. |
osNpcMoveToTarget(key, pos, speed) | Moves an NPC toward a target position. |
osNpcSay(key, msg) | Makes an NPC speak in chat. |
osAvatarName2Key(name) | Resolves “First Last” (or single username) to a UUID. |
osKey2Name(key) | Gets an avatar’s name from UUID. |
osGetAgents() | Returns a list of avatar UUIDs currently in the region. |
osGetGridName() | Returns the grid’s name (e.g., “OSGrid”). |
osGetGridGatekeeperURI() | Gets the grid’s gatekeeper URI for Hypergrid. |
osGetRegionSize() | Returns the region size vector (supports varregions). |
osFormatString(fmt, args...) | printf-style string formatting helper. |
Note: OSSL functions require specific estate permissions (“ThreatLevel”) and may be disabled on your grid. Check with your grid/estate owner if a call returns an error.
Notes
- This is a compact list; LSL has many more functions and constants.
- Some functions require specific permissions, parcel rights, or an Experience.
- Async calls return results in events like
dataserver,http_response,timer, etc.