Functions

Functions Defined

A function can be thought of as a machine into which input is provided, and which returns output. By using functions, the same blocks of code can be used over and over again, simply by referencing them.

LSL and OSSL come with hundreds of built-in functions that allow scripts and objects to interact with their environment. The built-in functions start with “ll” or “os”.

This example calls the llSay function which is used to send chat text to the specified channel.

llSay(0, "Hello world!");

The user can define functions (even with return values) as long as the name does not conflict with a reserved word, a built-in constant, or a built-in function.

Note: As LSL and OSSL have matured, several functions have been deprecated. Be sure to use the correct function since deprecated functions are unreliable and may be removed completely at a future date.

 

LSL Functions Status

Updated: October 28, 2014 using OpenSim-1a24b7f/r25290 (0.8-post-fixes)

The update will reflect ALL current LL-LSL Functions including those which are not supported in OpenSimulator.
These unsupported functions (notably Pathfinding etc) are there to show what is implemented & not.

Function Implemented Comments 
llSetLinkAlphaYes-2760
llSetLinkColorYes-2760
llSetTextYes-2760
llGetLinkKeyYes-2754
llGetLinkNameYes-2754
llGetLinkNumberYes-2754
llGetNumberOfPrimsYes-2754
llList2CSVYes-2754
llList2FloatYes-2754
llList2IntegerYes-2754
llList2KeyYes-2754
llList2ListYes-2754
llList2RotYes-2754
llList2StringYes-2754
llList2VectorYes-2754
llListenRemoveYes-2754
llListInsertListYes-2754
llGetAndResetTimeYes-2750
llGetListLengthYes-2750
llGetRegionTimeDilationYes-2750
llGetTimeYes-2750
llResetTimeYes-2750
llGetKeyYes-2688
llGetObjectDescYes-2688
llGetObjectNameYes-2688
llGetOwnerYes-2688
llGetPosYes-2688
llGetRegionCornerYes-2688
llGetRegionNameYes-2688
llGetRotYes-2688
llGetScaleYes-2688
llGetSimulatorHostnameYes-2688
llGetUnixTimeYes-2688
llListenYes-2688
llPowYes-2688
llResetScriptYes-2688
llSetAlphaYes-2688
llSetColorYes-2688
llSetRotYes-2688
llSetScaleYes-2688
llSetTextureYes-2688
llSinYes-2688
llSqrtYes-2688
llTanYes-2688
llVecNormYes-2688
llAbsYes-2683
llAcosYes-2683
llAsinYes-2683
llAtan2Yes-2683
llBase64ToStringYes-2683
llCeilYes-2683
llDieYes-2683
llFabsYes-2683
llFloorYes-2683
llFrandYes-2683
llGetCreatorYes-2683
llGetDateYes-2683
llGetGMTclockYes-2683
llGetTextureYes-2683
llGetTextureOffsetYes-2683
llGetTextureRotYes-2683
llGetTextureScaleYes-2683
llOffsetTextureYes-2683
llRotateTextureYes-2683
llScaleTextureYes-2683
llInstantMessageYes1
llCosYes(2683) llSay(0,(string)llCos(100));
llWhisperYes(2688) (but limited to 1023 chars)
llShoutYes(2688) (limits 1023 chars)
llSetPosYes(2688) (now with limitation of 10m as in sl)
llSetTimerEventYes(2688) (uses Timer plugin!)
llSayYes(2688)(limted to 1023 chars)
llGetLocalPosYes(2809) Reports parent pos in sim, not child
llSetParcelMusicURLYes(2826) Land update not sending changed streams to client.
llPlaySoundYes(6879) Behavior varies among event handlers.
llGiveInventoryPartial(Does not send to avatars in other sims)
llSetLinkPrimitiveParamsFastPartial* does not highlight like normal. (in connection to llGetLinkPrimitiveParams), together they rip linked prims apart when the item is worn. but not when it is dropped on the ground - PRIM_NORMAL, PRIM_SPECULAR and PRIM_ALPHA_MODE not yet implemented
llEdgeOfWorldYes** Megaregion = No
llAvatarOnLinkSitTargetPartial* Requires testing and Verification
llCastRayPartial* Requires testing and Verification
llClearLinkMediaPartial* Requires testing and Verification
llClearPrimMediaPartial* Requires testing and Verification
llDetectedTouchBinormalPartial* Requires testing and Verification
llDetectedTouchNormalPartial* Requires testing and Verification
llDetectedTouchUVPartial* Requires testing and Verification
llGetDisplayNamePartial* Requires testing and Verification
llGetLinkMediaPartial* Requires testing and Verification
llGetParcelMusicURLPartial* Requires testing and Verification
llGetPrimMediaParamsPartial* Requires testing and Verification
llGetRegionAgentCountPartial* Requires testing and Verification
llGetUsernamePartial* Requires testing and Verification
llManageEstateAccessPartial* Requires testing and Verification
llRequestDisplayNamePartial* Requires testing and Verification
llRequestUsernamePartial* Requires testing and Verification
llSetPrimMediaParamsPartial* Requires testing and Verification
llSHA1StringPartial* Requires testing and Verification
llDetectedTouchSTYes* Tested in OpenSim 0.8.0 Dev
llGetLinkPrimitiveParams** does not highlight like normal. together with llSetLinkPrimitiveParamsFast, they rip linked prims apart when the item is worn. but not when it is dropped on the ground - PRIM_NORMAL, PRIM_SPECULAR and PRIM_ALPHA_MODE not yet implemented
llGenerateKeyYes0.7.4 onwards. From commit 9c2a73b61ef (30th April 2012)
llSetObjectDescYes100% implemented
llSetObjectNameYes100% implemented
llGetColorPartialALLSIDES returns default texture, not average, anything trying to grab more than 3 sides fails per example 2
llGetAlphaPartialALLSIDES returns default texture, not sum, specific faces display correctly
llGetEnergyPartialAlways returns 1.0f
llGetRegionFPSPartialAlways returns 10.0f
llMakeExplosionDeprecated NoDeprecated
llMakeFireDeprecated NoDeprecated
llMakeFountainDeprecated NoDeprecated
llMakeSmokeDeprecated NoDeprecated
llReleaseCameraDeprecated NoDeprecated
llSetPrimURLDeprecated NoDeprecated
llSoundDeprecated NoDeprecated
llSoundPreloadDeprecated NoDeprecated
llStopPointAtDeprecated NoDeprecated
llTakeCameraDeprecated NoDeprecated
llXorBase64StringsDeprecated NoDeprecated
llRemoteLoadScriptDeprecated NoDeprecated (from LSL Wiki)
llSetStatusYesDoesn't honor STATUS_BLOCK_GRAB STATUS_RETURN_AT_EDGE STATUS_SANDBOX
llVolumeDetectYesImplementation needs ODE to work, other physics engine only have a stub for this. Persistance of this feature (survive region restart) only implemented for SQLite. Semantics are slightly different to SL (switching off phantom via GUI also resets VolDet-status to off)
llAgentInExperienceNoLL Experience Only. Not in OpenSimulator
llCreateKeyValueNoLL Experience Only. Not in OpenSimulator
llDataSizeKeyValueNoLL Experience Only. Not in OpenSimulator
llDeleteKeyValueNoLL Experience Only. Not in OpenSimulator
llGetExperienceDetailsNoLL Experience Only. Not in OpenSimulator
llGetExperienceErrorMessageNoLL Experience Only. Not in OpenSimulator
llKeyCountKeyValueNoLL Experience Only. Not in OpenSimulator
llKeysKeyValueNoLL Experience Only. Not in OpenSimulator
llReadKeyValueNoLL Experience Only. Not in OpenSimulator
llRequestExperiencePermissionsNoLL Experience Only. Not in OpenSimulator
llUpdateKeyValueNoLL Experience Only. Not in OpenSimulator
llCreateCharacterNoLL Pathfinding Only. Not in OpenSimulator
llDeleteCharacterNoLL Pathfinding Only. Not in OpenSimulator
llEvadeNoLL Pathfinding Only. Not in OpenSimulator
llExecCharacterCmdNoLL Pathfinding Only. Not in OpenSimulator
llFleeFromNoLL Pathfinding Only. Not in OpenSimulator
llGetClosestNavPointNoLL Pathfinding Only. Not in OpenSimulator
llGetStaticPathNoLL Pathfinding Only. Not in OpenSimulator
llNavigateToNoLL Pathfinding Only. Not in OpenSimulator
llPatrolPointsNoLL Pathfinding Only. Not in OpenSimulator
llPursueNoLL Pathfinding Only. Not in OpenSimulator
llUpdateCharacterNoLL Pathfinding Only. Not in OpenSimulator
llWanderWithinNoLL Pathfinding Only. Not in OpenSimulator
llGetMassYesMay not be identical to main grid, due to different physics engine
llListFindListYesNeeded for Kan-ed#11
llTakeControlsYesNeeded for Kan-ed#12
llRequestPermissionsYesNeeded for Kan-ed#12.
llGetPrimitiveParamsPartialNot available: PRIM_TYPE, PRIM_BUMP_SHINY, PRIM_FULLBRIGHT, PRIM_TEXGEN, PRIM_GLOW, PRIM_NORMAL, PRIM_SPECULAR, PRIM_ALPHA_MODE
llTextBoxYesOperational with Viewers that support it. V3 and above all do.
llGetObjectDetailsPartialParams [OBJECT_RUNNING_SCRIPT_COUNT, OBJECT_TOTAL_SCRIPT_COUNT, OBJECT_SCRIPT_MEMORY] not working
llSetLinkPrimitiveParamsYesPartial - PRIM_NORMAL, PRIM_SPECULAR and PRIM_ALPHA_MODE not yet implemented
llSetPrimitiveParamsYesPartial (it seems complete but needed extensive checking. Also types in list are not LSL conformant) Blackdog Ashbourne: PRIM_POSITION doesn't seem to work - certainly doesn't allow for a warpPos implementation - PRIM_NORMAL, PRIM_SPECULAR and PRIM_ALPHA_MODE not yet implemented
llGetSubStringPartialPartially working. Just reports wrong position in strings.
llGroundYesPartially... will not compile with llGetPos.
llGetGeometricCenterPartialPhysics engine reports as <0,0,0> currently
llGetFreeMemoryNoProbably pointless to implement
llGetAnimationOverrideNoRequires Implementation
llGetMaxScaleFactorNoRequires Implementation
llGetMinScaleFactorNoRequires Implementation
llJson2ListNoRequires Implementation
llJsonGetValueNoRequires Implementation
llJsonSetValueNoRequires Implementation
llJsonValueTypeNoRequires Implementation
llList2JsonNoRequires Implementation
llResetAnimationOverrideNoRequires Implementation
llSetAnimationOverrideNoRequires Implementation
llGetEnvNoRequires Implementation (Mar.01.2012)
llGetMassMKSNoRequires Implementation (Mar.01.2012)
llGetMemoryLimitNoRequires Implementation (Mar.01.2012)
llGetSPMaxMemoryNoRequires Implementation (Mar.01.2012)
llGetUsedMemoryNoRequires Implementation (Mar.01.2012)
llScriptProfilerNoRequires Implementation (Mar.01.2012)
llSetAngularVelocityNoRequires Implementation (Mar.01.2012)
llSetContentTypeNoRequires Implementation (Mar.01.2012)
llSetKeyframedMotionNoRequires Implementation (Mar.01.2012)
llSetMemoryLimitNoRequires Implementation (Mar.01.2012)
llSetVelocityNoRequires Implementation (Mar.01.2012)
llTransferLindenDollarsNoRequires Implementation (Mar.01.2012)
llGetStartParameterPartialReturns always 0! Same limitations as llSetStatus
llGetLinkNumberOfSidesYesSee LL's LSL wiki
llEuler2RotYesShould work now. Someone who understands the math, please
llParseString2ListYesSpacers are not parsed if separator list is empty
llGetSunDirectionYesSun fly on x axis and report 0 on zenith. Should fly on z axis and report 0 on horizon
llDetectedLinkNumberYestested at 2011.01.25 on 0.7.1 Dev
llGetHTTPHeaderYestested at 2011.01.25 on 0.7.1 Dev with XEngine
llVecDistYesTested in OpenSim 0.7.6 Dev
llVecMagYesTested in OpenSim 0.7.6 Dev
llHTTPResponseYesTested on 2011.01.25 with 0.7.1 Dev OS and xEngine
llSetRegionPosYesTested on the Kitely and Avacon grids.
llSleepYesThis function CAN lock script threads. This is a Partial Implementation. DO NOT USE! There are Mantii on it and it is a well known OpenSim buglet.
llRemoveInventoryYesThis function should be ported
llGetNotecardLinePartialThis is badly needed to read settings from notecards
llGetAgentLanguagePartialWorking as of 0.8.2.0 for local avatar only
llGiveMoneyYesWorks
llSensorRemoveYesWorks
llSensorYesWorks beyond 96m 🙂 tested past 1000m
llSensorRepeatYesWorks beyond 96m 🙂 tested past 1000m
llRotLookAtYesWorks different than SL (better?)
llSetBuoyancyYesWorks on free objects, does not make avatars buoyant with scripted attachments. The LSL wiki suggests using llSetPhysicsMaterial for better performance, but this is not implemented yet in OpenSim.
llLoopSoundYesWorks via UUID or Name, volume works too..
llRegionSayYesWorks with 1023 chars
llRegionSayToYesWorks with 1023 chars
llRezObjectYesWorks 🙂
llDialogYesworks, but appears on channel 0 as "User Name shouts: dialog message" instead of "User Name: dialog message".
llDetectedKeyYesworks.
llDetectedNameYesworks.
llDetectedOwnerYesworks.
llDetectedPosYesworks.
llDetectedTypeYesworks.
llGetScriptNameYesworks.
llGetScriptStateYesWorks.
llSetScriptStateYesWorks.
llSetTouchTextYesWorks.
llTargetOmegaYesWorks.
llTriggerSoundYesWorks.
llUnSitYesWorks.
llDetectedGrabPartialZ axis reads 100 + actual axis (was showing 129m when it was at 29m).
llAddToLandBanListYes
llAddToLandPassListYes
llAdjustSoundVolumeYes
llAllowInventoryDropYes
llAngleBetweenYes
llApplyImpulsePartial
llApplyRotationalImpulseNo
llAttachToAvatarNo
llAttachToAvatarTempUnkNown
llAvatarOnSitTargetYes
llAxes2RotYes
llAxisAngle2RotYes
llBase64ToIntegerYes
llBreakAllLinksYes
llBreakLinkYes
llClearCameraParamsYes
llCloseRemoteDataChannelYes
llCloudYes
llCollisionFilterNo
llCollisionSoundNo
llCollisionSpriteNo
llCreateLinkYes
llCSV2ListYes
llDeleteSubListYes
llDeleteSubStringYes
llDetachFromAvatarNo
llDetectedGroupNo
llDetectedRotYes
llDetectedTouchFaceYes
llDetectedTouchPosYes
llDetectedVelYes
llDumpList2StringYes
llEjectFromLandYes
llEmailYes
llEscapeURLYes
llForceMouselookYes
llGetAccelYes
llGetAgentInfoPartial
llGetAgentListYes
llGetAgentSizeYes
llGetAnimationYes
llGetAnimationListYes
llGetAttachedNo
llGetBoundingBoxPartial
llGetCameraPosYes
llGetCameraRotYes
llGetCenterOfMassNo
llGetForceYes
llGetFreeURLs
llGetInventoryCreatorYes
llGetInventoryKeyYes
llGetInventoryNameYes
llGetInventoryNumberYes
llGetInventoryPermMaskYes
llGetInventoryTypeYes
llGetLandOwnerAtYes
llGetListEntryTypeYes
llGetLocalRotYes
llGetNextEmailYes
llGetNumberOfNotecardLinesPartial
llGetNumberOfSidesYes
llGetObjectMassYes
llGetObjectPermMaskYes
llGetObjectPrimCountYes
llGetOmegaYes
llGetOwnerKeyYes
llGetParcelDetailsYes
llGetParcelFlagsYes
llGetParcelMaxPrimsYes
llGetParcelPrimCountYes
llGetParcelPrimOwnersYes
llGetPermissionsYes
llGetPermissionsKeyYes
llGetPhysicsMaterial
llGetRegionFlagsYes
llGetRootPositionYes
llGetRootRotationYes
llGetSimStats
llGetStatusYes
llGetTimeOfDayPartial
llGetTimestampYes
llGetTorqueNo
llGetVelYes
llGetWallclockYes
llGiveInventoryListYes
llGodLikeRezObjectNo
llGroundContourPartial
llGroundNormalPartial
llGroundRepelNo
llGroundSlopeYes
llHTTPRequestYes
llInsertStringYes
llIntegerToBase64Yes
llKey2NameYes
llLinkParticleSystemYes
llLinkSitTargetYes
llList2ListStridedYes
llListenControlYes
llListRandomizeYes
llListReplaceListYes
llListSortYes
llListStatisticsYes
llLoadURLYes
llLogYes
llLog10Yes
llLookAtNo
llLoopSoundMasterNo
llLoopSoundSlaveNo
llMapDestinationYes
llMD5StringYes
llMessageLinkedYes
llMinEventDelayNo
llModifyLandYes
llModPowYes
llMoveToTargetYes
llOpenRemoteDataChannelYes
llOverMyLandYes
llOwnerSayYes
llParcelMediaCommandListYes
llParcelMediaQueryYes
llParseStringKeepNullsYes
llParticleSystemYes
llPassCollisionsNo
llPassTouchesNo
llPlaySoundSlaveNo
llPointAtNo
llPreloadSoundYes
llPushObjectYes
llRefreshPrimURLNo
llReleaseControlsYes
llReleaseURLPartial
llRemoteDataReplyYes
llRemoteDataSetRegionNo
llRemoteLoadScriptPinYes
llRemoveFromLandBanListYes
llRemoveFromLandPassListYes
llRemoveVehicleFlagsNo
llRequestAgentDataNo
llRequestInventoryDataYes
llRequestSecureURLPartial
llRequestSimulatorDataYes
llRequestURLYes
llResetLandBanListYes
llResetLandPassListYes
llResetOtherScriptYes
llReturnObjectsByIDNo
llReturnObjectsByOwnerNo
llRezAtRootYes
llRot2AngleYes
llRot2AxisYes
llRot2EulerYes
llRot2FwdYes
llRot2LeftYes
llRot2UpYes
llRotBetweenYes
llRotTargetNo
llRotTargetRemoveNo
llRoundYes
llSameGroupYes
llScriptDangerYes
llSendRemoteDataYes
llSetCameraAtOffsetYes
llSetCameraEyeOffsetYes
llSetCameraParamsYes
llSetClickActionYes
llSetDamageNo
llSetForceYes
llSetForceAndTorqueNo
llSetHoverHeightYes
llSetInventoryPermMaskNo
llSetLinkCameraNo
llSetLinkMedia
llSetLinkTextureYes
llSetLinkTextureAnimYes
llSetLocalRotYes
llSetObjectPermMaskYes
llSetPayPriceYes
llSetPhysicsMaterial
llSetRemoteScriptAccessPinYes
llSetSitTextYes
llSetSoundQueueingNo
llSetSoundRadiusYes
llSetTextureAnimYes
llSetTorqueNo
llSetVehicleFlagsNo
llSetVehicleFloatParamYes
llSetVehicleRotationParamYes
llSetVehicleTypeYes
llSetVehicleVectorParamYes
llSitTargetYes
llStartAnimationYes
llStopAnimationYes
llStopHoverYes
llStopLookAtNo
llStopMoveToTargetYes
llStopSoundYes
llStringLengthYes
llStringToBase64Yes
llStringTrimYes
llSubStringIndexYes
llTargetYes
llTargetRemoveYes
llTeleportAgentYes
llTeleportAgentGlobalCoordsYes
llTeleportAgentHomeYes
llToLowerYes
llToUpperYes
llTriggerSoundLimitedNo
llUnescapeURLYes
llWaterYes
llWindYes
llXorBase64StringsCorrectYes

From Opensimulator.org with changes made for Brevity and clarity.  Their license is here: