# Script Add-ins

_Script Add-ins_ are script files that are installed in the Opus _Script Addins_ folder (you can find this folder by typing **/dopusdata/Script AddIns** into the location field). Script add-ins are plain text files with an extension that specifies the script language in use (e.g. a file ending with **.js** would be a _JScript_ script). One or more script add-ins can be bundled, optionally with a set of icons, in an archive called a [_Script Package_](script_add-ins/script_package) (a zip file with the **.osp** suffix).

Whereas [script functions](https://github.com/Chaoses-Ib/DirectoryOpus/blob/main/Manual/scripting/script_add-ins/script_functions.md) are only called whenever the button they reside in is clicked, script add-ins can be invoked automatically in response to one or more [events](../reference/scripting_reference/scripting_events). Each script can provide handling for one or more defined event entry points, and Opus will automatically call on each script that provides handling for the event in question. Some of the events that scripts are notified for include when tabs are activate or deactivated, before and after folder changes, when the view mode is changed and when Listers are opened or closed. Script add-ins can also implement [custom commands](https://github.com/Chaoses-Ib/DirectoryOpus/blob/main/Manual/scripting/script_add-ins/example_scripts/adding_a_new_internal_command.md), which let you extend the Opus internal command set in a similar way to _User commands_, and [custom columns](https://github.com/Chaoses-Ib/DirectoryOpus/blob/main/Manual/scripting/script_add-ins/example_scripts/adding_a_new_column.md), which let you add additional information columns for files and folders.

The [**Script Management**](script_management) dialog displays a list of any add-in scripts that have been installed. You can use the checkbox to enable or disable each script.

![](https://3597805814-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3XSZSwWow0fDf6fQJobd%2Fuploads%2Fgit-blob-870de574bd2c5afe5228eef8946d5b3f20252e85%2Fscript_list_001.png?alt=media)

If you select a script in the list it reveals more information about it (a description, copyright information, and a list of the commands, columns and events that the scripts implements). The **About** and **Configure** buttons will be active if the script supports those actions. Clicking the **Edit** button will open the script in your default text editor (standalone scripts only).

You can easily install new scripts or script packages by dragging and dropping them onto the _Scripts_ list. You can also create a new script using the **New Script** button in the toolbar above the list of scripts. This displays the _Create New Script_ dialog:

![](https://3597805814-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3XSZSwWow0fDf6fQJobd%2Fuploads%2Fgit-blob-47bc12aa1b5ff2138ea06f5ee77570bc09bcdba7%2Fnewscript.png?alt=media)

This dialog lets you create a template for a _JScript_ or _VBScript_ script. Select the desired language, and enter a name, optional description and copyright string, and then use the checkboxes in the list to select the events that you want the script to create functions for.

The last two events in the list, _NewScriptCommand_ and _NewScriptColumn_, let you create a script that adds internal commands or columns. When you turn this option on it will activate and let you enter a new name for the command or column. Press return to accept the new name, and another _NewScriptXXX_ entry will be added to the list. In this way you can easily create a template for a script that adds multiple internal commands or columns.

More:

[Script Package](script_add-ins/script_package)
