LlSetText - Second Life Wiki

LlSetText

From Second Life Wiki

Jump to: navigation, search

Function: llSetText( string text, vector color, float alpha );

152 Function ID
0.0 Delay
10.0 Energy

Displays text over a prim with specific color and transparency (specified with alpha).

• string text text to display between the quotes
• vector color color in RGB <R, G, B> (<0.0, 0.0, 0.0> = black, <1.0, 1.0, 1.0> = white)
• float alpha from 0.0 (clear) to 1.0 (solid) (0.0 <= alpha <= 1.0)

Caveats

  • A script calling llSetText cannot know if it is or is not changing the floating text, since there is no llGetText function.
  • The floating text is a property of the prim and not the script, thus the text will remain if the script is deactivated or removed.
    • To remove floating text, one must assign an empty string with:

 
llSetText("", <1.0, 1.0, 1.0>, 1.0);
 
  • Vertical whitespace is removed from the end of the text string, so if you want vertical whitespace put any character (like a space) on the last line:

 
llSetText("Monkeys\n\n\n\n\n", <1.0, 1.0, 1.0>, 1.0);//Bad
llSetText("Monkeys\n\n\n\n\n ", <1.0, 1.0, 1.0>, 1.0);//Good
 

Examples

Example of how llSetText could be included in default code to show object's name in green text:

 
default
 {
     state_entry()
     {
          llSay(0, "Hello, Avatar!");
          llSetText(llGetObjectName(), <0.0, 1.0, 0.0>, 1.0); // Display object's name in green
     }
 
     touch_start(integer total_number)
     {
          llSay(0, "Touched.");
     }
 }
 

By default the floating text will appear on a single line. However, the floating text can be spread over multiple lines by using a line break "\n" (read SplitLine in section 'See Also'). Example colors:

 
vector white = <1.0, 1.0, 1.0>;
vector red = <1.0, 0.0, 0.0>;
vector green = <0.0, 1.0, 0.0>;
vector blue = <0.0, 0.0, 1.0>;
vector grey = <0.5, 0.5, 0.5>;
vector black = <0.0, 0.0, 0.0>;
 

<1.0, 1.0, 1.0> represents the values for red, green, and blue. <1.0, 1.0, 1.0>, means "white" and <0.0, 0.0, 0.0> means "black":

 
llSetText("I am on", <1.0, 1.0, 1.0>, 1.0);
 

 
llSetText("I am off", <0.0, 0.0, 0.0>, 1.0);
 

The 1.0 is the alpha setting. 1.0 means fully opaque, and 0.0 would be completely transparent (invisible):

 
llSetText("alpha", <0.0, 1.0, 0.0>, 0.5);
 

Multiple lines:

 
llSetText("I am \n on two lines!", <0.0, 1.0, 0.0>, 1.0);
 

Useful Snippets

Drag this script out of inventory onto an object to erase its set text:

 
// http://wiki.secondlife.com/wiki/llSetText
default
{
    state_entry()
    {
        llSetText("", <0.0, 0.0, 0.0>, 0.0);
        llRemoveInventory(llGetScriptName());
    }
}
 

See Also

Articles

•  Color in LSL
•  Translucent Color
•  Examples: SplitLine Insert 'new line' escape codes at certain positions of a string
•  Useful snippet: llGetObjectPermMask Label an object with text and newlines to give away or sell