mirror of
https://github.com/Sei-Lisa/LSL-PyOptimizer
synced 2025-07-01 15:48:21 +00:00
llSignRSA and llVerifyRSA had an algorithm parameter. Not checked, but it's presumable that an error will be emitted if the alg is not among the supported ones.
1824 lines
40 KiB
Text
1824 lines
40 KiB
Text
# Function properties table
|
|
#
|
|
# Copyright © 2015-2019 Sei Lisa. All rights reserved.
|
|
#
|
|
# This file is part of LSL PyOptimizer.
|
|
#
|
|
# LSL PyOptimizer is free software: you can redistribute it and/or
|
|
# modify it under the terms of the GNU General Public License as
|
|
# published by the Free Software Foundation, either version 3 of the
|
|
# License, or (at your option) any later version.
|
|
#
|
|
# LSL PyOptimizer is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with LSL PyOptimizer. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
# This file provides information to the optimizer about the behaviour of
|
|
# functions and events. This knowledge can help perform a better job at
|
|
# optimizing. All functions and events present in builtins.txt must be here
|
|
# and vice versa.
|
|
|
|
# Flags are entered with a dash at the beginning of the line, then a space,
|
|
# then the flag. Flags apply to the function they are under. There can be none
|
|
# before the first function.
|
|
#
|
|
# Available flags:
|
|
#
|
|
# stable:
|
|
# Two successive calls with the same parameters are assumed to return
|
|
# the same results in most reasonable cases. When it's stable and SEF
|
|
# it's posible to simplify two identical calls into one. Example:
|
|
# llGetPermissions(). Counterexample: llFrand(). This is the default;
|
|
# unstable functions must be marked as such. Does not apply to void
|
|
# functions. This flag is not implemented; 'unstable' is.
|
|
#
|
|
# unstable:
|
|
# Not stable. This flag IS implemented.
|
|
#
|
|
# strlen:
|
|
# Marks the function as accepting one unique parameter of type string,
|
|
# and returning 0 is equivalent to the parameter being an empty string.
|
|
#
|
|
# detect:
|
|
# Marks the function/event as being a detection one.
|
|
#
|
|
# touch:
|
|
# Marks the event as being a touch event.
|
|
#
|
|
# grab:
|
|
# Marks the event as enabling grab detection.
|
|
#
|
|
# delay <value>:
|
|
# Function has a delay.
|
|
#
|
|
# SEF [if <condition>]:
|
|
# Side-effect free. The function has no side effects when executed,
|
|
# which means that when used in a situation where it does nothing,
|
|
# it can be removed without affecting execution. Example:
|
|
# llGetNumberOfPrims(). All functions with delay have a side effect
|
|
# (the delay itself).
|
|
#
|
|
# With if <condition>, the function is SEF if the parameters are
|
|
# found to meet the condition. Syntax of <condition> is explained below.
|
|
#
|
|
# min:
|
|
# Applied to functions that return integer or float. Specifies the
|
|
# minimum value it may return. If not present, assume the minimum
|
|
# possible (-inf for floats, -2147483648 for integers). Use like this:
|
|
#
|
|
# - min <min value>
|
|
#
|
|
# max:
|
|
# Like min, but for the maximum value.
|
|
#
|
|
# listto:
|
|
# Identifies the function as a list-extracting function, for use with
|
|
# lazy lists. It needs an LSL type as a parameter.
|
|
#
|
|
# return <value> [if <condition>]:
|
|
# Self-explanatory. There can be several; they are evaluated in order.
|
|
# <value> can be a parameter or a LSL constant. <condition> is explaned
|
|
# below.
|
|
#
|
|
# <condition>
|
|
# Subset of LSL expressions using only (, ), ==, !=, <, <=, >, >=,
|
|
# &&, ||, constants, function parameters and one function. As an extension,
|
|
# Python-like operator chaining works, e.g. a < b < c or a == b == c.
|
|
# && has more priority than ||.
|
|
# The type of comparisons is bool and can't be used as integer.
|
|
# Lists are compared for equal. Elements in lists, vectors and
|
|
# rotations must be constants.
|
|
#
|
|
# ['<' and '>' need spaces around them when they are comparisons;
|
|
# vectors need to have no space after '<' or before '>'.] -> Let's not,
|
|
# and see what happens.
|
|
#
|
|
# Strings are automatically type cast to key when necessary, and integers
|
|
# to floats, but not vice versa. Function bool nulluuid(key k) is allowed.
|
|
#
|
|
# There's a pseudo-parameter of type string that is always available:
|
|
# event (the event where the function is called, if known; else "")
|
|
|
|
# A comment like this:
|
|
#
|
|
# physics caveat
|
|
#
|
|
# means that tests show it's apparently stable because physics are
|
|
# recomputed every frame, and the frame doesn't change that often.
|
|
|
|
integer llAbs(integer val)
|
|
- SEF
|
|
- min 0
|
|
|
|
float llAcos(float val)
|
|
- SEF
|
|
|
|
void llAddToLandBanList(key avatar, float hours)
|
|
- delay 0.1
|
|
|
|
void llAddToLandPassList(key avatar, float hours)
|
|
- delay 0.1
|
|
|
|
void llAdjustSoundVolume(float volume)
|
|
- delay 0.1
|
|
|
|
integer llAgentInExperience(key agent)
|
|
- SEF
|
|
- min 0
|
|
- max 1
|
|
|
|
void llAllowInventoryDrop(integer add)
|
|
|
|
float llAngleBetween(rotation a, rotation b)
|
|
- SEF
|
|
|
|
void llApplyImpulse(vector force, integer local)
|
|
|
|
void llApplyRotationalImpulse(vector force, integer local)
|
|
|
|
float llAsin(float val)
|
|
- SEF
|
|
|
|
float llAtan2(float y, float x)
|
|
- SEF
|
|
|
|
void llAttachToAvatar(integer attach_point)
|
|
|
|
void llAttachToAvatarTemp(integer attach_point)
|
|
|
|
key llAvatarOnLinkSitTarget(integer link)
|
|
- SEF
|
|
- return "00000000-0000-0000-0000-000000000000" if link < -2147483647 || link > 256
|
|
|
|
key llAvatarOnSitTarget()
|
|
- SEF
|
|
|
|
rotation llAxes2Rot(vector fwd, vector left, vector up)
|
|
- SEF
|
|
|
|
rotation llAxisAngle2Rot(vector axis, float angle)
|
|
- SEF
|
|
|
|
integer llBase64ToInteger(string str)
|
|
# While it's unstable for some strings, we ignore that part.
|
|
- SEF
|
|
|
|
string llBase64ToString(string str)
|
|
- SEF
|
|
|
|
void llBreakAllLinks()
|
|
|
|
void llBreakLink(integer linknum)
|
|
- SEF if linknum > 256
|
|
|
|
list llCSV2List(string src)
|
|
- SEF
|
|
|
|
list llCastRay(vector start, vector end, list params)
|
|
- SEF
|
|
|
|
integer llCeil(float val)
|
|
- SEF
|
|
|
|
void llClearCameraParams()
|
|
|
|
void llClearExperiencePermissions(key agent)
|
|
|
|
integer llClearLinkMedia(integer link, integer face)
|
|
- min 0
|
|
- max 2001
|
|
- SEF if link > 256 || link < -2147483647
|
|
- return 0 if link < -2147483647 || link > 256
|
|
|
|
integer llClearPrimMedia(integer face)
|
|
- delay 1.0
|
|
- min 0
|
|
- max 2001
|
|
|
|
void llCloseRemoteDataChannel(key channel)
|
|
- delay 1.0
|
|
|
|
float llCloud(vector offset)
|
|
- SEF
|
|
- min 0
|
|
- max 0
|
|
- return 0
|
|
|
|
void llCollisionFilter(string name, key id, integer accept)
|
|
|
|
void llCollisionSound(string impact_sound, float impact_volume)
|
|
|
|
void llCollisionSprite(string impact_sprite)
|
|
- SEF
|
|
|
|
float llCos(float theta)
|
|
- SEF
|
|
- min -1
|
|
- max 1
|
|
|
|
void llCreateCharacter(list options)
|
|
|
|
key llCreateKeyValue(string k, string v)
|
|
- unstable
|
|
|
|
void llCreateLink(key target, integer parent)
|
|
- delay 1.0
|
|
|
|
key llDataSizeKeyValue()
|
|
- unstable
|
|
|
|
void llDeleteCharacter()
|
|
|
|
key llDeleteKeyValue(string k)
|
|
- unstable
|
|
|
|
list llDeleteSubList(list src, integer start, integer end)
|
|
- SEF
|
|
|
|
string llDeleteSubString(string src, integer start, integer end)
|
|
- SEF
|
|
|
|
void llDetachFromAvatar()
|
|
|
|
vector llDetectedGrab(integer number)
|
|
- detect
|
|
- SEF
|
|
# llDetectedGrab() only works for touch(), not for touch_start() etc.
|
|
- return <0,0,0> if event != "" && event != "touch" || number < 0 || number > 15
|
|
|
|
integer llDetectedGroup(integer number)
|
|
- detect
|
|
- SEF
|
|
- min 0
|
|
- max 1
|
|
- return 0 if event != "" && event != "touch" && event != "touch_start" && event != "touch_end" && event != "collision" && event != "collision_start" && event != "collision_end" && event != "sensor" || number < 0 || number > 15
|
|
|
|
key llDetectedKey(integer number)
|
|
- detect
|
|
- SEF
|
|
- return "00000000-0000-0000-0000-000000000000" if event != "" && event != "touch" && event != "touch_start" && event != "touch_end" && event != "collision" && event != "collision_start" && event != "collision_end" && event != "sensor" || number < 0 || number > 15
|
|
|
|
integer llDetectedLinkNumber(integer number)
|
|
- detect
|
|
- SEF
|
|
- min 0
|
|
- max 256
|
|
- return 0 if event != "" && event != "touch" && event != "touch_start" && event != "touch_end" && event != "collision" && event != "collision_start" && event != "collision_end" && event != "sensor" || number < 0 || number > 15
|
|
|
|
string llDetectedName(integer number)
|
|
- detect
|
|
- SEF
|
|
- return "00000000-0000-0000-0000-000000000000" if event != "" && event != "touch" && event != "touch_start" && event != "touch_end" && event != "collision" && event != "collision_start" && event != "collision_end" && event != "sensor" || number < 0 || number > 15
|
|
|
|
key llDetectedOwner(integer number)
|
|
- detect
|
|
- SEF
|
|
- return "00000000-0000-0000-0000-000000000000" if event != "" && event != "touch" && event != "touch_start" && event != "touch_end" && event != "collision" && event != "collision_start" && event != "collision_end" && event != "sensor" || number < 0 || number > 15
|
|
|
|
vector llDetectedPos(integer number)
|
|
- detect
|
|
- SEF
|
|
- return <0,0,0> if event != "" && event != "touch" && event != "touch_start" && event != "touch_end" && event != "collision" && event != "collision_start" && event != "collision_end" && event != "sensor" || number < 0 || number > 15
|
|
|
|
rotation llDetectedRot(integer number)
|
|
- detect
|
|
- SEF
|
|
- return <0,0,0,1> if event != "" && event != "touch" && event != "touch_start" && event != "touch_end" && event != "collision" && event != "collision_start" && event != "collision_end" && event != "sensor" || number < 0 || number > 15
|
|
|
|
vector llDetectedTouchBinormal(integer number)
|
|
- detect
|
|
- SEF
|
|
- return <0,0,0> if event != "" && event != "touch" && event != "touch_start" && event != "touch_end" || number < 0 || number > 15
|
|
|
|
integer llDetectedTouchFace(integer number)
|
|
- detect
|
|
- SEF
|
|
- min -1
|
|
- max 8
|
|
- return <0,0,0> if event != "" && event != "touch" && event != "touch_start" && event != "touch_end" || number < 0 || number > 15
|
|
|
|
vector llDetectedTouchNormal(integer number)
|
|
- detect
|
|
- SEF
|
|
- return <0,0,0> if event != "" && event != "touch" && event != "touch_start" && event != "touch_end" || number < 0 || number > 15
|
|
|
|
vector llDetectedTouchPos(integer number)
|
|
- detect
|
|
- SEF
|
|
- return <0,0,0> if event != "" && event != "touch" && event != "touch_start" && event != "touch_end" || number < 0 || number > 15
|
|
|
|
vector llDetectedTouchST(integer number)
|
|
- detect
|
|
- SEF
|
|
- return <0,0,0> if event != "" && event != "touch" && event != "touch_start" && event != "touch_end" && event != "collision" && event != "collision_start" && event != "collision_end" && event != "sensor" || number < 0 || number > 15
|
|
- return <-1,-1,0> if (event == "collision" || event == "collision_start" || event == "collision_end" || event == "sensor") && number == 0
|
|
|
|
vector llDetectedTouchUV(integer number)
|
|
- detect
|
|
- SEF
|
|
- return <0,0,0> if event != "" && event != "touch" && event != "touch_start" && event != "touch_end" && event != "collision" && event != "collision_start" && event != "collision_end" && event != "sensor" || number < 0 || number > 15
|
|
- return <-1,-1,0> if (event == "collision" || event == "collision_start" || event == "collision_end" || event == "sensor") && number == 0
|
|
|
|
integer llDetectedType(integer number)
|
|
- detect
|
|
- SEF
|
|
- min 0
|
|
- max 15
|
|
- return 0 if event != "" && event != "touch" && event != "touch_start" && event != "touch_end" && event != "collision" && event != "collision_start" && event != "collision_end" && event != "sensor" || number < 0 || number > 15
|
|
|
|
vector llDetectedVel(integer number)
|
|
- detect
|
|
- SEF
|
|
- return <0,0,0> if event != "" && event != "touch" && event != "touch_start" && event != "touch_end" && event != "collision" && event != "collision_start" && event != "collision_end" && event != "sensor" || number < 0 || number > 15
|
|
|
|
void llDialog(key avatar, string message, list buttons, integer chat_channel)
|
|
- delay 1.0
|
|
|
|
void llDie()
|
|
|
|
string llDumpList2String(list src, string separator)
|
|
- SEF
|
|
|
|
integer llEdgeOfWorld(vector pos, vector dir)
|
|
- SEF
|
|
|
|
void llEjectFromLand(key avatar)
|
|
|
|
void llEmail(string address, string subject, string message)
|
|
- delay 20.0
|
|
|
|
string llEscapeURL(string url)
|
|
- SEF
|
|
|
|
rotation llEuler2Rot(vector v)
|
|
- SEF
|
|
|
|
void llEvade(key target, list options)
|
|
|
|
void llExecCharacterCmd(integer cmd, list options)
|
|
|
|
float llFabs(float val)
|
|
- SEF
|
|
- min 0
|
|
|
|
void llFleeFrom(vector source, float radius, list options)
|
|
|
|
integer llFloor(float val)
|
|
- SEF
|
|
|
|
void llForceMouselook(integer mouselook)
|
|
|
|
float llFrand(float mag)
|
|
- unstable
|
|
- SEF
|
|
# It's not really SEF, in that it supposedly updates the internal state,
|
|
# but assuming it's actually SEF is safe because the seed is unknown.
|
|
|
|
key llGenerateKey()
|
|
- unstable
|
|
- SEF
|
|
|
|
vector llGetAccel()
|
|
# physics caveat
|
|
#- unstable
|
|
- SEF
|
|
|
|
integer llGetAgentInfo(key id)
|
|
- SEF
|
|
- return 0 if nulluuid(id)
|
|
|
|
string llGetAgentLanguage(key avatar)
|
|
- SEF
|
|
- return "" if nulluuid(id)
|
|
|
|
list llGetAgentList(integer scope, list options)
|
|
- SEF
|
|
- return "INVALID_SCOPE" if scope != 1 && scope != 2 && scope != 4
|
|
|
|
vector llGetAgentSize(key id)
|
|
- SEF
|
|
- return <0,0,0> if nulluuid(id)
|
|
|
|
float llGetAlpha(integer face)
|
|
- SEF
|
|
- return 1 if face > 8
|
|
|
|
float llGetAndResetTime()
|
|
- unstable
|
|
|
|
string llGetAnimation(key id)
|
|
- SEF
|
|
- return "" if nulluuid(id)
|
|
|
|
list llGetAnimationList(key id)
|
|
- SEF
|
|
- return "" if nulluuid(id)
|
|
|
|
string llGetAnimationOverride(string anim_state)
|
|
# may err, therefore not SEF
|
|
|
|
integer llGetAttached()
|
|
- SEF
|
|
- min 0
|
|
- max 55
|
|
|
|
list llGetAttachedList(key agent)
|
|
- SEF
|
|
- return ["NOT FOUND"] if nulluuid(agent)
|
|
|
|
list llGetBoundingBox(key object)
|
|
- SEF
|
|
- return [] if nulluuid(object)
|
|
|
|
vector llGetCameraPos()
|
|
# it errs therefore not SEF
|
|
|
|
rotation llGetCameraRot()
|
|
# it errs therefore not SEF
|
|
|
|
vector llGetCenterOfMass()
|
|
- SEF
|
|
|
|
list llGetClosestNavPoint(vector point, list options)
|
|
# Claimed to have a delay, but such delay is 1 frame (?)
|
|
- SEF
|
|
|
|
vector llGetColor(integer face)
|
|
- SEF
|
|
- return <1,1,1> if face > 8
|
|
|
|
key llGetCreator()
|
|
- SEF
|
|
|
|
string llGetDate()
|
|
- SEF
|
|
|
|
integer llGetDayLength()
|
|
- SEF
|
|
|
|
integer llGetDayOffset()
|
|
- SEF
|
|
|
|
string llGetDisplayName(key id)
|
|
- SEF
|
|
- return "" if nulluuid(id)
|
|
|
|
float llGetEnergy()
|
|
# physics caveat
|
|
#- unstable
|
|
- SEF
|
|
- min 0
|
|
- max 1
|
|
|
|
string llGetEnv(string name)
|
|
- SEF
|
|
- return "" if name == ""
|
|
|
|
list llGetEnvironment(vector pos, list params)
|
|
# presumed:
|
|
- SEF
|
|
# TODO: not used yet, check if it has more properties.
|
|
# Possibly a candidate for lslfuncopt.py (check).
|
|
|
|
list llGetExperienceDetails(key experience_id)
|
|
- SEF
|
|
|
|
string llGetExperienceErrorMessage(integer value)
|
|
- SEF
|
|
- return "no error" if value == 0
|
|
- return "exceeded throttle" if value == 1
|
|
- return "experiences are disabled" if value == 2
|
|
- return "invalid parameters" if value == 3
|
|
- return "operation not permitted" if value == 4
|
|
- return "script not associated with an experience" if value == 5
|
|
- return "not found" if value == 6
|
|
- return "invalid experience" if value == 7
|
|
- return "experience is disabled" if value == 8
|
|
- return "experience is suspended" if value == 9
|
|
- return "unknown error" if value == 10
|
|
- return "experience data quota exceeded" if value == 11
|
|
- return "key-value store is disabled" if value == 12
|
|
- return "key-value store communication failed" if value == 13
|
|
- return "key doesn't exist" if value == 14
|
|
- return "retry update" if value == 15
|
|
- return "experience content rating too high" if value == 16
|
|
- return "not allowed to run in current location" if value == 17
|
|
- return "experience permissions request timed out" if value == 18
|
|
- return "unknown error id"
|
|
|
|
list llGetExperienceList(key agent)
|
|
- SEF
|
|
- return []
|
|
|
|
vector llGetForce()
|
|
- SEF
|
|
|
|
integer llGetFreeMemory()
|
|
- SEF
|
|
- min 0
|
|
- max 65536
|
|
|
|
integer llGetFreeURLs()
|
|
- SEF
|
|
- min 0
|
|
- max 65536
|
|
|
|
float llGetGMTclock()
|
|
- SEF
|
|
- min 0
|
|
- max 86399
|
|
|
|
vector llGetGeometricCenter()
|
|
- SEF
|
|
|
|
string llGetHTTPHeader(key request_id, string header)
|
|
- SEF
|
|
- return "" if nulluuid(request_id)
|
|
|
|
key llGetInventoryCreator(string item)
|
|
- SEF
|
|
|
|
key llGetInventoryKey(string name)
|
|
- SEF
|
|
- return "00000000-0000-0000-0000-000000000000" if name == ""
|
|
|
|
string llGetInventoryName(integer type, integer number)
|
|
- SEF
|
|
- return "" if type != -1 && type != 0 && type != 1 && type != 3 && type != 5 && type != 6 && type != 7 && type != 10 && type != 13 && type != 20 && type != 21 || number < 0
|
|
|
|
integer llGetInventoryNumber(integer type)
|
|
- SEF
|
|
- return 0 if type != -1 && type != 0 && type != 1 && type != 3 && type != 5 && type != 6 && type != 7 && type != 10 && type != 13 && type != 20 && type != 21
|
|
|
|
integer llGetInventoryPermMask(string item, integer mask)
|
|
- SEF
|
|
- return 0 if mask < 0 || mask > 4 || item == ""
|
|
|
|
# we've completed up to here
|
|
|
|
integer llGetInventoryType(string name)
|
|
- SEF
|
|
|
|
key llGetKey()
|
|
- SEF
|
|
|
|
key llGetLandOwnerAt(vector pos)
|
|
- SEF
|
|
|
|
key llGetLinkKey(integer linknumber)
|
|
- SEF
|
|
|
|
list llGetLinkMedia(integer link, integer face, list params)
|
|
- SEF
|
|
|
|
string llGetLinkName(integer linknumber)
|
|
- SEF
|
|
|
|
integer llGetLinkNumber()
|
|
- SEF
|
|
- min 0
|
|
|
|
integer llGetLinkNumberOfSides(integer link)
|
|
- SEF
|
|
|
|
list llGetLinkPrimitiveParams(integer linknumber, list rules)
|
|
- SEF
|
|
|
|
integer llGetListEntryType(list src, integer index)
|
|
- SEF
|
|
- min 0
|
|
- max 6
|
|
|
|
integer llGetListLength(list src)
|
|
- SEF
|
|
- min 0
|
|
|
|
vector llGetLocalPos()
|
|
# physics caveat
|
|
#- unstable
|
|
- SEF
|
|
|
|
rotation llGetLocalRot()
|
|
# physics caveat
|
|
#- unstable
|
|
- SEF
|
|
|
|
float llGetMass()
|
|
- SEF
|
|
|
|
float llGetMassMKS()
|
|
- SEF
|
|
|
|
float llGetMaxScaleFactor()
|
|
- SEF
|
|
|
|
integer llGetMemoryLimit()
|
|
- SEF
|
|
|
|
float llGetMinScaleFactor()
|
|
- SEF
|
|
|
|
vector llGetMoonDirection()
|
|
- SEF
|
|
|
|
rotation llGetMoonRotation()
|
|
- SEF
|
|
|
|
void llGetNextEmail(string address, string subject)
|
|
|
|
key llGetNotecardLine(string name, integer line)
|
|
- unstable
|
|
- delay 0.1
|
|
|
|
key llGetNumberOfNotecardLines(string name)
|
|
- unstable
|
|
- delay 0.1
|
|
|
|
integer llGetNumberOfPrims()
|
|
- SEF
|
|
- min 1
|
|
|
|
integer llGetNumberOfSides()
|
|
- SEF
|
|
- min 1
|
|
- max 9
|
|
|
|
list llGetObjectAnimationNames()
|
|
- SEF
|
|
|
|
string llGetObjectDesc()
|
|
- SEF
|
|
|
|
list llGetObjectDetails(key id, list params)
|
|
# physics caveat
|
|
#- unstable
|
|
- SEF
|
|
|
|
key llGetObjectLinkKey(key id, integer link)
|
|
- SEF
|
|
|
|
float llGetObjectMass(key id)
|
|
- SEF
|
|
|
|
string llGetObjectName()
|
|
- SEF
|
|
|
|
integer llGetObjectPermMask(integer mask)
|
|
- SEF
|
|
|
|
integer llGetObjectPrimCount(key object_id)
|
|
- SEF
|
|
- min 0
|
|
- max 256
|
|
- return 0 if nulluuid(object_id)
|
|
|
|
vector llGetOmega()
|
|
# physics caveat
|
|
#- unstable
|
|
- SEF
|
|
|
|
key llGetOwner()
|
|
- SEF
|
|
|
|
key llGetOwnerKey(key id)
|
|
- SEF
|
|
- return "00000000-0000-0000-0000-000000000000" if nulluuid(id)
|
|
|
|
list llGetParcelDetails(vector pos, list params)
|
|
- SEF
|
|
|
|
integer llGetParcelFlags(vector pos)
|
|
- SEF
|
|
|
|
integer llGetParcelMaxPrims(vector pos, integer sim_wide)
|
|
- SEF
|
|
- min 0
|
|
|
|
string llGetParcelMusicURL()
|
|
- SEF
|
|
|
|
integer llGetParcelPrimCount(vector pos, integer category, integer sim_wide)
|
|
- SEF
|
|
- min 0
|
|
|
|
list llGetParcelPrimOwners(vector pos)
|
|
- delay 2.0
|
|
|
|
integer llGetPermissions()
|
|
- SEF
|
|
|
|
key llGetPermissionsKey()
|
|
- SEF
|
|
|
|
list llGetPhysicsMaterial()
|
|
- SEF
|
|
|
|
vector llGetPos()
|
|
# physics caveat
|
|
#- unstable
|
|
- SEF
|
|
|
|
list llGetPrimMediaParams(integer face, list params)
|
|
- delay 1.0
|
|
|
|
list llGetPrimitiveParams(list params)
|
|
- delay 0.2
|
|
|
|
integer llGetRegionAgentCount()
|
|
- SEF
|
|
|
|
vector llGetRegionCorner()
|
|
- SEF
|
|
|
|
integer llGetRegionDayLength()
|
|
- SEF
|
|
|
|
integer llGetRegionDayOffset()
|
|
- SEF
|
|
|
|
float llGetRegionFPS()
|
|
- SEF
|
|
|
|
integer llGetRegionFlags()
|
|
- SEF
|
|
|
|
vector llGetRegionMoonDirection()
|
|
- SEF
|
|
|
|
rotation llGetRegionMoonRotation()
|
|
- SEF
|
|
|
|
string llGetRegionName()
|
|
- SEF
|
|
|
|
vector llGetRegionSunDirection()
|
|
- SEF
|
|
|
|
rotation llGetRegionSunRotation()
|
|
- SEF
|
|
|
|
float llGetRegionTimeDilation()
|
|
- SEF
|
|
|
|
vector llGetRootPosition()
|
|
# physics caveat
|
|
#- unstable
|
|
- SEF
|
|
|
|
rotation llGetRootRotation()
|
|
# physics caveat
|
|
#- unstable
|
|
- SEF
|
|
|
|
rotation llGetRot()
|
|
# physics caveat
|
|
#- unstable
|
|
- SEF
|
|
|
|
integer llGetSPMaxMemory()
|
|
- SEF
|
|
|
|
vector llGetScale()
|
|
- SEF
|
|
|
|
string llGetScriptName()
|
|
- SEF
|
|
|
|
integer llGetScriptState(string name)
|
|
- SEF
|
|
|
|
float llGetSimStats(integer stat_type)
|
|
- SEF
|
|
|
|
string llGetSimulatorHostname()
|
|
- delay 10.0
|
|
|
|
integer llGetStartParameter()
|
|
- SEF
|
|
|
|
list llGetStaticPath(vector start, vector end, float radius, list params)
|
|
# believed to be side-effect free
|
|
- SEF
|
|
|
|
integer llGetStatus(integer status)
|
|
- SEF
|
|
- min 0
|
|
- max 1
|
|
|
|
string llGetSubString(string src, integer start, integer end)
|
|
- SEF
|
|
|
|
vector llGetSunDirection()
|
|
- SEF
|
|
|
|
rotation llGetSunRotation()
|
|
- SEF
|
|
|
|
string llGetTexture(integer face)
|
|
- SEF
|
|
- return "00000000-0000-0000-0000-000000000000" if face > 8
|
|
|
|
vector llGetTextureOffset(integer face)
|
|
- SEF
|
|
- return <0,0,0> if face > 8
|
|
|
|
float llGetTextureRot(integer side)
|
|
- SEF
|
|
- return 0 if side > 8
|
|
|
|
vector llGetTextureScale(integer side)
|
|
- SEF
|
|
- return <0,0,0> if side > 8
|
|
|
|
float llGetTime()
|
|
- SEF
|
|
# It's stable within the same frame.
|
|
|
|
float llGetTimeOfDay()
|
|
- unstable
|
|
- SEF
|
|
- min 0
|
|
- max 86399.9921875
|
|
|
|
string llGetTimestamp()
|
|
- unstable
|
|
- SEF
|
|
|
|
vector llGetTorque()
|
|
- SEF
|
|
|
|
integer llGetUnixTime()
|
|
- SEF
|
|
|
|
integer llGetUsedMemory()
|
|
- unstable
|
|
- SEF
|
|
|
|
string llGetUsername(key id)
|
|
- SEF
|
|
|
|
vector llGetVel()
|
|
# physics caveat
|
|
#- unstable
|
|
- SEF
|
|
|
|
list llGetVisualParams(key id, list params)
|
|
- SEF
|
|
|
|
float llGetWallclock()
|
|
- SEF
|
|
- min 0
|
|
- max 86399
|
|
|
|
void llGiveInventory(key destination, string inventory)
|
|
# delay only applies if giving to avatars
|
|
# (delay is not important because it's not applied when SEF)
|
|
#- delay 2.0
|
|
- SEF if nulluuid(destination)
|
|
|
|
void llGiveInventoryList(key target, string folder, list inventory)
|
|
- delay 3.0
|
|
|
|
integer llGiveMoney(key destination, integer amount)
|
|
- min 0
|
|
- max 0
|
|
|
|
void llGodLikeRezObject(key inventory, vector pos)
|
|
|
|
float llGround(vector offset)
|
|
- SEF
|
|
- min 0
|
|
|
|
vector llGroundContour(vector offset)
|
|
- SEF
|
|
|
|
vector llGroundNormal(vector offset)
|
|
- SEF
|
|
|
|
void llGroundRepel(float height, integer water, float tau)
|
|
|
|
vector llGroundSlope(vector offset)
|
|
- SEF
|
|
|
|
key llHTTPRequest(string url, list parameters, string body)
|
|
- unstable
|
|
|
|
void llHTTPResponse(key request_id, integer status, string body)
|
|
|
|
string llInsertString(string dst, integer position, string src)
|
|
- SEF
|
|
|
|
void llInstantMessage(key user, string message)
|
|
- delay 2.0
|
|
|
|
string llIntegerToBase64(integer number)
|
|
- SEF
|
|
|
|
list llJson2List(string json)
|
|
- SEF
|
|
|
|
string llJsonGetValue(string json, list specifiers)
|
|
- SEF
|
|
|
|
string llJsonSetValue(string json, list specifiers, string value)
|
|
- SEF
|
|
|
|
string llJsonValueType(string json, list specifiers)
|
|
- SEF
|
|
|
|
string llKey2Name(key id)
|
|
- SEF
|
|
|
|
key llKeyCountKeyValue()
|
|
- unstable
|
|
|
|
key llKeysKeyValue(integer start, integer count)
|
|
- unstable
|
|
|
|
vector llLinear2sRGB(vector color)
|
|
- SEF
|
|
|
|
void llLinkParticleSystem(integer linknumber, list rules)
|
|
- SEF if linknumber > 256
|
|
|
|
void llLinkSitTarget(integer link, vector offset, rotation rot)
|
|
- SEF if link > 256
|
|
|
|
integer llLinksetDataAvailable()
|
|
- SEF
|
|
|
|
integer llLinksetDataCountKeys()
|
|
- SEF
|
|
|
|
integer llLinksetDataDelete(string key)
|
|
|
|
integer llLinksetDataDeleteProtected(string key, string password)
|
|
|
|
list llLinksetDataFindKeys(string pattern, integer start, integer count)
|
|
- SEF
|
|
|
|
list llLinksetDataListKeys(integer start, integer count)
|
|
- SEF
|
|
|
|
string llLinksetDataRead(string key)
|
|
- SEF
|
|
|
|
string llLinksetDataReadProtected(string key, string password)
|
|
- SEF
|
|
|
|
void llLinksetDataReset()
|
|
|
|
integer llLinksetDataWrite(string key, string value)
|
|
|
|
integer llLinksetDataWriteProtected(string key, string value, string password)
|
|
|
|
string llList2CSV(list src)
|
|
- SEF
|
|
|
|
float llList2Float(list src, integer index)
|
|
- SEF
|
|
- listto float
|
|
|
|
integer llList2Integer(list src, integer index)
|
|
- SEF
|
|
- listto integer
|
|
|
|
string llList2Json(string type, list values)
|
|
- SEF
|
|
|
|
key llList2Key(list src, integer index)
|
|
- SEF
|
|
- listto key
|
|
|
|
list llList2List(list src, integer start, integer end)
|
|
- SEF
|
|
- listto list
|
|
|
|
list llList2ListStrided(list src, integer start, integer end, integer stride)
|
|
- SEF
|
|
|
|
rotation llList2Rot(list src, integer index)
|
|
- SEF
|
|
- listto rotation
|
|
|
|
string llList2String(list src, integer index)
|
|
- SEF
|
|
- listto string
|
|
|
|
vector llList2Vector(list src, integer index)
|
|
- SEF
|
|
- listto vector
|
|
|
|
integer llListFindList(list src, list test)
|
|
- SEF
|
|
- min -1
|
|
|
|
list llListInsertList(list dest, list src, integer start)
|
|
- SEF
|
|
|
|
list llListRandomize(list src, integer stride)
|
|
- unstable
|
|
- SEF
|
|
|
|
list llListReplaceList(list dest, list src, integer start, integer end)
|
|
- SEF
|
|
|
|
list llListSort(list src, integer stride, integer ascending)
|
|
- SEF
|
|
|
|
float llListStatistics(integer operation, list src)
|
|
- SEF
|
|
|
|
integer llListen(integer channel, string name, key id, string msg)
|
|
|
|
void llListenControl(integer number, integer active)
|
|
- SEF if number == 0
|
|
|
|
void llListenRemove(integer number)
|
|
- SEF if number == 0
|
|
|
|
void llLoadURL(key avatar, string message, string url)
|
|
- delay 0.1
|
|
|
|
float llLog(float val)
|
|
- SEF
|
|
|
|
float llLog10(float val)
|
|
- SEF
|
|
|
|
void llLookAt(vector target, float strength, float damping)
|
|
|
|
void llLoopSound(string sound, float volume)
|
|
|
|
void llLoopSoundMaster(string sound, float volume)
|
|
|
|
void llLoopSoundSlave(string sound, float volume)
|
|
|
|
string llMD5String(string src, integer nonce)
|
|
- SEF
|
|
|
|
void llMakeExplosion(integer particles, float scale, float vel, float lifetime, float arc, string texture, vector offset)
|
|
- delay 0.1
|
|
|
|
void llMakeFire(integer particles, float scale, float vel, float lifetime, float arc, string texture, vector offset)
|
|
- delay 0.1
|
|
|
|
void llMakeFountain(integer particles, float scale, float vel, float lifetime, float arc, integer bounce, string texture, vector offset, float bounce_offset)
|
|
- delay 0.1
|
|
|
|
void llMakeSmoke(integer particles, float scale, float vel, float lifetime, float arc, string texture, vector offset)
|
|
- delay 0.1
|
|
|
|
integer llManageEstateAccess(integer action, key id)
|
|
# not SEF (generates errors on invalid action or key)
|
|
- min 0
|
|
- max 1
|
|
|
|
void llMapDestination(string simname, vector pos, vector look_at)
|
|
- delay 1.0
|
|
|
|
void llMessageLinked(integer linknum, integer num, string str, key id)
|
|
- SEF if linknum > 256
|
|
|
|
void llMinEventDelay(float delay)
|
|
|
|
integer llModPow(integer a, integer b, integer c)
|
|
- delay 1.0
|
|
|
|
void llModifyLand(integer action, integer brush)
|
|
|
|
void llMoveToTarget(vector target, float tau)
|
|
|
|
key llName2Key(string name)
|
|
- SEF
|
|
- return "00000000-0000-0000-0000-000000000000" if name == ""
|
|
|
|
void llNavigateTo(vector point, list options)
|
|
|
|
void llOffsetTexture(float u, float v, integer face)
|
|
- delay 0.2
|
|
|
|
void llOpenRemoteDataChannel()
|
|
- delay 1.0
|
|
|
|
integer llOverMyLand(key id)
|
|
- SEF
|
|
- min 0
|
|
- max 1
|
|
# assumed:
|
|
- return 0 if nulluuid(id)
|
|
|
|
void llOwnerSay(string msg)
|
|
|
|
void llParcelMediaCommandList(list command)
|
|
- delay 2.0
|
|
|
|
list llParcelMediaQuery(list query)
|
|
- delay 2.0
|
|
|
|
list llParseString2List(string src, list separators, list spacers)
|
|
- SEF
|
|
|
|
list llParseStringKeepNulls(string src, list separators, list spacers)
|
|
- SEF
|
|
|
|
void llParticleSystem(list rules)
|
|
|
|
void llPassCollisions(integer pass)
|
|
|
|
void llPassTouches(integer pass)
|
|
|
|
void llPatrolPoints(list points, list options)
|
|
|
|
void llPlaySound(string sound, float volume)
|
|
|
|
void llPlaySoundSlave(string sound, float volume)
|
|
|
|
void llPointAt(vector pos)
|
|
- SEF
|
|
|
|
float llPow(float base, float exponent)
|
|
- SEF
|
|
|
|
void llPreloadSound(string sound)
|
|
- delay 1.0
|
|
|
|
void llPursue(key target, list options)
|
|
|
|
void llPushObject(key id, vector impulse, vector ang_impulse, integer local)
|
|
|
|
key llReadKeyValue(string k)
|
|
- unstable
|
|
|
|
void llRefreshPrimURL()
|
|
# emits an error -> has side effects
|
|
- delay 20.0
|
|
|
|
void llRegionSay(integer channel, string msg)
|
|
# channel 0 emits an error -> not SEF
|
|
|
|
void llRegionSayTo(key target, integer channel, string msg)
|
|
|
|
void llReleaseCamera(key avatar)
|
|
- SEF
|
|
|
|
void llReleaseControls()
|
|
|
|
void llReleaseURL(string url)
|
|
- SEF if url == ""
|
|
|
|
void llRemoteDataReply(key channel, key message_id, string sdata, integer idata)
|
|
- delay 3.0
|
|
|
|
void llRemoteDataSetRegion()
|
|
|
|
void llRemoteLoadScript(key target, string name, integer running, integer start_param)
|
|
# emits an error -> has side effects
|
|
- delay 3.0
|
|
|
|
void llRemoteLoadScriptPin(key target, string name, integer pin, integer running, integer start_param)
|
|
- delay 3.0
|
|
|
|
void llRemoveFromLandBanList(key avatar)
|
|
- delay 0.1
|
|
|
|
void llRemoveFromLandPassList(key avatar)
|
|
- delay 0.1
|
|
|
|
void llRemoveInventory(string item)
|
|
|
|
void llRemoveVehicleFlags(integer flags)
|
|
|
|
integer llSetEnvironment(vector position, list params)
|
|
# not sure but we better choose the safest setting
|
|
- unstable
|
|
|
|
integer llReplaceEnvironment(vector position, string environment, integer track_no, integer day_length, integer day_offset)
|
|
# not sure but we better choose the safest setting
|
|
- unstable
|
|
|
|
key llRequestAgentData(key id, integer data)
|
|
- unstable
|
|
- delay 0.1
|
|
|
|
key llRequestDisplayName(key id)
|
|
- unstable
|
|
- SEF if nulluuid(id)
|
|
|
|
void llRequestExperiencePermissions(key agent, string name)
|
|
|
|
key llRequestInventoryData(string name)
|
|
- unstable
|
|
- delay 1.0
|
|
|
|
void llRequestPermissions(key agent, integer perm)
|
|
# if agent does not exist, it errs, so this is not true:
|
|
#- SEF if perm == 0
|
|
|
|
key llRequestSecureURL()
|
|
- unstable
|
|
|
|
key llRequestSimulatorData(string simulator, integer data)
|
|
- unstable
|
|
- delay 1.0
|
|
|
|
key llRequestURL()
|
|
- unstable
|
|
|
|
key llRequestUsername(key id)
|
|
- unstable
|
|
|
|
key llRequestUserKey(string name)
|
|
- unstable
|
|
|
|
void llResetAnimationOverride(string anim_state)
|
|
|
|
void llResetLandBanList()
|
|
- delay 0.1
|
|
|
|
void llResetLandPassList()
|
|
- delay 0.1
|
|
|
|
void llResetOtherScript(string name)
|
|
|
|
void llResetScript()
|
|
- stop
|
|
|
|
void llResetTime()
|
|
|
|
integer llReturnObjectsByID(list objects)
|
|
- min -5
|
|
- max 65536
|
|
|
|
integer llReturnObjectsByOwner(key owner, integer scope)
|
|
# assumed unstable
|
|
- unstable
|
|
- min -5
|
|
- max 65536
|
|
|
|
void llRezAtRoot(string inventory, vector pos, vector vel, rotation rot, integer param)
|
|
- delay 0.1
|
|
|
|
void llRezObject(string inventory, vector pos, vector vel, rotation rot, integer param)
|
|
- delay 0.1
|
|
|
|
float llRot2Angle(rotation rot)
|
|
- SEF
|
|
|
|
vector llRot2Axis(rotation rot)
|
|
- SEF
|
|
|
|
vector llRot2Euler(rotation q)
|
|
- SEF
|
|
|
|
vector llRot2Fwd(rotation q)
|
|
- SEF
|
|
|
|
vector llRot2Left(rotation q)
|
|
- SEF
|
|
|
|
vector llRot2Up(rotation q)
|
|
- SEF
|
|
|
|
rotation llRotBetween(vector v1, vector v2)
|
|
- SEF
|
|
|
|
void llRotLookAt(rotation target, float strength, float damping)
|
|
|
|
integer llRotTarget(rotation rot, float error)
|
|
- unstable
|
|
|
|
void llRotTargetRemove(integer number)
|
|
|
|
void llRotateTexture(float angle, integer face)
|
|
- delay 0.2
|
|
|
|
integer llRound(float val)
|
|
- SEF
|
|
|
|
string llSHA1String(string src)
|
|
- SEF
|
|
|
|
string llSHA256String(string src)
|
|
- SEF
|
|
|
|
integer llSameGroup(key id)
|
|
- SEF
|
|
- min 0
|
|
- max 1
|
|
|
|
void llSay(integer channel, string msg)
|
|
|
|
integer llScaleByFactor(float scaling_factor)
|
|
- unstable
|
|
- min 0
|
|
- max 1
|
|
|
|
void llScaleTexture(float u, float v, integer face)
|
|
- delay 0.2
|
|
|
|
integer llScriptDanger(vector pos)
|
|
- SEF
|
|
- min 0
|
|
- max 1
|
|
|
|
void llScriptProfiler(integer flags)
|
|
|
|
key llSendRemoteData(key channel, string dest, integer idata, string sdata)
|
|
- unstable
|
|
- delay 3.0
|
|
|
|
void llSensor(string name, key id, integer type, float range, float arc)
|
|
# type == 0 || range == 0 cancels a sensor in this frame.
|
|
|
|
void llSensorRemove()
|
|
|
|
void llSensorRepeat(string name, key id, integer type, float range, float arc, float rate)
|
|
|
|
void llSetAlpha(float alpha, integer face)
|
|
- SEF if face > 8
|
|
|
|
void llSetAngularVelocity(vector angular_velocity, integer local)
|
|
|
|
void llSetAnimationOverride(string anim_state, string anim)
|
|
|
|
void llSetBuoyancy(float buoyancy)
|
|
|
|
void llSetCameraAtOffset(vector offset)
|
|
|
|
void llSetCameraEyeOffset(vector offset)
|
|
|
|
void llSetCameraParams(list rules)
|
|
|
|
void llSetClickAction(integer action)
|
|
|
|
void llSetColor(vector color, integer face)
|
|
- SEF if face > 8
|
|
|
|
void llSetContentType(key request_id, integer content_type)
|
|
- SEF if nulluuid(request_id)
|
|
|
|
void llSetDamage(float damage)
|
|
|
|
void llSetForce(vector force, integer local)
|
|
|
|
void llSetForceAndTorque(vector force, vector torque, integer local)
|
|
|
|
void llSetHoverHeight(float height, integer water, float tau)
|
|
|
|
void llSetInventoryPermMask(string item, integer mask, integer value)
|
|
|
|
void llSetKeyframedMotion(list keyframes, list options)
|
|
|
|
void llSetLinkAlpha(integer linknumber, float alpha, integer face)
|
|
- SEF if linknumber > 256 || face > 8
|
|
|
|
void llSetLinkCamera(integer link, vector eye, vector at)
|
|
- SEF if link > 256
|
|
|
|
void llSetLinkColor(integer linknumber, vector color, integer face)
|
|
- SEF if linknumber > 256 || face > 8
|
|
|
|
integer llSetLinkMedia(integer link, integer face, list params)
|
|
- SEF if link > 256
|
|
|
|
void llSetLinkPrimitiveParams(integer linknumber, list rules)
|
|
- delay 0.2
|
|
|
|
void llSetLinkPrimitiveParamsFast(integer linknumber, list rules)
|
|
- SEF if linknumber > 256
|
|
|
|
void llSetLinkTexture(integer linknumber, string texture, integer face)
|
|
- delay 0.2
|
|
|
|
void llSetLinkTextureAnim(integer link, integer mode, integer face, integer sizex, integer sizey, float start, float length, float rate)
|
|
- SEF if linknumber > 256
|
|
|
|
void llSetLocalRot(rotation rot)
|
|
- delay 0.2
|
|
|
|
integer llSetMemoryLimit(integer limit)
|
|
- SEF if limit <= 0
|
|
- min 0
|
|
- max 1
|
|
|
|
void llSetObjectDesc(string desc)
|
|
|
|
void llSetObjectName(string name)
|
|
|
|
void llSetObjectPermMask(integer mask, integer value)
|
|
|
|
void llSetParcelMusicURL(string url)
|
|
- delay 2.0
|
|
|
|
void llSetPayPrice(integer price, list quick_pay_buttons)
|
|
|
|
void llSetPhysicsMaterial(integer flags, float gravity_multiplier, float restitution, float friction, float density)
|
|
- SEF if flags == 0
|
|
|
|
void llSetPos(vector pos)
|
|
- delay 0.2
|
|
|
|
integer llSetPrimMediaParams(integer face, list params)
|
|
- delay 1.0
|
|
|
|
void llSetPrimURL(string url)
|
|
# emits an error -> has side effects
|
|
- delay 20.0
|
|
|
|
void llSetPrimitiveParams(list rules)
|
|
- delay 0.2
|
|
|
|
integer llSetRegionPos(vector pos)
|
|
# unstable because it may fail when becoming more accurate and positioning
|
|
# over an invalid parcel
|
|
- unstable
|
|
- min 0
|
|
- max 1
|
|
|
|
void llSetRemoteScriptAccessPin(integer pin)
|
|
- delay 0.2
|
|
|
|
void llSetRot(rotation rot)
|
|
- delay 0.2
|
|
|
|
void llSetScale(vector scale)
|
|
|
|
void llSetScriptState(string name, integer run)
|
|
|
|
void llSetSitText(string text)
|
|
|
|
void llSetSoundQueueing(integer queue)
|
|
|
|
void llSetSoundRadius(float radius)
|
|
|
|
void llSetStatus(integer status, integer value)
|
|
|
|
void llSetText(string text, vector color, float alpha)
|
|
|
|
void llSetTexture(string texture, integer face)
|
|
- delay 0.2
|
|
|
|
void llSetTextureAnim(integer mode, integer face, integer sizex, integer sizey, float start, float length, float rate)
|
|
|
|
void llSetTimerEvent(float sec)
|
|
|
|
void llSetTorque(vector torque, integer local)
|
|
|
|
void llSetTouchText(string text)
|
|
|
|
void llSetVehicleFlags(integer flags)
|
|
|
|
void llSetVehicleFloatParam(integer param, float value)
|
|
|
|
void llSetVehicleRotationParam(integer param, rotation rot)
|
|
|
|
void llSetVehicleType(integer type)
|
|
|
|
void llSetVehicleVectorParam(integer param, vector vec)
|
|
|
|
void llSetVelocity(vector velocity, integer local)
|
|
|
|
void llShout(integer channel, string msg)
|
|
|
|
float llSin(float theta)
|
|
- SEF
|
|
|
|
integer llSitOnLink(key agent_id, integer link)
|
|
- min -7
|
|
- max 1
|
|
|
|
void llSitTarget(vector offset, rotation rot)
|
|
|
|
void llSleep(float sec)
|
|
|
|
void llSound(string sound, float volume, integer queue, integer loop)
|
|
|
|
void llSoundPreload(string sound)
|
|
|
|
float llSqrt(float val)
|
|
- SEF
|
|
|
|
vector llsRGB2Linear(vector srgb)
|
|
- SEF
|
|
|
|
void llStartAnimation(string anim)
|
|
|
|
void llStartObjectAnimation(string anim)
|
|
|
|
void llStopAnimation(string anim)
|
|
|
|
void llStopObjectAnimation(string anim)
|
|
|
|
void llStopHover()
|
|
|
|
void llStopLookAt()
|
|
|
|
void llStopMoveToTarget()
|
|
|
|
void llStopPointAt()
|
|
|
|
void llStopSound()
|
|
|
|
integer llStringLength(string str)
|
|
- SEF
|
|
- min 0
|
|
- strlen
|
|
|
|
string llStringToBase64(string str)
|
|
- SEF
|
|
|
|
string llStringTrim(string src, integer trim_type)
|
|
- SEF
|
|
|
|
integer llSubStringIndex(string source, string pattern)
|
|
- SEF
|
|
- min -1
|
|
|
|
void llTakeCamera(key avatar)
|
|
- SEF
|
|
|
|
void llTakeControls(integer controls, integer accept, integer pass_on)
|
|
|
|
float llTan(float theta)
|
|
- SEF
|
|
|
|
integer llTarget(vector position, float range)
|
|
- unstable
|
|
|
|
void llTargetedEmail(integer target, string subject, string body)
|
|
- delay 20.0
|
|
|
|
void llTargetOmega(vector axis, float spinrate, float gain)
|
|
|
|
void llTargetRemove(integer number)
|
|
- SEF if number == 0
|
|
|
|
void llTeleportAgent(key avatar, string landmark, vector position, vector look_at)
|
|
|
|
void llTeleportAgentGlobalCoords(key agent, vector global_coordinates, vector region_coordinates, vector look_at)
|
|
|
|
void llTeleportAgentHome(key id)
|
|
- delay 5.0
|
|
|
|
void llTextBox(key avatar, string message, integer chat_channel)
|
|
- delay 1.0
|
|
|
|
string llToLower(string src)
|
|
- SEF
|
|
|
|
string llToUpper(string src)
|
|
- SEF
|
|
|
|
key llTransferLindenDollars(key destination, integer amount)
|
|
- unstable
|
|
|
|
void llTriggerSound(string sound, float volume)
|
|
|
|
void llTriggerSoundLimited(string sound, float volume, vector top_north_east, vector bottom_south_west)
|
|
|
|
void llUnSit(key id)
|
|
|
|
string llUnescapeURL(string url)
|
|
- SEF
|
|
|
|
void llUpdateCharacter(list options)
|
|
|
|
key llUpdateKeyValue(string k, string v, integer checked, string original_value)
|
|
- unstable
|
|
|
|
float llVecDist(vector v1, vector v2)
|
|
- SEF
|
|
|
|
float llVecMag(vector v)
|
|
- SEF
|
|
|
|
vector llVecNorm(vector v)
|
|
- SEF
|
|
|
|
void llVolumeDetect(integer detect)
|
|
|
|
void llWanderWithin(vector center, vector radius, list options)
|
|
|
|
float llWater(vector offset)
|
|
- SEF
|
|
- min 0
|
|
|
|
void llWhisper(integer channel, string msg)
|
|
|
|
vector llWind(vector offset)
|
|
- SEF
|
|
|
|
string llXorBase64(string str1, string str2)
|
|
- SEF
|
|
|
|
string llXorBase64Strings(string str1, string str2)
|
|
- delay 0.3
|
|
|
|
string llXorBase64StringsCorrect(string str1, string str2)
|
|
- SEF
|
|
|
|
integer llReplaceAgentEnvironment(key agent_id, float transition, string environment)
|
|
- unstable
|
|
|
|
integer llSetAgentEnvironment(key agent_id, float transition, list params)
|
|
- unstable
|
|
|
|
float llGetRegionTimeOfDay()
|
|
- SEF
|
|
- unstable
|
|
- min 0
|
|
- max 86399.9921875
|
|
|
|
string llChar(integer code)
|
|
- SEF
|
|
|
|
integer llHash(string val)
|
|
- SEF
|
|
|
|
integer llOrd(string val, integer index)
|
|
- SEF
|
|
|
|
integer llOpenFloater(string title, string url, list params)
|
|
- unstable
|
|
# (may fail if invoked a second time, e.g. if throttled)
|
|
|
|
string llGetInventoryAcquireTime(string item)
|
|
- SEF
|
|
|
|
void llLinkPlaySound(integer link, string sound, float volume, integer flags)
|
|
|
|
void llLinkStopSound(integer link)
|
|
|
|
void llLinkAdjustSoundVolume(integer link, float volume)
|
|
- delay 0.1
|
|
|
|
void llLinkSetSoundQueueing(integer link, integer queue)
|
|
|
|
void llLinkSetSoundRadius(integer link, float radius)
|
|
|
|
string llHMAC(string authkey, string message, string alg)
|
|
- SEF if alg == "md5" || alg == "sha1" || alg == "sha224" || alg == "sha256" || alg == "sha384" || alg == "sha512"
|
|
# otherwise error
|
|
|
|
string llSignRSA(string privkey, string message, string alg)
|
|
- SEF if alg == "md5" || alg == "sha1" || alg == "sha224" || alg == "sha256" || alg == "sha384" || alg == "sha512"
|
|
# otherwise error
|
|
|
|
integer llVerifyRSA(string pubkey, string message, string signature, string alg)
|
|
- SEF if alg == "md5" || alg == "sha1" || alg == "sha224" || alg == "sha256" || alg == "sha384" || alg == "sha512"
|
|
# otherwise error
|
|
|
|
string llReplaceSubString(string source, string search, string replace, integer count)
|
|
- SEF
|
|
|
|
list llList2ListSlice(list src, integer start, integer end, integer stride, integer slice_index)
|
|
- SEF
|
|
|
|
integer llListFindStrided(list src, list test, integer start, integer end, integer stride)
|
|
- SEF
|
|
|
|
list llListSortStrided(list src, integer stride, integer stride_index, integer ascending)
|
|
- SEF
|
|
|
|
###################################################################
|
|
|
|
# Events are SEF if a script with an empty event can't be
|
|
# distinguished from a script without that event except for the
|
|
# extra CPU and memory consumption.
|
|
|
|
event at_rot_target(integer tnum, rotation targetrot, rotation ourrot)
|
|
- SEF
|
|
|
|
event at_target(integer tnum, vector targetpos, vector ourpos)
|
|
- SEF
|
|
|
|
event attach(key id)
|
|
- SEF
|
|
|
|
event changed(integer change)
|
|
- SEF
|
|
|
|
event collision(integer num_detected)
|
|
- detect
|
|
# Prevents events in the parent from triggering, depending on llPassCollisions,
|
|
# therefore not SEF.
|
|
|
|
event collision_end(integer num_detected)
|
|
- detect
|
|
# Not SEF; see collision().
|
|
|
|
event collision_start(integer num_detected)
|
|
- detect
|
|
# Not SEF; see collision().
|
|
|
|
event control(key id, integer level, integer edge)
|
|
- SEF
|
|
|
|
event dataserver(key queryid, string data)
|
|
- SEF
|
|
|
|
event email(string time, string address, string subj, string message, integer num_left)
|
|
- SEF
|
|
|
|
event experience_permissions(key agent)
|
|
- SEF
|
|
|
|
event experience_permissions_denied(key agent, integer reason)
|
|
- SEF
|
|
|
|
event http_request(key id, string method, string body)
|
|
# Since you can't see the URL, you can't notice the difference.
|
|
- SEF
|
|
|
|
event http_response(key request_id, integer status, list metadata, string body)
|
|
- SEF
|
|
|
|
event land_collision(vector pos)
|
|
# Same as with collision().
|
|
|
|
event land_collision_end(vector pos)
|
|
# Same as with collision().
|
|
|
|
event land_collision_start(vector pos)
|
|
# Same as with collision().
|
|
|
|
event link_message(integer sender_num, integer num, string str, key id)
|
|
- SEF
|
|
|
|
event linkset_data(integer action, string key, string value)
|
|
- SEF
|
|
|
|
event listen(integer channel, string name, key id, string message)
|
|
- SEF
|
|
|
|
event money(key id, integer amount)
|
|
# Adds Pay menu option, therefore not SEF.
|
|
|
|
event moving_end()
|
|
- SEF
|
|
|
|
event moving_start()
|
|
- SEF
|
|
|
|
event no_sensor()
|
|
- SEF
|
|
|
|
event not_at_rot_target()
|
|
- SEF
|
|
|
|
event not_at_target()
|
|
- SEF
|
|
|
|
event object_rez(key id)
|
|
- SEF
|
|
|
|
event on_rez(integer start_param)
|
|
- SEF
|
|
|
|
event path_update(integer type, list reserved)
|
|
- SEF
|
|
|
|
event remote_data(integer event_type, key channel, key message_id, string sender, integer idata, string sdata)
|
|
- SEF
|
|
|
|
event run_time_permissions(integer perm)
|
|
- SEF
|
|
|
|
event sensor(integer num_detected)
|
|
- detect
|
|
# There was a time when this was necessary for no_sensor() to trigger, but
|
|
# that's no longer the case and it is SEF now.
|
|
- SEF
|
|
|
|
event state_entry()
|
|
- SEF
|
|
|
|
event state_exit()
|
|
- SEF
|
|
|
|
event timer()
|
|
- SEF
|
|
|
|
event touch(integer num_detected)
|
|
- touch
|
|
- detect
|
|
- grab
|
|
# Not SEF for the same reasons as collision(); also it adds a hand cursor.
|
|
|
|
event touch_end(integer num_detected)
|
|
- touch
|
|
- detect
|
|
# Not SEF; see touch().
|
|
|
|
event touch_start(integer num_detected)
|
|
- touch
|
|
- detect
|
|
# Not SEF; see touch().
|
|
|
|
event transaction_result(key id, integer success, string data)
|
|
- SEF
|