Function Reference
Every LSL function mapped to its poqpoq TypeScript equivalent. Auto-generated from source.
195 functions across 31 categories
Communication (10)
Object Manipulation (23)
Physics (7)
Agent Interaction (13)
Effects & Sound (6)
Timer & Sleep (2)
Perception & Sensors (4)
sim (3)
Data & HTTP (4)
Math (19)
String (8)
List / Array (11)
Environment (3)
time (1)
world (1)
OSSL — NPC (9)
OSSL — Data (2)
OSSL — Terrain (3)
OSSL — Agent (1)
OSSL — Texture (1)
Media on a Prim (6)
Dialog / UI (4)
Inventory (10)
Economy / Money (4)
NPC — Combat & Hostility (6)
NPC — Steering Behaviors (2)
NPC — Spatial Queries (2)
Avatar Attachments (6)
Physics Extensions (13)
Terrain System (8)
VFX (Luminary) (3)
Communication
| LSL Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
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 |
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.say(0, message) |
void |
SL | mapped | Channel 0 to owner only |
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 Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
llSetPos |
this.object.setPosition(pos) |
void |
SL | mapped | Returns Promise, no 0.2s delay |
llGetPos |
this.object.getPosition() |
vector |
SL | mapped | |
llSetRot |
this.object.setRotation(rot) |
void |
SL | mapped | |
llGetRot |
this.object.getRotation() |
rotation |
SL | mapped | |
llSetScale |
this.object.setScale(scale) |
void |
SL | mapped | |
llGetScale |
this.object.getScale() |
vector |
SL | mapped | |
llSetColor |
this.object.setColor(color, face) |
void |
SL | mapped | |
llSetAlpha |
this.object.setAlpha(alpha, face) |
void |
SL | mapped | |
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 |
this.object.name |
string |
SL | mapped | |
llGetObjectDesc |
this.object.description |
string |
SL | mapped | |
llGetKey |
this.object.id |
key |
SL | mapped | |
llGetCreator |
this.object.creatorId |
key |
SL | mapped | |
llGetOwner |
this.owner.id |
key |
SL | mapped | |
llGetNumberOfPrims |
this.object.getLinkCount() |
integer |
SL | mapped | |
llGetLinkKey |
this.object.getLinkKey(link) |
key |
SL | mapped | ADR-009: flat command. Served from local snapshot.linkKeys (ADR-008) without engine roundtrip. |
llGetLinkNumber |
this.container.getLinkNumber() |
integer |
SL | mapped | ADR-058: Routed to host LinkSetRegistry |
llGetLinkName |
this.container.getLinkName(link) |
— | 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 |
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. |
Physics
| LSL Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
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 |
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) |
— | SL | mapped |
Agent Interaction
| LSL Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
llDetectedKey |
detected[index].id |
key |
SL | mapped | Uses array index instead of function |
llDetectedName |
detected[index].name |
— | 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 |
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. |
llRequestPermissions |
this.requestPermissions(agent, perms) |
void |
SL | mapped | |
llSitTarget |
this.object.setSitTarget(offset, rot) |
void |
SL | mapped | |
llAttachToAvatar |
this.world.attachToAvatar(point) |
— | SL | mapped | |
llAttachToAvatarTemp |
this.world.attachToAvatarTemp(point) |
— | SL | mapped | |
llDetachFromAvatar |
this.world.detachFromAvatar() |
— | SL | mapped | |
llGetAttached |
this.object.getAttached() |
integer |
SL | mapped |
Effects & Sound
| LSL Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
llParticleSystem |
this.object.particles(config) |
void |
SL | mapped | Uses ParticleConfig instead of rule list |
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.playSound(sound, { spatial: false }) |
void |
SL | mapped | |
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). |
Timer & Sleep
| LSL Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
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 Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
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 |
await this.world.raycast(start, end, options) |
list |
SL | mapped | ADR-010: routed to PhysicsSystemLike.raycast. Returns Promise<RaycastHit[]> — must await. |
sim
| LSL Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
llGetRegionAgentCount |
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 |
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 |
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 Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
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 |
llGetFreeMemory |
/* no equivalent — no memory limit */ |
integer |
SL | deprecated | No 64KB limit in poqpoq |
llGetNumberOfNotecardLines async |
await this.world.getNumberOfNotecardLines(name) |
key |
SL | mapped | Async — returns key, triggers dataserver |
Math
| LSL Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
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 | |
llAxes2Rot |
Quaternion.fromAxisAngle(axis, angle) |
rotation |
SL | mapped | |
llFrand |
Math.random() * max |
float |
SL | mapped | |
llAbs |
Math.abs(val) |
integer |
SL | mapped | |
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 | |
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 Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
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 | |
llParseString2List |
str.split(separator) |
list |
SL | mapped | |
llStringTrim |
str.trim() |
string |
SL | mapped |
List / Array
| LSL Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
llGetListLength |
arr.length |
integer |
SL | mapped | |
llList2String |
arr[index] |
string |
SL | mapped | TypeScript arrays are typed |
llList2Integer |
arr[index] |
integer |
SL | mapped | |
llList2Float |
arr[index] |
float |
SL | mapped | |
llList2Vector |
arr[index] |
vector |
SL | mapped | |
llListSort |
arr.sort() |
list |
SL | mapped | |
llListFindList |
arr.findIndex() |
integer |
SL | mapped | |
llList2CSV |
arr.join(',') |
string |
SL | mapped | |
llCSV2List |
str.split(',') |
list |
SL | mapped | |
llListInsertList |
arr.splice(pos, 0, ...items) |
list |
SL | mapped | |
llDeleteSubList |
arr.splice(start, count) |
list |
SL | mapped |
Environment
| LSL Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
llGetTimeOfDay |
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 |
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) |
— | 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. |
time
| LSL Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
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. |
world
| LSL Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
llGround |
await this.world.getGroundHeight(pos) |
float |
SL | mapped | ADR-010: routed to EnvironmentSystemLike.getGroundHeight. Returns Promise<number>. |
OSSL — NPC
| LSL Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
osNpcCreate async |
this.world.npc.create(name, pos, appearance) |
key |
OSSL | mapped | |
osNpcRemove async |
npc.remove() |
void |
OSSL | mapped | |
osNpcMoveTo async |
await npc.moveTo(pos) |
void |
OSSL | mapped | Returns Promise |
osNpcSay |
npc.say(message, channel) |
void |
OSSL | mapped | |
osNpcSit |
npc.sit(target) |
void |
OSSL | mapped | |
osNpcStand |
npc.stand() |
void |
OSSL | mapped | |
osNpcPlayAnimation |
npc.playAnimation(anim) |
void |
OSSL | mapped | |
osNpcStopAnimation |
npc.stopAnimation(anim) |
void |
OSSL | mapped | |
osNpcSetRot |
npc.setRotation(rot) |
void |
OSSL | mapped |
OSSL — Data
| LSL Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
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 Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
osSetTerrainHeight |
this.world.environment.setTerrainTexture(pos, texId, radius) |
void |
OSSL | mapped | ADR-001 Layer 6 — Tier 3 permission required |
osGetTerrainTexture |
this.world.getGroundTexture(pos) |
— | OSSL | mapped | ADR-001 — returns dominant textureId |
osSetTerrainTexture |
this.world.environment.setTerrainTexture(pos, texId, radius) |
— | OSSL | mapped | ADR-001 Layer 6 — requires Tier 3 permission |
OSSL — Agent
| LSL Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
osTeleportAgent |
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. |
OSSL — Texture
| LSL Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
osSetDynamicTextureURL |
this.object.setTexture(url, face) |
void |
OSSL | partial |
Media on a Prim
| LSL Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
llSetPrimMediaParams |
this.object.setMediaParams(face, rules) |
integer |
SL | mapped | Rules list uses PRIM_MEDIA_* constants |
llClearPrimMedia |
this.object.clearMedia(face) |
integer |
SL | mapped | |
llGetPrimMediaParams |
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 |
this.object.getLinkMediaParams(link, face, params) |
list |
SL | mapped | ADR-009: flat command. Returns Promise<unknown[]> — must await. |
Dialog / UI
| LSL Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
llDialog |
this.world.dialog(av, msg, buttons, ch) |
void |
SL | mapped | |
llTextBox |
this.world.textBox(av, msg, ch) |
— | SL | mapped | |
llLoadURL |
this.world.loadURL(av, msg, url) |
void |
SL | mapped | |
llMapDestination |
this.world.mapDestination(sim, pos, look) |
void |
SL | mapped |
Inventory
| LSL Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
llGetInventoryNumber |
this.container.getAssetCount(type) |
integer |
SL | mapped | |
llGetInventoryName |
this.container.getAssetName(type, index) |
string |
SL | mapped | |
llGetInventoryType |
this.container.getAssetType(name) |
integer |
SL | mapped | |
llGetInventoryKey |
this.container.getAsset(name)?.id |
— | SL | mapped | |
llGetInventoryCreator |
this.container.getAssetCreator(name) |
— | SL | mapped | |
llGetInventoryPermMask |
this.container.getAssetPermMask(name, mask) |
— | SL | mapped | |
llAllowInventoryDrop |
this.object.allowInventoryDrop(flag) |
— | 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 Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
llGiveMoney |
this.world.giveMoney(target, amount) |
— | 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() |
— | SL | mapped |
NPC — Combat & Hostility
| LSL Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
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 Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
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 Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
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 Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
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 Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
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 Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
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 Function | poqpoq API | Return | Origin | Status | Notes |
|---|---|---|---|---|---|
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 |