Skip to content
lsl.devlsl.devLSL Dev

llSetScriptState

function
Function syntax
llSetScriptState(
  1. string script,// Name of the script in the prim's inventory.
  2. integer running// Boolean. If TRUE, enables the script; if FALSE, disables it.
);
Energy
10

Sets the running state of the named script in the prim's inventory. If running is TRUE, the script is enabled; if FALSE, it is disabled.

Set the running state of the script name.

How to use
llSetScriptState("", 0);
  • Cannot be used to restart a script that has encountered a run-time error.
  • Cannot be used to start a script that has been added via llGiveInventory. Scripts sent via llRemoteLoadScriptPin, and which have the running state set FALSE by that command, may be started.
  • The script appears to stop when its time slice ends, not sooner. If a script tries to stop itself then some LSL code following the llSetScriptState call may be executed before the script stops.
  • If a script is paused by llSetScriptState and is then either re-rezzed, in a region during a restart, or moved into a different region, the script’s memory is reset.
Example 1
//Stops the Script, at some non-deterministic time later, until invoked with TRUE, in another script
llSetScriptState(llGetScriptName(),FALSE);
// Stall until end of time slice
llSleep(0.1);
Example 2
//Starts Another Script
llSetScriptState("somescript",TRUE);

From the issue templates included by the wiki article:

  • SVC-1853 (bug): Scripts deactivated by llSetScriptState are reset when the region is reset, when they are taken into inventory and re-rezzed and when crossing sim boundaries.
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.