(Redirected from Block)

SandCastleIcon.png This page has links to websites or programs not trusted by Scratch or hosted by Wikipedia. Remember to stay safe while using the Internet, as we can't guarantee the safety of other websites.
This article or section documents the current version of Scratch (version 3.0). For this article in Scratch 2.0, see Blocks (2.0). For this article in Scratch 1.4, see Blocks (1.4).
This article is about the programming blocks. For other uses, see Blocks (disambiguation).

Blocks are puzzle-piece shapes that are used to create code in Scratch. The blocks connect to each other vertically like a jigsaw puzzle, where each data type (hat, stack, reporter, boolean, or cap) has its own shape and a specially shaped slot for it to be inserted into, which prevents syntax errors. Series of connected blocks are called scripts.

Blocks are often easier to work with than text-based programming, as one has to memorize the commands typed and syntax errors may occur. However, text-based programming is more flexible, as blocks cannot be easily edited.

There are ten categories of blocks: Motion, Looks, Sound, Event, Control, Sensing, Operators, Variables, List, and My Blocks. The list blocks are shown under the Variables Blocks.

In total, there are seven Hat Blocks, five C Blocks, thirty-one Reporter Blocks, thirteen Boolean Blocks, two Cap Blocks and fifty-nine Stack Blocks.
Note Note: Block numbers do not include extensions.

Block Shapes

There are six different block shapes: Hat, Stack, Boolean, Reporter, C and Cap.

Hat blocks

The shape of a Hat block.
Main article: Hat Block

Hat blocks are the blocks that start every script. They are shaped with a rounded top and a bump at the bottom — this is so you can only place blocks below them. There are 11 Hat blocks in the Scratch editor, six of which are in the Events category, one in the Control category, and one in the category My Blocks (if one has created one custom block).

Stack blocks

The shape of a Stack block.
Main article: Stack Block

Stack blocks are the blocks that perform the main commands. They are shaped with a notch at the top and a bump on the bottom — this is so blocks can be placed above and below them. There are 77 Stack blocks — the most common block shape.

Boolean blocks

The shape of a Boolean block.
Main article: Boolean Block

Boolean blocks are the conditions — they are either true or false. For example, asking a computer: "Does 2 + 2 = 4?", and it would either tell you "Yes" or "No". With a hexagonal shape, there are 13 of these blocks.

Reporter blocks

The shape of a Reporter block.
Main article: Reporter Block

Reporter blocks are the values. Reporter blocks can hold numbers and strings. It is like asking a friend, for example, "What is 2 + 2?", and they would answer "4". It can also report a variable. For example, "What is your age?" and they may answer: "15". Shaped with rounded edges, there are 37 of these blocks — not counting the theoretically infinite amount of Reporter blocks that can be made for each variable and list.

C blocks

The shape of one of the C blocks.
Main article: C Block

C blocks are blocks that take the shape of "C's". Also known as "Wrap blocks", these blocks loop the blocks within the Cs or check if a condition is true. There are five C blocks, and they can be found in the Control category. C blocks can be bumped at the bottom, or capped.

Cap blocks

The shape of a Cap block.
Main article: Cap Block

Cap blocks are the blocks that end scripts. They are shaped with a notch at the top and a flat bottom — this is so you cannot place any blocks below them. There are two Cap blocks which can both be found in the Control category.

List of Blocks

There are 119 blocks in Scratch 3.0 (not including extensions):

Motion blocks

Main article: Motion Blocks


Motion blocks are the blocks that control a Sprite's movement. There are 17 Motion blocks in Scratch 3.0.

Scratch 3.0 has the following fifteen Motion Stack blocks:

Scratch 3.0 has the following three Motion Reporter blocks:

Looks blocks

Main article: Looks Blocks


Looks blocks are the blocks that control how a sprite looks. There are 23 Looks blocks in Scratch 3.0. Three of the 19 sprite Looks blocks have a counterpart for the Stage.

Scratch 3.0 has the following eighteen Looks Stack blocks:

Scratch 3.0 has the following three Looks Reporter blocks:

Sound blocks

Main article: Sound Blocks


Sound blocks are the blocks that control sound. There are 16 Sound blocks in Scratch 3.0. The note blocks in 3.0 have been moved to the Music Extension.

Scratch 3.0 has the following eight Sound Stack blocks:

Scratch 3.0 has the following Sound Reporter block:

Events blocks

Main article: Events Blocks


Events blocks are blocks that control events and the triggering of scripts. There are 8 Event blocks in Scratch 3.0.

Scratch 3.0 has the following six Event Hat Blocks:

Scratch 3.0 has the following two Event Stack blocks:

  • broadcast [ v] — Sends a broadcast throughout the Scratch program, activating When I Receive () blocks that are set to that broadcast.
  • broadcast [ v] and wait — Like the Broadcast () block, but pauses the script until all scripts activated by the broadcast are completed.

Control blocks

Main article: Control Blocks


Control blocks are the blocks that control scripts. There are 11 Control blocks in Scratch 3.0.

Scratch 3.0 has the following one Control Hat block:

  • when I start as a clone (sprites only) — This hat block is triggered whenever a clone is created, and will only be run by that clone.

Scratch 3.0 has the following three Control Stack blocks:

Scratch 3.0 has the following five Control C blocks:

  • repeat () — A loop that repeats the specified amount of times.
  • forever — A loop that will never end unless the Stop Sign is pressed.
  • if <> then — Checks the condition so that if the condition is true, the blocks inside it will activate.
  • if <> then
    else
    └— Checks the condition so that if the condition is true, the blocks inside the first C will activate and if the condition is false, the blocks inside the second C will activate.
  • repeat until <> — A loop that will stop once the condition is true.

Scratch 3.0 has the following two Control Cap blocks:

  • stop [ v] — Stops the scripts chosen through the drop-down menu. Can also be a stack block when "other scripts in this sprite" is chosen.
  • delete this clone (sprites only) — Deletes a clone.

Sensing blocks

Main article: Sensing Blocks

Sensing blocks are the blocks that detect things. There are 21 Sensing blocks in Scratch 3.0.

Scratch 3.0 has the following three Sensing Stack blocks:

  • ask [] and wait — An input box appears — you type the value in and it stores the value in the (answer) variable.
  • reset timer — Resets the timer.
  • set drag mode [ v] — Sets the sprite to draggable or not draggable.

Scratch 3.0 has the following five Sensing Boolean blocks:

Scratch 3.0 has the following ten Sensing Reporter blocks:

  • (distance to [ v]) — The distance from the sprite to the mouse-pointer or another sprite.
  • (answer) — The most recent input with the Ask () And Wait block.
  • (mouse x) — The mouse-pointer's X position.
  • (mouse y) — The mouse-pointer's Y position.
  • (loudness) — How loud the noise is that the microphone is sensing.
  • (timer) — How much time has passed since the Scratch program was opened or the timer reset.
  • ([ v] of [ v]) — The X position, Y position, direction, costume, size or volume of the Stage or a sprite.
  • (current [ v]) — The specified time unit selected.
  • (days since 2000) — The number of days since 2000.
  • (username) — The username of a user.

Operators blocks

Main article: Operators Blocks


Operators blocks are the blocks that perform math functions and string handling. There are 18 Operators blocks in Scratch 3.0.

Scratch 3.0 has the following seven Operators Boolean blocks:

  • <[] < []> — The condition for checking if a value is less than the other.
  • <[] = []> — The condition for checking if two values are equal.
  • <[] > []> — The condition for checking if a value is greater than the other.
  • <<> and <>> — True if both conditions are true.
  • <<> or <>> — True if either condition is true.
  • <not <>> — Makes the condition checked if it is false, not true, or true, not false.
  • <[] contains []?> Checks if the first parameter's text contains the second parameter's text — if it does, the block returns true.

Scratch 3.0 has the following eleven Operators Reporter blocks:

  • (() + ()) — The value of the addition.
  • (() - ()) — The value of the subtraction.
  • (() * ()) — The value of the multiplication.
  • (() / ()) — The value of the division.
  • (pick random () to ()) — Picks a random number between the two limits.
  • (join [] []) — The two values put right next to each other.
  • (letter () of []) — The specified character of the value.
  • (length of []) — The length of the value.
  • (() mod ()) — The remainder of the division.
  • (round ()) — Rounds the value to the nearest whole number.
  • ([abs v] of ()) — The absolute value (abs), square root (sqrt), sine (sin), cosine (cos), tangent (tan), asine (asin), acosine (acos), atangent (atan), natural logarithm (ln), logarithm (log), exponential function (e^), or base 10 exponential function (10^) of a specified value.

Right-clicking some of the blocks will yield more choices of its type.

Variables blocks

Main article: Variables Blocks

Variables blocks are the blocks that hold variables and lists. There are 5 Variables blocks and 11 list blocks in Scratch 3.0.

Scratch 3.0 has the following four Variables Stack blocks:

Scratch 3.0 has the following Variables Reporter block:

List blocks

Main article: List Blocks

List blocks are the blocks that manage lists. They are located in the Variables category and are not found in the bar to the left. There are 11 List blocks in Scratch 3.0.

Scratch 3.0 has the following six List Stack blocks:

Scratch 3.0 has the following 4 List Reporter blocks:

Scratch 3.0 has the following List Boolean block:

  • <[ v] contains []?> — The condition for checking if an item's content is the specified text.

My Blocks

Main article: My Blocks

My blocks are user-made custom blocks. There are 2 unique kinds of My blocks in Scratch 3.0. Scratch 3.0 has the following My Blocks Hat block:

Scratch 3.0 has the following My Blocks Stack block:

Extensions

Main article: Scratch Extension

Scratch 3.0 has a number of extensions that can be added to the block list. To choose an extension, press the blue button below the regular block sections.

Music Extension

Main article: Music Extension

Scratch 3.0 has six Music stack blocks and one Music reporter block.

Pen Extension

Main article: Pen Extension

Scratch 3.0 has nine Pen stack blocks.

Video Sensing Extension

Main article: Video Sensing Extension

Scratch 3.0 has one Video Sensing hat block, one reporter block, and two stack blocks.

Text to Speech Extension

Main article: Text to Speech Extension

Scratch 3.0 has three Text to Speech stack blocks.

Translate Extension

Main article: Translate Extension

Scratch 3.0 has two Translate reporter blocks.

Makey Makey Extension

Main article: Makey Makey Extension

Scratch 3.0 has two Makey Makey hat blocks.

micro:bit Extension

Main article: micro:bit Extension

Scratch 3.0 has four micro:bit hat blocks, three stack blocks, two boolean blocks, and one reporter block.

LEGO MINDSTORMS EV3 Extension

Main article: LEGO Mindstorms EV3 Extension

Scratch 3.0 has four EV3 stack blocks, three hat blocks, three reporter blocks, and one boolean block.

LEGO BOOST Extension

Main article: LEGO Boost Extension

Scratch 3.0 has seven Lego BOOST stack blocks, two reporter blocks, two hat blocks, and one boolean block.

LEGO Education WeDo 2.0 Extension

Main article: LEGO Education WeDo 2.0 Extension

Scratch 3.0 contains six Lego Education WeDo 2.0 stack blocks, two hat blocks, two reporter blocks, and one boolean block.

Go Direct Force and Acceleration Extension

Main article: Go Direct Force and Acceleration Extension

Scratch 3.0 contains 4 Go Direct reporter blocks, three hat blocks, and two boolean blocks.

Scratch Block Plugin

Main article: Block Plugin

The Block Plugin allows one to write blocks and scripts to appear on the Scratch Forums and Scratch Wiki, as well as other websites with the included JavaScript. It is written by the Scratcher blob8108.

Editing the Block Colors

Archive.png This article or section documents something not included in the current version of Scratch (3.0). It is only useful from a historical perspective.
Editing the block colors.
Main article: Editing Block Colors

In the online Scratch 2.0 editor, one could edit the colors of the blocks by shift-clicking the Edit menu and choosing an option called "Edit block colors". By selecting this, a menu would appear with 3 HSL sliders and tools for modifying the block colors of a specific block category. Personalized colors could be saved to one's computer, but loading the colors did not work properly.[citation needed]

In Other Programming Languages

Scratch is one of the original languages ever to use blocks, inspiring other languages to inherit the idea. Scratch modifications contain many new blocks typically that are not present in Scratch. MIT, where Scratch is made, has also created other languages using blocks such as the MIT App Inventor. Stencyl is a highly-professional language that features an entire block interface for programming real-time apps and online games. Scratch Jr also has blocks which are even more friendly for younger children to understand.

See Also