A Hat Block is a block that starts a script. This makes them essential for making projects. All hat blocks are either Control blocks, Events blocks, or More Blocks. In the Experimental Viewer, the first word of their name is capitalised.
Hat blocks are useful in Event Based Programming.
As Hat blocks are designed to start a script, they are shaped so no blocks can go on top of them — this is done by rounding the blocks' top. The bottom of Hat blocks are the same as Stack Blocks.
when gf clicked //This is a hat block. go to [mouse-pointer v]
There are fourteen Hat blocks in Scratch. Four are used for extensions. One is made with every instance of a custom block. They are:
when gf clicked
when [ v] key pressed
when this sprite clicked
when i receive [ v]
when backdrop switches to [ v]
when i start as a clone
when () > [ v]
when <> is true :: hat events
A wanted hat block is When () Is True. It was available in the November 2006 beta but was removed in Scratch 1.0. It is available in some Scratch Modifications. This block can be reproduced by doing the following:
when gf clicked forever wait until <... :: grey> broadcast [true v] wait until <not <... :: grey>> when I receive [true v] ...
when gf clicked forever if <... :: grey> then end
The latter is equivalent to the replacement in Scratch 1.0.
Without Hat blocks, scripts could only be activated manually by clicking them, and not at all online. Each Hat block has a different method for getting activated — this is so different scripts can be started at different times. There are four different ways to activate a script — when the Green Flag is clicked, a key is pressed, the sprite is clicked, when a broadcast is received.
An example for when the When I Receive () block can be used as follows:
when I receive [Next Level v] next costume
Snap! Hat Blocks
In the Scratch Modification Snap!, hat blocks are used in definitions of Custom Blocks (procedures). These hat blocks contain an image of the block on them. The custom block carries out the script attached to the bottom of the hat block.
Hat blocks cannot be created in BYOB/Snap! 4.0, but may be available in BYOB/Snap! 4.1.