Clock.png This article will need to be updated upon the release of Scratch 3.0.
If you are an editor, please update this when Scratch 3.0 is released. There may already be ongoing discussion about how to do so on its talk page.
This article is about the current version of the plugin (3). For the previous version of the plugin (2), see Block Plugin/scratchblocks2. For an older version for Scratch 1.4, see Block Plugin (1.4).
SandCastleIcon.png This page has links to sites outside of the Scratch website and Wikipedia. Always remember to stay safe when using the Internet, since we can't guarantee the safety of other sites.

The Block Plugin, also known as scratchblocks, is a plugin for the Scratch Wiki and Scratch Forums created by blob8108 that allows script images to be constructed through text that is parsed and rendered. The plugin can be played around with on this. There was also a discontinued forum topic here. There is also a sandbox for it on this wiki.

It is a complete rewrite of the old plugin by JSO that was used on the old Scratch forums.

Example:

define dance (speed)
set [dist v] to ((speed) * (distance to [mouse-pointer v]))
repeat until <(timer) > [10]>
  move (dist) steps
  next costume
  play note (pick random (40) to (100)) for (0.5) beats
  say [Wow! Scratch 2.0 scripts on the Wiki!]
end

Basic Syntax

Main article: Block Plugin/Syntax


On the Scratch Wiki, code must be inserted between the <scratchblocks>...</scratchblocks> tags, while on the forums they are inserted between [scratchblocks]...[/scratchblocks] tags. On the Scratch Wiki, uniquely, code can also be inserted between <sb>...</sb> tags to avoid breaking lines.

The block plugin tries to match the code you write as closely as possible, and does not check you've used the correct syntax. The block text is only used to find the correct color.

The basic syntax of for the Block Plugin is as follows:

Code Use Example Result
block name
a block
stamp
stamp
end
stops a C block (only necessary if more blocks come after the C block)
repeat (5)
  move (10) steps
end
say [Done!]
repeat (5)
  move (10) steps
end
say [Done!]
[text]
a text input
say [Hello World!]
say [Hello World!]
(var)
a variable or reporter block
(x position)
(x position)
(12.34)
a number input
wait (0.5) secs
wait (0.5) secs
[item v]
a dropdown input
broadcast [You Win v]
broadcast [You Win v]
<bool>
a boolean block
<mouse down?>
<mouse down?>
[#ABCDEF]
a color input
<touching color [#0000FF]?>
<touching color [#0000FF]?>
define
a custom block hat
define jump (height)
define jump (height)
// comment
a comment
show // now you see me
show // now you see me
...
a placeholder block denoting an arbitrary script
if <(var) = [this]> then
  ...
end
if <(var) = [this]> then
  ...
end

Advanced Syntax

The following is some more in-depth syntax of scratchblocks3.

Code Use Example Result
block {
  more blocks
} optional text
Custom C blocks
do {
  ...
} in [Sprite2 v]::control
do {
  ...
} in [Sprite2 v]::control
(stack block as reporter::stack)
Cause a block to have a stack block as an input.
decorate (show::stack)
decorate (show::stack)
:: [category or #colour] [shape]
Force a block to look a certain way. Possible category options include:
  • motion
  • looks
  • sound
  • pen
  • variables
  • list
  • events
  • control
  • sensing
  • operators
  • custom
  • custom-arg
  • extension
  • grey[note 1]
  • undefined

#colours can be any hexadecimal RGB color, for example #ff0000 which produces a pure red.

Possible shapes include:

  • hat
  • stack
  • cap
a cool block:: #ff00ff cap
a cool block:: #ff00ff cap
::ring
Replicate Snap's "ringify" feature. This can be used in conjunction with the above colon syntax as well.
block::ring
block::ring
  1. Spelled with an e, not an a.

Helper Tools

Here are some tools that will convert real blocks in Scratch projects into scratchblocks code.

Scratch 1.4

  • The Scratcher LS97 developed a plugin for the Scratch program itself that converts a script into scratchblocks (the original) code. The forum thread for the plugin can be viewed here.

Scratch 2.0

  • blob8108 developed a converter written in JavaScript that converts an entire project's scripts into scratchblocks. See it in action here.
  • jvvg developed a converter written in PHP that converts scripts in the backpack. The forum thread for this converter can be viewed here.

See Also