Function Reference

Catalogued functions and compiler-recognized handlers. Generated from this source snapshot.

Reference source fingerprint: 9d283e430cca · Build metadata. This identifies the documentation inputs, not the deployed World or preview engine.

Coverage includes catalog entries and compiler-specific handlers, not the complete upstream LSL/OSSL library. Status describes translation mapping, not a tested World result. “resolver-only” means a recognized compiler handler without a curated catalog entry. Async badges follow the compiler’s emitted translation. See Appearance and compatibility for supported surface workflows and deployment guidance.

321 functions across 33 categories

Communication

LSL Functionpoqpoq APIReturnOriginStatusNotes
llSay this.say(channel, message) void SL mapped
llWhisper this.whisper(channel, message) void SL mapped
llShout this.shout(channel, message) void SL mapped
llRegionSay this.world.regionSay(channel, message) void SL mapped
llRegionSayTo this.world.regionSayTo(id, ch, msg) void SL mapped
llListen async this.listen(channel, name, id, message) integer SL mapped
llListenRemove handle.remove() void SL mapped Uses handle pattern instead of integer ID
llInstantMessage this.world.instantMessage(av, msg) void SL mapped
llOwnerSay this.ownerSay(message) void SL mapped Uses the owner-only chat command
llMessageLinked this.sendLinkMessage(link, num, str, id) void SL mapped Broadcasts within container; supports LINK_SET, LINK_THIS, LINK_ROOT, LINK_ALL_OTHERS, LINK_ALL_CHILDREN

Object Manipulation

LSL Functionpoqpoq APIReturnOriginStatusNotes
llSetPos this.object.setPosition(pos) void SL mapped Returns Promise, no 0.2s delay
llGetPos async this.object.getPosition() vector SL mapped
llSetRot this.object.setRotation(rot) void SL mapped
llGetRot async this.object.getRotation() rotation SL mapped
llSetScale this.object.setScale(scale) void SL mapped
llGetScale async this.object.getScale() vector SL mapped
llSetScriptState async await this.script.setState(name, run) void SL mapped ScriptManager builtin — the script table is Scripter-side, so there is no World terminal. Newly transpiled scripts await the state acknowledgement. With the matching paused-reply runtime, self-stop waits at the call until resumed; older compiled code must be retranspiled. This is not arbitrary instruction-level suspension.
llGetNumberOfSides async this.object.getNumberOfSides() integer SL mapped Field census 2026-08-31: 3 sites in Elf Beach, previously unmapped. Heritage face-cycling scripts divide or modulo by this, so the host contract is that it NEVER returns 0 — see World#1564.
llSetColor this.object.setColor(color, face) void SL mapped
llSetAlpha this.object.setAlpha(alpha, face) void SL mapped
llGetTexture async await this.object.getTexture(face) string SL mapped Requires the paired World texture-identity query. ALL_SIDES selects face 0; invalid/empty faces return NULL_KEY. World follows OpenSim identity exposure, without SL object-permission UUID masking.
llSetTexture this.object.setTexture(texture, face) void SL mapped
llSetText this.object.setText(text, color, alpha) void SL mapped
llSetPrimitiveParams lslSetPrimParams(this.object, rules) void SL mapped SPECIAL_HANDLER emits the generated `lslSetPrimParams` helper, which walks the LSL PRIM_* rule list and dispatches discrete routed self-target calls (setColor/setTexture/setGlow/setScale/setPosition/setRotation/setText/setPrimType). Not dark-at-router — it decomposes into already-wired object methods (the prior `object.setMaterial` api field was drift; Clump #13 audit-correctness fix).
llGetObjectName async this.object.name string SL mapped
llGetObjectDesc async this.object.description string SL mapped
llGetKey async this.object.id key SL mapped
llGetCreator async this.object.creatorId key SL mapped
llGetOwner async this.owner.id key SL mapped
llGetNumberOfPrims async await this.object.getLinkCount() integer SL mapped The link count crosses the async worker/host boundary; SPECIAL_HANDLER emits await so numeric comparisons receive the resolved count rather than a Promise (#75).
llGetLinkKey async this.object.getLinkKey(link) key SL mapped ADR-009: flat command. Served from local snapshot.linkKeys (ADR-008) without engine roundtrip.
llGetLinkNumber async this.container.getLinkNumber() integer SL mapped ADR-058: Routed to host LinkSetRegistry
osGetLinkNumber async await this.container.getLinkNumber() integer SL mapped OpenSim compatibility alias for llGetLinkNumber; served by the same container-local route.
llGetLinkName async this.container.getLinkName(link) string SL mapped ADR-058: Routed to host LinkSetRegistry
llSetLinkPrimitiveParams this.object.setLinkPrimitiveParams(link, rules) void SL mapped ADR-009 / ADR-058: flat command — link is the first argument.
llGetLinkPrimitiveParams async this.object.getLinkPrimitiveParams(link, params) list SL mapped ADR-009: flat command. Returns Promise<unknown[]> — must await. Replaces a stub that ignored the link argument.
llSetLinkTexture this.object.setLinkTexture(link, texture, face) void SL mapped ADR-009: closes BlackBoxScripter#5. Flat command — link is the first argument, not a sub-handle traversal.
llSetLinkColor this.object.setLinkColor(link, color, face) void SL mapped Dedicated flat linked-prim command; preserves the target face's alpha.
llSetLinkAlpha this.object.setLinkAlpha(link, alpha, face) void SL mapped Dedicated flat linked-prim command; preserves the target face's color.
llGetLinkNumberOfSides async await this.object.getLinkNumberOfSides(link) integer SL mapped Uses the same >=1 host contract as llGetNumberOfSides after resolving the link target.
llSetLinkTextureAnim this.object.setLinkTextureAnim(link, mode, face, sizeX, sizeY, start, length, rate) void SL mapped
llSetTextureAnim this.object.setTextureAnim(mode, face, sizeX, sizeY, start, length, rate) void SL mapped
llOffsetTexture this.object.offsetTexture(horizontal, vertical, face) void SL mapped
llScaleTexture this.object.scaleTexture(horizontal, vertical, face) void SL mapped
llRotateTexture this.object.rotateTexture(angle, face) void SL mapped Angle remains in LSL texture space; World owns the Babylon wAng sign conversion.
llGetTextureOffset async await this.object.getTextureOffset(face) vector SL mapped
llGetTextureScale async await this.object.getTextureScale(face) vector SL mapped
llGetTextureRot async await this.object.getTextureRotation(face) float SL mapped Returns LSL-semantic radians, not Babylon Texture.wAng.

script

LSL Functionpoqpoq APIReturnOriginStatusNotes
llGetScriptState async await this.script.getState(name) integer SL mapped ScriptManager builtin. Resolves inventory names only within the current object; returns FALSE for missing, paused, errored, or terminated scripts.
llResetOtherScript this.resetOtherScript(name) void SL mapped ScriptManager builtin. Reloads the named same-object script under its stable logical id and preserves snapshots. Naming the current script uses the non-returning llResetScript control path.
llGetFreeMemory this.unimplemented("llGetFreeMemory", [], "integer") integer SL unmapped Visible compatibility gap. The current fail-soft result is 0 with a warning; poqpoq has no per-script byte quota, so this is not measured free memory.
llGetUsedMemory this.unimplemented("llGetUsedMemory", [], "integer") integer SL unmapped Visible compatibility gap. The current fail-soft result is 0 with a warning; it is not a measurement. poqpoq runs many SES script compartments in one worker heap, and browser memory APIs cannot synchronously attribute reachable bytes to one compartment. Do not substitute OpenSim's fixed 65,536-byte compatibility value without adopting that profile explicitly.
llGetMemoryLimit this.unimplemented("llGetMemoryLimit", [], "integer") integer SL unmapped Visible compatibility gap. The current fail-soft result is 0 with a warning; no poqpoq per-script byte limit is defined.
llSetMemoryLimit this.unimplemented("llSetMemoryLimit", [limit], "integer") integer SL unmapped Visible compatibility gap. The current fail-soft result is FALSE with a warning and does not change a limit.
llGetSPMaxMemory this.unimplemented("llGetSPMaxMemory", [], "integer") integer SL unmapped Visible compatibility gap. The current fail-soft result is 0 with a warning.
llResetScript this.reset() void SL mapped Posts world.resetScript to ScriptManager, then raises a private worker control signal so no later statement in the current handler executes.

Physics

LSL Functionpoqpoq APIReturnOriginStatusNotes
llApplyImpulse this.object.applyImpulse(force, local) void SL mapped
llApplyRotationalImpulse this.object.applyTorque(torque, local) void SL mapped Codegen emits this.object.applyTorque(...); router (Clump #13) maps it to PhysicsSystemLike.applyAngularImpulse — an instantaneous angular *impulse* (one-shot kick), distinct from the continuous setTorque.
llSetForce this.object.applyForce(force, local) void SL mapped
llGetVel async this.object.getVelocity() vector SL mapped ADR-010: now routes to PhysicsSystemLike.getVelocity. Returns Promise<Vec3> — must await.
llSetBuoyancy this.object.setPhysics({ gravity: false }) void SL partial
llMoveToTarget this.object.setPosition(target, { duration }) void SL mapped Uses animation options instead of tau
llSetPhysicsMaterial this.object.setPhysics(config) void SL mapped
llRotBetween Quaternion.between(from, to) rotation SL mapped Pure sandbox quaternion math. Handles parallel and antiparallel vectors without a host round trip.
llRotLookAt this.object.rotLookAt(Quaternion.swapFrame(target), strength, damping) void SL mapped Distinct absolute-quaternion controller. The transpiler performs the ADR-149 LSL-to-Babylon frame conversion before routing; World persists the controller for observers and cold load.
llStopLookAt this.object.stopLookAt() void SL mapped

Agent Interaction

LSL Functionpoqpoq APIReturnOriginStatusNotes
llDetectedKey detected[index].id key SL mapped Uses array index instead of function
llDetectedName detected[index].name string SL mapped
llDetectedPos detected[index].position vector SL mapped
llDetectedRot detected[index].rotation rotation SL mapped
llDetectedVel detected[index].velocity vector SL mapped
llDetectedType detected[index].type integer SL mapped
llGetAgentSize async await this.world.agent.getSize(id) vector SL mapped Routed via SPECIAL_HANDLER to AgentSystemLike.getSize (Clump #12). Returns Promise<Vector3>; ZERO_VECTOR when the host hasn't wired AgentSystemLike. poqpoq may approximate the bounding box — a missing impl is a loud ADR-013 gap, not a silent zero.
llGetDisplayName async await this.world.agent.getDisplayName(id) string SL mapped Dedicated present-avatar/NPC lookup. Objects, departed agents and unknown keys return an empty string; no private account fields or invented fallback names. Requires the paired World terminal implementation.
llKey2Name async await this.world.agent.getName(id) string SL mapped Returns only the public in-world name already rendered by World; never private account data. Avatar, NPC, and object keys are supported; an absent key returns an empty string.
llName2Key async await this.world.agent.getId(name) key SL mapped Current-sim lookup only, matching LSL. Case-insensitive; accepts space or dot name forms and Resident-style single names. Returns NULL_KEY when absent. Only public in-world names are indexed.
llGetOwnerKey async await this.world.agent.getOwnerKey(id) key SL mapped Returns an in-region object's owner. Avatar/NPC keys and absent keys return the input key, matching LSL's legacy failure behavior.
llRequestPermissions this.requestPermissions(agent, perms) void SL mapped
llGetPermissionsKey this.permissionsKey key SL mapped Answered inside the worker, synchronously — no host round trip. llRequestPermissions names the agent on the way out, so the worker latches it as pending and promotes it when the grant arrives (worker-entry calls __notePermissions BEFORE the run_time_permissions handlers, since that handler is where scripts read this). NOT carried by the permissions event, deliberately: LSL's signature is run_time_permissions(integer perm) and the grantor was never a parameter — #76 removed an `agent` argument the host had never sent. A zero mask (revoke) clears the key to NULL_KEY.
llSitTarget this.object.setSitTarget(offset, rot) void SL mapped
llAttachToAvatar this.world.attachToAvatar(point) void SL mapped
llAttachToAvatarTemp this.world.attachToAvatarTemp(point) void SL mapped
llDetachFromAvatar this.world.detachFromAvatar() void SL mapped
llGetAttached async this.object.getAttached() integer SL mapped

Effects & Sound

LSL Functionpoqpoq APIReturnOriginStatusNotes
llParticleSystem this.object.particles(rules | descriptor) void SL mapped Shape-dispatched (ADR-014): array = frozen LSL rule list; object = poqpoq ParticleDescriptor (the open dialect)
llPlaySound this.object.playSound(sound) void SL mapped
llLoopSound this.object.loopSound(sound, volume) void SL mapped
llStopSound this.object.stopSound() void SL mapped
llTriggerSound this.object.triggerSound(sound, volume) void SL mapped ADR-160 Rail 1: fire-and-forget — not stopped by stopSound(), overlapping triggers allowed. Non-spatial (full volume at any distance) per poqpoq semantics. playSound(sound, { spatial: false }) routes to the same wire shape.
llPreloadSound this.object.preloadSound(sound) void SL mapped ADR-160 Rail 1: warms the host audio-asset cache (fetch + decode) so a later play starts instantly. No playback.
llSetLinkPrimitiveParamsFast this.object.setLinkPrimitiveParams(link, rules) void SL mapped ADR-009: flat command. Maps to the same wire shape as llSetLinkPrimitiveParams — the no-delay flag is implicit (all property changes are instant in poqpoq).
llLinkParticleSystem this.object.setLinkParticles(link, rules) void SL mapped Preserves the frozen LSL particle-rule dialect and adds only link targeting.

Timer & Sleep

LSL Functionpoqpoq APIReturnOriginStatusNotes
llSetTimerEvent this.setTimer(interval) void SL mapped Supports multiple named timers
llSleep async await this.delay(seconds) void SL mapped Does NOT block other scripts (async)

Perception & Sensors

LSL Functionpoqpoq APIReturnOriginStatusNotes
llSensor this.sensor(name, id, type, range, arc) void SL mapped
llSensorRepeat this.sensorRepeat(name, id, type, range, arc, rate) void SL mapped
llSensorRemove this.sensorRemove() void SL mapped
llCastRay async await this.world.raycast(start, end, options) list SL mapped ADR-010: routed to PhysicsSystemLike.raycast. Returns Promise<RaycastHit[]> — must await.

sim

LSL Functionpoqpoq APIReturnOriginStatusNotes
llGetRegionAgentCount async await this.world.sim.getAgentCount() integer SL mapped ADR-010 (sim-namespace amendment 2026-04-28): poqpoq runs one sim at a time — namespace is world.sim.* not world.region.*. Returns Promise<number>.
llGetAgentList async await this.world.sim.getAgents(scope, options) list SL mapped ADR-010 (sim-namespace amendment): scope = AGENT_LIST_PARCEL/PARCEL_OWNER/REGION (LSL constants). poqpoq has no parcels — PARCEL scopes warn-once and fall back to sim-wide. Returns Promise<string[]> of UUIDs.
llGetRegionName async await this.world.sim.getName() string SL mapped ADR-010 (sim-namespace amendment 2026-04-28): poqpoq runs one sim at a time — namespace is world.sim.* not world.region.*. Returns Promise<string>; empty string when host hasn't wired SimSystemLike (LSL NULL convention).

Data & HTTP

LSL Functionpoqpoq APIReturnOriginStatusNotes
llGetNotecardLine async await this.world.getNotecardLine(name, line) key SL mapped
llHTTPRequest async await this.world.http.get(url) key SL mapped Returns Promise, no callback
llGetNumberOfNotecardLines async await this.world.getNumberOfNotecardLines(name) key SL mapped Async — returns key, triggers dataserver

Math

LSL Functionpoqpoq APIReturnOriginStatusNotes
llVecDist v1.distanceTo(v2) float SL mapped
llVecNorm v.normalize() vector SL mapped
llVecMag v.length() float SL mapped
llRot2Euler rot.toEuler() vector SL mapped
llEuler2Rot Quaternion.fromEuler(v) rotation SL mapped
llRot2Up lslRot2Axis(rot, 0, 0, 1) vector SL mapped Pure normalized-quaternion helper in LSL Z-up frame; accepts s or w scalar fields.
llRot2Fwd lslRot2Axis(rot, 1, 0, 0) vector SL mapped Pure normalized-quaternion helper in LSL Z-up frame.
llRot2Left lslRot2Axis(rot, 0, 1, 0) vector SL mapped Pure normalized-quaternion helper in LSL Z-up frame.
llAxes2Rot Quaternion.fromAxisAngle(axis, angle) rotation SL mapped
llFrand Math.random() * max float SL mapped
llAbs Math.abs(val) integer SL mapped
llFabs Math.abs(val) float SL mapped llAbs's float sibling. LSL needs both because LSL distinguishes integer from float; JS does not, so the emitted code is identical — which is why this row went missing while llAbs/llFloor/llCeil/llRound were all present.
llFloor Math.floor(val) integer SL mapped
llCeil Math.ceil(val) integer SL mapped
llRound Math.round(val) integer SL mapped
llSqrt Math.sqrt(val) float SL mapped
llModPow lslModPow(base, exponent, modulus) integer SL mapped Exact bounded modular arithmetic follows the documented 2025 LSL profile, without forced delay. Modulus zero or one returns zero under the pinned optimizer profile. Reference-grid verification remains pending; older simulator behavior can differ.
llLog lslLog(value) float SL mapped Generated LSL helper with binary32 input/output. NaN returns zero under the pinned optimizer compatibility profile. Native Math.log is unchanged. Reference-grid precision verification remains pending.
llLog10 lslLog10(value) float SL mapped Generated LSL helper with binary32 input/output. NaN returns zero under the pinned optimizer compatibility profile. Native Math.log10 is unchanged. Reference-grid precision verification remains pending.
llPow Math.pow(base, exp) float SL mapped
llSin Math.sin(val) float SL mapped
llCos Math.cos(val) float SL mapped
llTan Math.tan(val) float SL mapped
llAsin Math.asin(val) float SL mapped
llAcos Math.acos(val) float SL mapped
llAtan2 Math.atan2(y, x) float SL mapped

String

LSL Functionpoqpoq APIReturnOriginStatusNotes
llGenerateKey this.generateKey() key SL mapped Synchronous, with no forced delay. UUID version is an implementation detail. Requires both the updated compiler and worker; recompile original LSL after deployment. The key does not create an object, grant permission or persist a record. Live reference-grid and World verification remain pending.
llChar lslChar(codepoint) string SL mapped Zero returns empty text. Negative values, values above U+10FFFF, surrogate code points and U+FFFE/U+FFFF return U+FFFD. Follows the documented SL profile; pinned OpenSim admits U+FFFE/U+FFFF. Does not change UTF-16 string indexing or supply llOrd. Recompile original LSL after updating the compiler.
llReplaceSubString lslReplaceSubString(src, pattern, replacement, count) string SL partial Pure compiler helper. Case-sensitive, non-overlapping matches in the original input; replacement text is literal. Empty patterns leave input unchanged. ADR-029 selects this substring profile; pinned OpenSim instead interprets regex patterns and replacement tokens. SL edge-case field verification remains pending. Recompile original LSL after updating the compiler.
llStringLength str.length integer SL mapped
llSubStringIndex str.indexOf(substr) integer SL mapped
llGetSubString str.substring(start, end) string SL mapped
llDeleteSubString str.slice(0, start) + str.slice(end + 1) string SL mapped
llToLower str.toLowerCase() string SL mapped
llToUpper str.toUpperCase() string SL mapped
llStringToBase64 lslStringToBase64(str) string SL mapped Pure RFC 4648 encoding over LSL-cast UTF-8 bytes.
llHash lslHash(value) integer SL mapped Valid supplementary characters contribute once. Malformed UTF-16 returns zero under the pinned OpenSim failure profile; not SL field-verified. Hashes can collide and are not suitable for authentication or security. Recompile original LSL after updating the compiler.
llBase64ToString lslBase64ToString(str) string SL mapped Strict .NET 8/OpenSim Base64 shape; invalid input warns once and returns an empty string.
llIntegerToBase64 lslIntegerToBase64(value) string SL mapped
llBase64ToInteger lslBase64ToInteger(str) integer SL mapped OpenSim-compatible unrolled six-digit accumulator; invalid characters hard-fail to zero.
llEscapeURL lslEscapeURL(str) string SL mapped
llUnescapeURL lslUnescapeURL(str) string SL mapped Pinned to .NET 8 case-preserving invalid-escape behavior.
llMD5String lslMD5String(str, nonce) string SL mapped Hashes the UTF-8 bytes of string + ':' + signed int32 nonce; lowercase digest.
llSHA1String lslSHA1String(str) string SL mapped
llParseString2List str.split(separator) list SL mapped
llStringTrim str.trim() string SL mapped

List / Array

LSL Functionpoqpoq APIReturnOriginStatusNotes
llGetListLength arr.length integer SL mapped
llList2String arr[index] string SL mapped TypeScript arrays are typed
llList2Integer arr[index] integer SL mapped
llGetListEntryType lslGetListEntryType(arr, index) integer SL mapped Uses OpenSim UUID content-sniffing for key values and structural vector/rotation detection.
llList2Float arr[index] float SL mapped
llList2Vector lslList2Vector(arr, index) vector SL mapped Supports negative indices; an absent or non-vector entry returns a fresh ZERO_VECTOR, matching LSL.
llList2Rot lslList2Rot(arr, index) rotation SL mapped Supports negative indices; an absent or non-rotation entry returns a fresh ZERO_ROTATION, matching LSL.
llListSort arr.sort() list SL mapped
llList2List lslList2List(src, start, end) list SL mapped Inclusive or head-before-tail exclusion range. Negative bounds normalize once before clipping; fully underflowed ordinary ranges return empty. Extraction only: deletion/replacement have separate profiles (ADR-028). Recompile original LSL with an updated compiler.
llList2ListStrided lslList2ListStrided(arr, start, end, stride) list SL mapped Inclusive indices, negative-index support, ascending whole-list scan, and stride < 1 clamped to 1.
llList2ListSlice lslList2ListSlice(src, start, end, stride, sliceIndex) list SL mapped Follows documented SL examples: each included range starts its own stride; reversed bounds select head then tail. Stride < 1 becomes 1; negative slice indices count from the stride end. Differs from pinned OpenSim global alignment/full-range behavior (ADR-025). Recompile original LSL with an updated compiler.
llListRandomize lslListRandomize(arr, stride) list SL mapped Fisher-Yates shuffle over stride-sized chunks; nondeterministic and not safe for constant folding.
llListStatistics lslListStatistics(operation, arr) float SL mapped Uses the numeric subset; follows SL max-minus-min RANGE and even-population median averaging. Operation 100 is the OpenSim harmonic-mean extension.
llListFindList lslListFindList(src, test) integer SL mapped Transpiled LSL compares vectors and rotations by exact component values and returns 0 for an empty search list. Integer/float and string/key distinctions inside lists remain incomplete because those types currently share JS representations (ADR-026). Native TypeScript array methods are unchanged.
llList2CSV arr.join(',') string SL mapped
llCSV2List lslCSV2List(str) list SL mapped
llListInsertList arr.splice(pos, 0, ...items) list SL mapped
llDeleteSubList arr.splice(start, count) list SL mapped
llListReplaceList lslListReplaceList(dest, src, start, end) list SL mapped Existing emitted helper composes deletion and insertion with original-length start normalization. Published SL QA ordinary/exclusion cases pass; fully-underflowed replacement remains a separate unverified profile (#108 / ADR-028). The extraction-only fix does not change replacement.

Environment

LSL Functionpoqpoq APIReturnOriginStatusNotes
llGetTimeOfDay async await this.world.environment.getTimeOfDay() float SL mapped ADR-010: routed to EnvironmentSystemLike.getTimeOfDay. Returns Promise<number>; 0 when the host hasn't wired EnvironmentSystemLike.
llGetSunDirection async await this.world.environment.getSunDirection() vector SL mapped ADR-010: routed to EnvironmentSystemLike.getSunDirection. Returns Promise<Vector3>; zero vector when the host hasn't wired EnvironmentSystemLike.
llSetRegionSunDirection this.world.environment.setSunDirection(dir) void SL mapped ADR-010: routed to EnvironmentSystemLike.setSunDirection. Faithful vector setter — sets the active sim's sun direction (poqpoq shows one sim at a time; sky/sun belong to it). Replaces the lossy setTimeOfDay(hour) mis-map that discarded azimuth.
llSetParcelMusicURL this.world.environment.setParcelMusicURL(url) void SL mapped ADR-160 Rail 2: parcel ≙ sim (poqpoq has no parcels). Routes through the host's environment setMusic pipe — build permission enforced server-side, persisted with the instance, heard live by everyone in the sim. Empty url stops the music; the sim's current music volume is preserved.

time

LSL Functionpoqpoq APIReturnOriginStatusNotes
llGetUnixTime Math.floor(Date.now() / 1000) integer SL mapped ADR-010 Pattern A: pure script-side resolution. The codegen emits the Math expression inline — no host roundtrip. SES sandbox endows Date.now() per ADR-006a.
llGetTime this.getTime() float SL mapped Worker-local monotonic script clock. Starts with the script instance and is independent of host simulation and wall-clock time.
llResetTime this.resetTime() void SL mapped Resets the same worker-local monotonic clock used by llGetTime.
llGetAndResetTime this.getAndResetTime() float SL mapped Reads and resets the worker-local clock from one performance.now() sample.
llGetDate new Date().toISOString().slice(0, 10) string SL mapped ADR-010 Pattern A. UTC by definition — toISOString() is specified as UTC, so no local-time getter may be substituted. Resolved via SPECIAL_HANDLERS; see the warning above this block.
llGetGMTclock ((Date.now() % 86400000) / 1000) float SL mapped ADR-010 Pattern A. The Unix epoch is itself midnight UTC, so the remainder against a 24h day IS the time of day — no calendar arithmetic. Returns a float, so sub-second precision survives. Resolved via SPECIAL_HANDLERS; see the warning above this block.
llGetTimestamp new Date().toISOString().replace("Z", "000Z") string SL mapped ADR-010 Pattern A. LSL specifies SIX fractional digits; toISOString() emits three, so the milliseconds are zero-padded to microseconds rather than the string being reformatted — the extra digits are padding, not invented precision. Scripts that slice fixed offsets depend on the width. Resolved via SPECIAL_HANDLERS; see the warning above this block.

world

LSL Functionpoqpoq APIReturnOriginStatusNotes
llGround async await this.world.getGroundHeight(pos) float SL mapped ADR-010: routed to EnvironmentSystemLike.getGroundHeight. Returns Promise<number>.

OSSL — NPC

LSL Functionpoqpoq APIReturnOriginStatusNotes
osNpcCreate async this.world.npc.createLegacy(firstName, lastName, position, appearanceSource[, flags]) key OSSL mapped
osNpcRemove async await this.world.npc.remove(npcId) void OSSL mapped
osNpcMoveTo async await this.world.npc.moveTo(npcId, pos) void OSSL mapped Returns Promise
osNpcSay await this.world.npc.say(npcId, message, channel) void OSSL mapped
osNpcSit await this.world.npc.sit(npcId, targetId) void OSSL mapped UUID-targeted command acknowledgement; World seating terminal support is still pending.
osNpcStand await this.world.npc.stand(npcId) void OSSL mapped UUID-targeted command acknowledgement; World seating terminal support is still pending.
osNpcPlayAnimation await this.world.npc.playAnimation(npcId, anim) void OSSL mapped
osNpcStopAnimation await this.world.npc.stopAnimation(npcId, anim) void OSSL mapped
osNpcSetRot async await this.world.npc.setRotation(npcId, rot) void OSSL mapped

OSSL — Data

LSL Functionpoqpoq APIReturnOriginStatusNotes
osGetNumberOfNotecardLines async await this.world.getNotecardLineCountDirect(name) integer OSSL mapped Returns an integer directly, without a dataserver event. Paired host required: -1 for unavailable/missing, 0 for present empty. An old or unwired host result rejects rather than silently becoming zero.
osGetNotecard async await this.world.getNotecard(name) string OSSL mapped Clump #14 / ADR-012 (#31): remapped from the wrong `world.storage.get` (key-value store) to the notecard family — reads the whole named notecard from the prim's inventory via InventorySystemLike.getNotecard. Returns Promise<string>; '' when unwired or notecard absent.
osParseJSON JSON.parse(str) string OSSL mapped Native JSON support

OSSL — Terrain

LSL Functionpoqpoq APIReturnOriginStatusNotes
osSetTerrainHeight this.world.environment.setTerrainTexture(pos, texId, radius) void OSSL mapped ADR-001 Layer 6 — Tier 3 permission required
osGetTerrainTexture this.world.getGroundTexture(pos) key OSSL mapped ADR-001 — returns dominant textureId
osSetTerrainTexture this.world.environment.setTerrainTexture(pos, texId, radius) void OSSL mapped ADR-001 Layer 6 — requires Tier 3 permission

OSSL — Agent

LSL Functionpoqpoq APIReturnOriginStatusNotes
osTeleportAgent async await this.world.agent.teleport(agent, regionName, position, lookAt) void OSSL mapped Routed via SPECIAL_HANDLER to AgentSystemLike.teleport (Clump #12). In poqpoq a teleport LOADS A NEW SIM — regionName is the destination sim's identity (omit for within-sim). The OpenSim grid-coordinate form has no poqpoq analog. Requires the agent's permission.
osAvatarName2Key async await this.world.agent.getId(firstName + ' ' + lastName) key OSSL mapped Resolves against currently present public avatar/NPC names; poqpoq has no grid-wide account-directory route. Returns NULL_KEY when absent.
osIsNpc async await this.world.agent.isNpc(id) integer OSSL mapped Returns LSL integer TRUE/FALSE and checks the live NPC registry.
osGetAgents async await this.world.sim.getAgentNames() list OSSL mapped OpenSim-compatible name list (not UUID list), covering public names for avatars and NPCs in the active sim.
osGetAgentIP '' string OSSL partial OpenSim classifies this as Severe and additionally requires the script owner's account to be a grid god before it exposes a present agent's remote IP address. poqpoq scripts have no grid-god authority and never receive raw client network addresses, so this deterministic empty result matches OpenSim's ordinary non-god path. The privileged OpenSim path is intentionally unavailable. The argument is still evaluated once. Reference-grid field confirmation remains pending.

OSSL — Texture

LSL Functionpoqpoq APIReturnOriginStatusNotes
osSetDynamicTextureURL this.object.setTexture(url, face) void OSSL partial

Media on a Prim

LSL Functionpoqpoq APIReturnOriginStatusNotes
llSetPrimMediaParams this.object.setMediaParams(face, rules) integer SL mapped Rules list uses PRIM_MEDIA_* constants
llClearPrimMedia this.object.clearMedia(face) integer SL mapped
llGetPrimMediaParams async this.object.getMediaParams(face, rules) list SL mapped Returns list of parameter values
llSetLinkMedia this.object.setLinkMediaParams(link, face, params) integer SL mapped ADR-009: flat command (was getLink(n)?.X(...)).
llClearLinkMedia this.object.clearLinkMedia(link, face) integer SL mapped ADR-009: flat command.
llGetLinkMedia async this.object.getLinkMediaParams(link, face, params) list SL mapped ADR-009: flat command. Returns Promise<unknown[]> — must await.

Dialog / UI

LSL Functionpoqpoq APIReturnOriginStatusNotes
llDialog this.world.dialog(av, msg, buttons, ch) void SL mapped
llTextBox this.world.textBox(av, msg, ch) void SL mapped
llLoadURL this.world.loadURL(av, msg, url) void SL mapped
llMapDestination this.world.mapDestination(sim, pos, look) void SL mapped

Inventory

LSL Functionpoqpoq APIReturnOriginStatusNotes
llGetInventoryNumber async this.container.getAssetCount(type) integer SL mapped
llGetInventoryName async this.container.getAssetName(type, index) string SL mapped
llGetInventoryType async this.container.getAssetType(name) integer SL mapped
llGetInventoryKey async this.container.getAsset(name)?.id key SL mapped
llGetInventoryCreator async this.container.getAssetCreator(name) key SL mapped
llGetInventoryPermMask async this.container.getAssetPermMask(name, mask) integer SL mapped
llAllowInventoryDrop this.object.allowInventoryDrop(flag) void SL mapped
llGiveInventory this.world.giveInventory(dest, name) void SL mapped
llGiveInventoryList this.world.giveInventoryList(dest, folder, items) void SL mapped
llRemoveInventory this.container.removeAsset(name) void SL mapped

Economy / Money

LSL Functionpoqpoq APIReturnOriginStatusNotes
llGiveMoney this.world.giveMoney(target, amount) integer SL mapped
llTransferLindenDollars async await this.world.transferLindenDollars(target, amount) key SL mapped Async — returns transaction key, triggers transaction_result
llSetPayPrice this.world.setPayPrice(default, buttons) void SL mapped
llGetBalance this.world.getBalance() integer SL mapped

NPC — Combat & Hostility

LSL Functionpoqpoq APIReturnOriginStatusNotes
world.npc.damage this.world.npc.damage(npcId, damage, source?) — poqpoq mapped Deal damage to an NPC; returns true if NPC was alive
world.npc.isHostile this.world.npc.isHostile(npcId) — poqpoq mapped Check whether an NPC is flagged as hostile
world.npc.setHostile this.world.npc.setHostile(npcId, hostile) — poqpoq mapped Toggle NPC hostility flag on/off
world.npc.getNearestTarget this.world.npc.getNearestTarget(position, maxRange?) — poqpoq mapped Find closest NPC target from a position; returns NpcTargetResult or null
world.npc.getTargetsInRadius this.world.npc.getTargetsInRadius(position, maxRange) — poqpoq mapped Get all NPC targets within radius; returns NpcTargetResult[]
world.npc.respawn this.world.npc.respawn(npcId, position?) — poqpoq mapped Respawn a dead NPC at original or specified position

NPC — Steering Behaviors

LSL Functionpoqpoq APIReturnOriginStatusNotes
world.npc.setSteering this.world.npc.setSteering(npcId, behaviors, maxSpeed?, maxForce?) — poqpoq mapped Apply declarative steering behaviors (seek, flee, arrive, pursue, evade, wander, separation, cohesion, alignment, obstacleAvoidance, tether)
world.npc.clearSteering this.world.npc.clearSteering(npcId) — poqpoq mapped Remove all steering behaviors from an NPC

NPC — Spatial Queries

LSL Functionpoqpoq APIReturnOriginStatusNotes
world.npc.getPosition this.world.npc.getPosition(npcId) — poqpoq mapped Get current NPC world position; returns Vec3 or null
world.npc.getRotation this.world.npc.getRotation(npcId) — poqpoq mapped Get current NPC rotation; returns Quat or null

Avatar Attachments

LSL Functionpoqpoq APIReturnOriginStatusNotes
world.avatar.equip this.world.avatar.equip(pointId) — poqpoq mapped Equip item to a named attachment slot (25-slot system)
world.avatar.unequip this.world.avatar.unequip(pointId) — poqpoq mapped Remove item from a named attachment slot
world.avatar.setAttachmentVisible this.world.avatar.setAttachmentVisible(pointId, visible) — poqpoq mapped Show or hide an attachment slot without unequipping
world.avatar.getAttachment this.world.avatar.getAttachment(pointId) — poqpoq mapped Get attachment slot info (pointId, label, hasItem, itemId, visible)
world.avatar.getAttachmentPoints this.world.avatar.getAttachmentPoints() — poqpoq mapped List all available attachment slots and their current state
world.avatar.adjustAttachment this.world.avatar.adjustAttachment(pointId, offset?, rotation?, scale?) — poqpoq mapped Fine-tune attachment position, rotation, and scale on a slot

Physics Extensions

LSL Functionpoqpoq APIReturnOriginStatusNotes
world.physics.applyForce this.object.applyForce(force, local?) — poqpoq mapped Apply continuous force to object; local flag for object-space
world.physics.applyImpulse this.object.applyImpulse(impulse, local?) — poqpoq mapped Apply single-frame impulse to object
world.physics.setTorque this.object.setTorque(torque, local?) — poqpoq mapped Apply rotational torque to object
world.physics.pushObject this.world.pushObject(targetId, impulse, angularImpulse, local?) — poqpoq mapped Push another object with linear and angular impulse
world.physics.setStatus this.object.setStatus(flags, value) — poqpoq mapped Set STATUS_PHYSICS, STATUS_PHANTOM, etc. flags on object
world.physics.setDamage this.object.setDamage(damage) — poqpoq mapped Set collision damage dealt by this object
world.physics.volumeDetect this.object.volumeDetect(enabled) — poqpoq mapped Enable phantom collision events without physical response
world.physics.collisionFilter this.object.collisionFilter(name, id, accept) — poqpoq mapped Accept or reject collisions by name/id pattern
world.physics.setBuoyancy this.object.setBuoyancy(buoyancy) — poqpoq mapped Set buoyancy factor (0 = full gravity, 1 = neutral, >1 = floats)
world.physics.stopMoveToTarget this.object.stopMoveToTarget() — poqpoq mapped Cancel an active moveToTarget animation
world.physics.lookAt this.object.lookAt(target, strength, damping) — poqpoq mapped Continuously orient object toward a target position
world.physics.stopLookAt this.object.stopLookAt() — poqpoq mapped Cancel an active lookAt constraint
world.physics.setPhysicsShape this.object.setPhysicsShape(shapeType, params) — poqpoq mapped Override physics collision shape (box, sphere, mesh, etc.)

Terrain System

LSL Functionpoqpoq APIReturnOriginStatusNotes
world.terrain.setInfluence this.object.setTerrainInfluence(config) — poqpoq mapped Register this object as a terrain influence source (radius, falloff, texture, blend mode)
world.terrain.getInfluence this.object.getTerrainInfluence() — poqpoq mapped Get current terrain influence config for this object; returns config or null
world.terrain.clearInfluence this.object.clearTerrainInfluence() — poqpoq mapped Remove this object's terrain influence registration
world.terrain.getGroundTexture this.world.getGroundTexture(position) — poqpoq mapped Query dominant ground texture at a world position
world.terrain.getInfluences this.world.getTerrainInfluences(position, radius?) — poqpoq mapped Get all active terrain influences near a position
world.terrain.getEvents this.world.getTerrainEvents(position, radius, maxAge?) — poqpoq mapped Get recent terrain modification events (footprints, scorches, etc.)
world.terrain.setTexture this.world.environment.setTerrainTexture(position, textureId, radius, intensity?) — poqpoq mapped Paint terrain texture at a world position (requires Tier 3 permission)
world.terrain.applyEffect this.world.environment.applyTerrainEffect(position, effect) — poqpoq mapped Apply a transient terrain effect (TTL-based, e.g. scorch marks, frost)

VFX (Luminary)

LSL Functionpoqpoq APIReturnOriginStatusNotes
world.vfx.trigger this.world.vfx.trigger(archetype, position, options?) — poqpoq mapped Trigger a named VFX archetype at a world position via Luminary
world.vfx.getPalette this.world.vfx.getPalette(name) — poqpoq mapped Retrieve a read-only VFX palette snapshot via Luminary
world.vfx.registerArchetype this.world.vfx.registerArchetype(name, config) — poqpoq mapped Register a custom VFX archetype in user: namespace via Luminary

Compiler-managed functions

LSL Functionpoqpoq APIReturnOriginStatusNotes
llAngleBetween Compiler-managed translation; transpile LSL to inspect output float SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llAvatarOnSitTarget async Compiler-managed translation; transpile LSL to inspect output key SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llCollisionFilter Compiler-managed translation; transpile LSL to inspect output void SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llDetectedGrab Compiler-managed translation; transpile LSL to inspect output vector SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llDetectedGroup Compiler-managed translation; transpile LSL to inspect output key SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llDetectedLinkNumber Compiler-managed translation; transpile LSL to inspect output integer SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llDetectedOwner Compiler-managed translation; transpile LSL to inspect output key SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llDetectedTouchBinormal Compiler-managed translation; transpile LSL to inspect output vector SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llDetectedTouchFace Compiler-managed translation; transpile LSL to inspect output integer SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llDetectedTouchNormal Compiler-managed translation; transpile LSL to inspect output vector SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llDetectedTouchPos Compiler-managed translation; transpile LSL to inspect output vector SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llDetectedTouchST Compiler-managed translation; transpile LSL to inspect output vector SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llDetectedTouchUV Compiler-managed translation; transpile LSL to inspect output vector SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llDie Compiler-managed translation; transpile LSL to inspect output void SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llDumpList2String Compiler-managed translation; transpile LSL to inspect output string SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llGetAlpha async Compiler-managed translation; transpile LSL to inspect output float SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llGetAnimationList async Compiler-managed translation; transpile LSL to inspect output list SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llGetColor async Compiler-managed translation; transpile LSL to inspect output vector SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llGetPermissions Compiler-managed translation; transpile LSL to inspect output integer SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llGetPrimitiveParams async Compiler-managed translation; transpile LSL to inspect output list SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llGetScriptName Compiler-managed translation; transpile LSL to inspect output string SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llGetStartParameter Compiler-managed translation; transpile LSL to inspect output integer SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llGetStatus async Compiler-managed translation; transpile LSL to inspect output integer SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llGroundNormal Compiler-managed translation; transpile LSL to inspect output vector SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llGroundSlope Compiler-managed translation; transpile LSL to inspect output vector SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llInsertString Compiler-managed translation; transpile LSL to inspect output string SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llList2Key Compiler-managed translation; transpile LSL to inspect output key SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llLookAt Compiler-managed translation; transpile LSL to inspect output void SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llParseStringKeepNulls Compiler-managed translation; transpile LSL to inspect output list SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llPushObject Compiler-managed translation; transpile LSL to inspect output void SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llRezAtRoot Compiler-managed translation; transpile LSL to inspect output void SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llRezObject Compiler-managed translation; transpile LSL to inspect output void SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llSetClickAction Compiler-managed translation; transpile LSL to inspect output void SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llSetDamage Compiler-managed translation; transpile LSL to inspect output void SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llSetPhysicsShapeType Compiler-managed translation; transpile LSL to inspect output void SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llSetSitText Compiler-managed translation; transpile LSL to inspect output void SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llSetStatus Compiler-managed translation; transpile LSL to inspect output void SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llSetTorque Compiler-managed translation; transpile LSL to inspect output void SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llStartAnimation Compiler-managed translation; transpile LSL to inspect output void SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llStopAnimation Compiler-managed translation; transpile LSL to inspect output void SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llStopMoveToTarget Compiler-managed translation; transpile LSL to inspect output void SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llTargetOmega Compiler-managed translation; transpile LSL to inspect output void SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llUnSit Compiler-managed translation; transpile LSL to inspect output void SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llVolumeDetect Compiler-managed translation; transpile LSL to inspect output void SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
llWater Compiler-managed translation; transpile LSL to inspect output float SL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
osGetNotecardLine async Compiler-managed translation; transpile LSL to inspect output string OSSL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
osNpcGetPos async Compiler-managed translation; transpile LSL to inspect output vector OSSL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
osNpcGetRot async Compiler-managed translation; transpile LSL to inspect output rotation OSSL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
osNpcLoadAppearance Compiler-managed translation; transpile LSL to inspect output void OSSL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
osNpcMoveToTarget async Compiler-managed translation; transpile LSL to inspect output void OSSL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
osNpcSaveAppearance Compiler-managed translation; transpile LSL to inspect output key OSSL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
osNpcShout Compiler-managed translation; transpile LSL to inspect output void OSSL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
osNpcStopMoveToTarget Compiler-managed translation; transpile LSL to inspect output void OSSL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
osNpcTouch Compiler-managed translation; transpile LSL to inspect output void OSSL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.
osNpcWhisper Compiler-managed translation; transpile LSL to inspect output void OSSL resolver-only Recognized by the compiler; detailed API documentation and World/preview support need individual verification.