Skip to content
lsl.devlsl.devLSL Dev

llTriggerSoundLimited

function
Function syntax
llTriggerSoundLimited(
  1. string sound,// Name of a sound in the prim's inventory, or a UUID.
  2. float volume,// Volume level to set, between 0.0 (silent) and 1.0 (loud).
  3. vector top_north_east,// Top-north-east boundary position vector in region coordinates.
  4. vector bottom_south_west// Bottom-south-west boundary position vector in region coordinates.
);
Energy
10

Plays sound at volume, centered at but not attached to the object, limited to the box defined by vectors top_north_east and bottom_south_west

If the object moves the sound does not move with it.

Use llPlaySound to play a sound attached to the object.

How to use
llTriggerSoundLimited("", 0.0, ZERO_VECTOR, ZERO_VECTOR);
  • Unlike llSetSoundRadius, the sound audibility is determined by avatar position and not camera position.
  • If the script is attached and the parcel has avatar sounds turned off, an error is shouted on DEBUG_CHANNEL: “Too many sound triggers.”
Example 1
/*
Single Prim llTriggerSoundLimited Helper by Daemonika Nightfire.
Just use this script in a single prim and make the prim as big as your room.
29 collapsed lines
If you then click on the prim, the sound will only be triggered inside and you will get a message with a finished LSL code.
You can simply copy this code to the clipboard and use it in your actual script.
Important:
You cannot rotate the prim, the code needs global coordinates.
*/
string sound = "c704dbd8-53b1-246d-e197-b486e92da45b"; // use here your own sound uuid
////////// nothing to do below this line \\\\\\\\\\
default
{
state_entry()
{
llSetStatus(STATUS_PHANTOM, TRUE);
llSetRot(ZERO_ROTATION);
}
touch_start(integer total_number)
{
llSetRot(ZERO_ROTATION);
vector my_pos = llGetPos();
vector my_scale = llGetScale();
float _X = my_scale.x/2;
float _Y = my_scale.y/2;
float _Z = my_scale.z/2;
vector bottom_south_west = <my_pos.x - _X, my_pos.y - _Y, my_pos.z - _Z>;
vector top_north_east = <my_pos.x + _X, my_pos.y + _Y, my_pos.z + _Z>;
llTriggerSoundLimited(sound, 1.0, top_north_east, bottom_south_west);
llOwnerSay("\nllTriggerSoundLimited(\"" + sound + "\", 1.0, " + (string)top_north_east + ", " + (string)bottom_south_west + ");");
7 collapsed lines
}
on_rez(integer Dae)
{
llResetScript();
}
}
Example 2

This will play a sound on collision, only to the person who collided with it.

It can be used for haunted houses where you want to add confusion, since others wont hear!

8 collapsed lines
string sound = "a9da4612-5d4b-662a-050a-c821c394991f"; // squeaky toy
playSoundAt(key avatar, string sound, float volume)
{
if (llGetAgentSize(avatar)) // Make sure theyre actually present
{
vector pos = (vector)llList2String(llGetObjectDetails(avatar, [OBJECT_POS]),0); // Their position
list scale = llGetBoundingBox(avatar); // The corners of their bounding box
vector corner2 = pos+llList2Vector(scale,1); // Top northeast corner of their bounding box
vector corner1 = pos+llList2Vector(scale,0); // Bottom southwest corner of their bounding box
llTriggerSoundLimited(sound, volume, corner2, corner1); // Play sound in their location only
}
}
9 collapsed lines
default
{
collision_start(integer n)
{
key bumper = llDetectedKey(0);
float volume = 1.0; // Volume is affected by distance like llPlaySound!
playSoundAt(bumper, sound, volume);
}
}

Added in SL 0.4.0

From the issue templates included by the wiki article:

  • SVC-4897 (nf): llSetSyncTime() - a function for synchronising client side effects
Original wiki source

Some wiki templates and tables need their original context. View this article on the Second Life Wiki. Technical wording and examples are retained from the source; historical guidance may differ from current behavior.