mirror of
https://github.com/Sei-Lisa/LSL-PyOptimizer
synced 2024-11-21 14:18:57 -07:00
1962 lines
42 KiB
Text
1962 lines
42 KiB
Text
# Function properties table
|
|
#
|
|
# Copyright © 2015-2024 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
|
|
- min -3.1415927
|
|
- max 3.1415927
|
|
|
|
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
|
|
- min 0
|
|
- max 3.1415927
|
|
|
|
void llApplyImpulse(vector force, integer local)
|
|
|
|
void llApplyRotationalImpulse(vector force, integer local)
|
|
|
|
float llAsin(float val)
|
|
- SEF
|
|
- min -1.5707964
|
|
- max 1.5707964
|
|
|
|
float llAtan2(float y, float x)
|
|
- SEF
|
|
- min -3.1415927
|
|
- max 3.1415927
|
|
|
|
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
|
|
- min 0
|
|
- max 1
|
|
|
|
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
|
|
- min 0
|
|
- 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
|
|
- min 0
|
|
- max 1
|
|
- return 1 if face > 8
|
|
|
|
float llGetAndResetTime()
|
|
- unstable
|
|
- min 0
|
|
|
|
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
|
|
- min 0
|
|
|
|
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
|
|
- min 0
|
|
- 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
|
|
- min 0
|
|
- return 0 if mask < 0 || mask > 4 || item == ""
|
|
|
|
# we've completed up to here
|
|
|
|
integer llGetInventoryType(string name)
|
|
- SEF
|
|
- min -1
|
|
- max 57
|
|
|
|
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
|
|
- max 256
|
|
|
|
integer llGetLinkNumberOfSides(integer link)
|
|
- SEF
|
|
- min 1
|
|
- max 9
|
|
|
|
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
|
|
- min 0
|
|
|
|
float llGetMassMKS()
|
|
- SEF
|
|
- min 0
|
|
|
|
float llGetMaxScaleFactor()
|
|
- SEF
|
|
- min 0
|
|
|
|
integer llGetMemoryLimit()
|
|
- SEF
|
|
- min 0
|
|
|
|
float llGetMinScaleFactor()
|
|
- SEF
|
|
- min 0
|
|
|
|
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
|
|
- min 0
|
|
|
|
string llGetObjectName()
|
|
- SEF
|
|
|
|
integer llGetObjectPermMask(integer mask)
|
|
- SEF
|
|
- min 0
|
|
|
|
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
|
|
# bit 31 can be set hence no limits
|
|
|
|
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
|
|
- min 0
|
|
|
|
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
|
|
- min 0
|
|
|
|
vector llGetRegionCorner()
|
|
- SEF
|
|
|
|
integer llGetRegionDayLength()
|
|
- SEF
|
|
- min 0
|
|
|
|
integer llGetRegionDayOffset()
|
|
- SEF
|
|
|
|
float llGetRegionFPS()
|
|
- SEF
|
|
- min 0
|
|
- max 45
|
|
|
|
integer llGetRegionFlags()
|
|
- SEF
|
|
# bit 31 can be set hence no limits
|
|
|
|
vector llGetRegionMoonDirection()
|
|
- SEF
|
|
|
|
rotation llGetRegionMoonRotation()
|
|
- SEF
|
|
|
|
string llGetRegionName()
|
|
- SEF
|
|
|
|
vector llGetRegionSunDirection()
|
|
- SEF
|
|
|
|
rotation llGetRegionSunRotation()
|
|
- SEF
|
|
|
|
float llGetRegionTimeDilation()
|
|
- SEF
|
|
- min 0
|
|
- max 1
|
|
|
|
vector llGetRootPosition()
|
|
# physics caveat
|
|
#- unstable
|
|
- SEF
|
|
|
|
rotation llGetRootRotation()
|
|
# physics caveat
|
|
#- unstable
|
|
- SEF
|
|
|
|
rotation llGetRot()
|
|
# physics caveat
|
|
#- unstable
|
|
- SEF
|
|
|
|
integer llGetSPMaxMemory()
|
|
- SEF
|
|
- min 0
|
|
|
|
vector llGetScale()
|
|
- SEF
|
|
|
|
string llGetScriptName()
|
|
- SEF
|
|
|
|
integer llGetScriptState(string name)
|
|
- SEF
|
|
- min 0
|
|
- max 1
|
|
|
|
float llGetSimStats(integer stat_type)
|
|
- SEF
|
|
- min 0
|
|
|
|
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.
|
|
- min 0
|
|
|
|
float llGetTimeOfDay()
|
|
- unstable
|
|
- SEF
|
|
- min 0
|
|
- max 86399.9921875
|
|
|
|
string llGetTimestamp()
|
|
- unstable
|
|
- SEF
|
|
|
|
vector llGetTorque()
|
|
- SEF
|
|
|
|
integer llGetUnixTime()
|
|
- unstable
|
|
- SEF
|
|
|
|
integer llGetUsedMemory()
|
|
- unstable
|
|
- SEF
|
|
- min 0
|
|
|
|
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
|
|
- max 65536
|
|
|
|
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
|
|
- min 0
|
|
|
|
integer llLinksetDataCountKeys()
|
|
- SEF
|
|
- min 0
|
|
|
|
integer llLinksetDataDelete(string key)
|
|
- min 0
|
|
- max 5
|
|
|
|
integer llLinksetDataDeleteProtected(string key, string password)
|
|
- min 0
|
|
- max 5
|
|
|
|
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)
|
|
- min 0
|
|
- max 5
|
|
|
|
integer llLinksetDataWriteProtected(string key, string value, string password)
|
|
- min 0
|
|
- max 5
|
|
|
|
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)
|
|
- unstable
|
|
|
|
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
|
|
# note: can generate negative numbers, e.g. llPow(-2, 3)
|
|
|
|
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
|
|
- min -9
|
|
- max 1
|
|
|
|
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
|
|
- min -9
|
|
- max 1
|
|
|
|
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
|
|
- min 0
|
|
- max 3.1415927
|
|
|
|
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
|
|
- min 0
|
|
- max 2001
|
|
|
|
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
|
|
- min 0
|
|
- max 2001
|
|
|
|
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
|
|
- min -1
|
|
- max 1
|
|
|
|
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
|
|
- min 0
|
|
|
|
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
|
|
- min 0
|
|
|
|
float llVecMag(vector v)
|
|
- SEF
|
|
- min 0
|
|
|
|
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
|
|
- min -8
|
|
- max 1
|
|
|
|
integer llSetAgentEnvironment(key agent_id, float transition, list params)
|
|
- unstable
|
|
- min -8
|
|
- max 1
|
|
|
|
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
|
|
- min 0
|
|
- max 1114111
|
|
|
|
integer llOpenFloater(string title, string url, list params)
|
|
- unstable
|
|
# (may fail if invoked a second time, e.g. if throttled)
|
|
- min -4
|
|
- max 0
|
|
|
|
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
|
|
- min 0
|
|
- max 1
|
|
|
|
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
|
|
- min 0
|
|
|
|
list llListSortStrided(list src, integer stride, integer stride_index, integer ascending)
|
|
- SEF
|
|
|
|
integer llLinksetDataCountFound(string pattern)
|
|
- SEF
|
|
- min 0
|
|
|
|
list llLinksetDataDeleteFound(string pattern, string pass)
|
|
|
|
string llGetRenderMaterial(integer face)
|
|
- SEF
|
|
|
|
void llSetRenderMaterial(string material, integer face)
|
|
|
|
void llSetLinkRenderMaterial(integer link, string material, integer face)
|
|
|
|
string llComputeHash(string data, string algorithm)
|
|
- SEF if alg == "md5" || alg == "md5_sha1" || alg == "sha1" || alg == "sha224" || alg == "sha256" || alg == "sha384" || alg == "sha512"
|
|
# otherwise error
|
|
|
|
float llGetCameraAspect()
|
|
# No error if PERMISSION_TRACK_CAMERA not granted, hence SEF
|
|
- SEF
|
|
- min 0
|
|
|
|
float llGetCameraFOV()
|
|
# No error if PERMISSION_TRACK_CAMERA not granted, hence SEF
|
|
- SEF
|
|
- min 0
|
|
|
|
string llGetInventoryDesc(string itemname)
|
|
# May produce error (if item doesn't exist), hence not SEF
|
|
|
|
integer llGetLinkSitFlags(integer link)
|
|
- SEF
|
|
- min 0
|
|
|
|
string llGetNotecardLineSync(string name, integer line)
|
|
# May produce error (if notecard doesn't exist), hence not SEF
|
|
|
|
integer llIsFriend(key agent)
|
|
- SEF
|
|
- min 0
|
|
- max 1
|
|
|
|
integer llListFindListNext(list src, list test, integer n)
|
|
- SEF
|
|
- min 0
|
|
|
|
void llRezObjectWithParams(string itemname, list params)
|
|
- delay 0.1
|
|
|
|
void llSetLinkSitFlags(integer link, integer flags)
|
|
|
|
vector llWorldPosToHUD(vector pos)
|
|
- 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
|