(edit this)
  • System usage: #define EXECUTE 0
  • Application usage: #define APP_EXECUTE -1000
  • Introduced in: 8.0.0
  • Processed by: depends on parameters


General message for performing system shell commands ("@" commands.) Applications should inspect the string parameter to determine if it is appropriate for them to respond, by splitting the string (using llParseStringToList(message, [" "]) or the equivalent NS macro split(message, " ")) and then checking the first word of the resultant list to see if it matches the application's chosen name. See application development overview for explanation of how to register commands.

EXECUTE is favored for delegated tasks, such as event-driven, batch-driven and menu-driven command execution. Direct use of "@" commands will generate a COMMAND message, instead. As such, when responding to message 0, minimal output is encouraged, or, for strictly informative functions (such as a human-readable status report), output may be sent to local chat rather than the designated recipient.

Do not assume that llGetOwner() is the intended recipient of text output, and if possible avoid assuming an agent initiated or will see command output. The key parameter indicates the intended recipient, and you should send messages to it using the syntax llMessageLinked(LINK_ROOT, PIPE_SEND, <message>, <id>);. Delivery will be handled by the system's transceiver (NetworkService) component.

Parameter format: String parameter: the complete command line, as would be entered by the user without any prefixed sigils, such as "vox vocabulary rafael", or "shutdown -t now". Key parameter: a pipe, which may be equal to an avatar's UUID.