A Hat Block is a block that starts a script when a specific event occurs. All hat blocks are either Control blocks, Events blocks, My Blocks, or Extension 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 twenty-four Hat blocks in Scratch. Sixteen are used for extensions. One is made with every instance of a custom block.
|Note:||Click on a block for more information.|
when gf clicked
when [ v] key pressed
when this sprite clicked
when I receive [ v]
when backdrop switches to [ v]
when [ v] \> ()
when I start as a clone
when video motion > ()
when ( v) key pressed::makeymakey
when ( v) pressed in order
when ( v) button pressed::microbit
when ( v)::microbit
when tilted ( v)::microbit
when pin ( v) connected::microbit
when button ( v) pressed
when distance \< ()
when brightness \< ()
when ( v) brick seen
when distance ( v) ()::wedo
when tilted ( v)::wedo
when ( v)::gdxfor
when force sensor ( v)::gdxfor
when ( v)::gdxfor
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.
Hat blocks signal for the project to run a script after an event has happened, and therefore allows the code to be run automatically without a user having to click on the script to run the code. As there are 24 Hat blocks, there are 24 different forms of events that can occur to start a script.
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.
Custom hat blocks cannot yet be created in Snap!
- Main article: Cat Block
For April Fools Day 2020, all hat blocks were replaced with 'Cat Blocks', where a cat drawing was put on top of them. Rolling the mouse over near the eyes of the cat block would cause its eyes to blink, and mousing over its ear would cause the ear to move.