Skip to content
lsl.devlsl.devLSL Dev

llSetLinkAlpha

function
Function syntax
llSetLinkAlpha(
  1. integer link,// Link number (1 for root, >1 for children) or a LINK_* flag. Values: Links
  2. float alpha,// Transparency value to set, from 0.0 (clear) to 1.0 (solid).
  3. integer face// Face number or ALL_SIDES. Values: Faces
);
Energy
10

If a prim exists in the link set at link, set the Blinn-Phong alpha on face of that prim.

How to use
llSetLinkAlpha(0, 0.0, 0);
  • llSetLinkAlpha will have no visible effect on faces with a PBR material. To work on faces both with and without a PBR material, use one of these snippets:

  • invisible

    if (llIsLinkGLTFMaterial(LINK_THIS, ALL_SIDES)) {
    llSetLinkGLTFOverrides(LINK_THIS, ALL_SIDES, [OVERRIDE_GLTF_BASE_ALPHA_MODE, PRIM_GLTF_ALPHA_MODE_BLEND, OVERRIDE_GLTF_BASE_ALPHA, 0.0)]);
    } else {
    llSetLinkAlpha(LINK_THIS, 0.0, ALL_SIDES);
    }
  • visible

    if (llIsLinkGLTFMaterial(LINK_THIS, ALL_SIDES)) {
    llSetLinkGLTFOverrides(LINK_THIS, ALL_SIDES, [OVERRIDE_GLTF_BASE_ALPHA_MODE, "", OVERRIDE_GLTF_BASE_ALPHA, "")]);
    } else {
    llSetLinkAlpha(LINK_THIS, 1.0, ALL_SIDES);
    }
Example 1
5 collapsed lines
// Make the entire object disappear for 5 seconds
default
{
touch_start(integer num_detected)
{
// transparent
llSetLinkAlpha(LINK_SET, 0.0, ALL_SIDES);
llSetTimerEvent(5.0);
}
timer()
{
// opaque
llSetLinkAlpha(LINK_SET, 1.0, ALL_SIDES);
llSetTimerEvent(0.0);
}
}
Example 2
9 collapsed lines
// when the object is touched,
// fade it out and back in again
default
{
touch_start(integer num_detected)
{
// fade out
float alpha = 1.0;
while (alpha >= 0.0)
{
llSetLinkAlpha(LINK_SET, alpha, ALL_SIDES);
alpha -= 0.001;
}
// fade in
while (alpha < 1.0)
{
alpha += 0.001;
llSetLinkAlpha(LINK_SET, alpha, ALL_SIDES);
}
}
}
Example 3
40 collapsed lines
// Makes selected prims in a linkset become transparent or visible on chat command. Give each prim a unique name.
list PrimList = ["ALL"];
// Start our prim list with a dummy entry, so that the index into this list will correspond directly to the link number
// By making the dummy entry 'ALL' we provide a match for that option too
default
{
changed (integer change)
{
if (change & CHANGED_LINK)
llResetScript();
}
state_entry()
{
integer PrimCount = llGetNumberOfPrims();
llListen(37, "", NULL_KEY, ""); // listen to chat commands from anyone on channel 37
integer i;
for (i = 1; i <= PrimCount; ++i)
PrimList += llToUpper(llGetLinkName(i) ); // Build a list of upper-case link names, where list position equals link number
}
listen(integer channel, string name, key id, string msg)
{
list TempList = llCSV2List( llToUpper(msg) ); // make a list from upper-case version of user command line
integer ListLen = llGetListLength (TempList);
integer alpha = (llList2String(TempList, 0) == "SHOW");
// 'SHOW' sets selected prims visible, otherwise set them transparent
// e.g. HIDE,PLATE,SPOON,NAPKIN <---- makes named prims invisible
// e.g. SHOW,ALL <---- makes all prims visible
integer i;
for (i = 1; i < ListLen; ++i)
{
string ThisPrim = llStringTrim(llList2String(TempList, i), STRING_TRIM);
integer LinkNumber = llListFindList(PrimList, [ThisPrim]);
if (~LinkNumber) // i.e. if LinkNumber != -1
{
if (!LinkNumber)
LinkNumber = LINK_SET; // list position 0 is 'ALL'
llSetLinkAlpha(LinkNumber, alpha, ALL_SIDES);
}
}
}
}
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.