Eng:Script

A script is a collection or stack of blocks that all interlock with one another. The blocks and their order are very important, as they determine how sprites interact with each other and the backdrop. Sometimes, comments are attached to scripts to explain what certain blocks do and what the script's purpose is.

Use
Scripts are easy to work with. Some "rules" are as follows:
 * To create a script, one simply has to drag blocks out of the Block Palette and assemble them.
 * To assemble blocks, they must be dragged on, below, or in another block. (Except for Hat Blocks.)
 * To disassemble blocks, they must be dragged apart.
 * To remove a script, drag it into any of the block palettes, or right-click the hat block and press delete.
 * To start a single script just click on it.

Scripts can be edited in the scripts tab of every sprite and the Stage.

Structure
Every block shape is designed so that it can do one or more of the following: Because of that, blocks can be assembled to create a script like a jigsaw puzzle. This prevents syntax errors.
 * Start a script
 * Add to the end of a script
 * End a script
 * Fit inside other blocks.
 * Contain other blocks.

Definition
A script is defined within the Scratch program as one or a set of blocks that begins with a Hat Block. Even a single block can qualify. However, scripts are usually referred to as sets of blocks that consist of at least two blocks.

Script Errors
When using previous versions, when putting certain blocks together, it is sometimes possible to make an impossible script (impossible meaning that it cannot function, see the below example.) When impossible scripts are run, in development mode, the script is outlined in red, the trouble-causing block colored red, and the whole script is paused. Online, the player simply ignores it and moves on if possible. In the current 2.0, if you have an error like the one shown, the script will just stop.

Errors are usually caused mathematically, such as when a script tries to divide by zero or find the square root of negative one. Trigonometric errors are also common. Other common errors are caused by using a block only available in sprites in the stage, or when an nonexistent item of a list is being accessed.

For a tutorial on fixing scripts like this, see the article Debugging Scripts.