Script dialog

The script dialog is located at [Menu bar --> Tools --> Scripts]. Alternatively, it can also be accessed through its toolbar button:

[Script toolbar button]


[Script dialog]


  • Insert new script: allows adding new scripts.
  • Script listing: all scripts that are loaded. Scripts can be removed by using the delete-key. A double-click opens the script in the script editor. A script can also be opened with a double-click on a script icon in the scene hierarchy.
  • Disabled: indicates whether the script is enabled or disabled. For a given model, it is also possible to disable all of its child- and customization scripts in the model dialog.
  • Execute just once: this item applies only to threaded child scripts. When this item is unchecked, then a thread that ended will be relaunched by the main script.
  • Disable with error: since customization scripts run constantly, it can be difficult to react to a script error. By enabling this checkbox, a customization script will disable itself upon an error.
  • Associated object: object that is currently associated with the script.
  • Execution priority: specifies the execution priority for a script. The execution priority relates only to same-type scripts (i.e. non-threaded child scripts, threaded child scripts, or customization scripts), and only to scripts that are siblings in the scene hierarchy. More details can be found here.
  • Tree traveral: specifies when a script is executed, in relation to the scripts attached further down in the scene hierarchy (its descendants scripts). With reverse, the descendant scripts are first executed, with forward, the descendant scripts are executed last. Same as parent uses the same tree traversal as the first ancestor script. The tree traversal relates only to same-type scripts (i.e. non-threaded child scripts, threaded child scripts, or customization scripts). More details can be found here.
  • Debug mode: offers a simple way to monitor function calls and to watch variables. The functionality is enabled by intercepting every call (once before it actually happens, and also once it has executed) and calling the debug function __HIDDEN__.debug.entryFunc in the script lua/sim.lua (which can be modified by the user if needed). Following debug modes are supported:
  • watch system calls: monitors only calls originating from outside the script
  • watch variables, ~1 second interval: monitors changes in variables at an approximate one second interval. sim.setDebugWatchList can be used to watch specific variables only.
  • watch all calls (slow): monitors all function calls
  • watch variables (slow): monitors changes in variables at each function call (before and after). sim.setDebugWatchList can be used to watch specific variables only.
  • watch calls and variables (slow): monitors all function calls and changes in variables. sim.setDebugWatchList can be used to watch specific variables only.


  • Recommended topics

  • The script editor
  • Script execution