Skip to content
lsl.devlsl.devLSL Dev

llGetScriptState

function
Function syntax
integer llGetScriptState(
  1. string script// Name of the script in the prim's inventory.
);
Returns
integer
Energy
10

Returns a boolean integer indicating whether the specified script in the prim's inventory is running (returns TRUE if running, FALSE otherwise).

Returns an integer that is TRUE if the script is running.

How to use
integer result = llGetScriptState("");
Example 1
8 collapsed lines
default
{
touch_start(integer num_detected)
{
integer numberOfScripts = llGetInventoryNumber(INVENTORY_SCRIPT);
integer index;
do
{
string scriptName = llGetInventoryName(INVENTORY_SCRIPT, index);
integer scriptState = llGetScriptState(scriptName);
// default value
11 collapsed lines
string output = "FALSE";
// else
if (scriptState) output = "TRUE";
// PUBLIC_CHANNEL has the integer value 0
llSay(PUBLIC_CHANNEL,
"Script named '" + scriptName + "' has current script state '" + output + "'.");
}
while (++index < numberOfScripts);
}
}
Example 2
18 collapsed lines
// Monitor other scripts in the object, then report, restart or both if some have crashed
// NB: cannot distinguish a manually stopped script or restart one
integer TRY_RESTART = FALSE;
integer REPORT = TRUE;
default
{
state_entry() {
// monitoring rate = once per minute
llSetTimerEvent(60);
}
timer() {
integer i = llGetInventoryNumber(INVENTORY_SCRIPT);
string script_name;
list stopped;
while(--i >= 0) {
// the script will also monitor itself, but there is little reason to specifically skip
script_name = llGetInventoryName(INVENTORY_SCRIPT, i);
if(!llGetScriptState(script_name)) {
if(TRY_RESTART)
llResetOtherScript(script_name);
if(REPORT)
stopped += script_name;
}
}
if(stopped) {
7 collapsed lines
string message = "The following scripts were crashed/stopped: " + llList2CSV(stopped) + ".";
if(TRY_RESTART)
message += " A restart was attempted.";
llInstantMessage(llGetOwner(), message);
}
}
}
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.