Revision as of 10:07, 20 February 2019 by Kenny2scratch (talk | contribs) (unilaterally confirmed merge)

DocumentInQuestion.png This page's contents needs to be merged into Pen Extension, as per the discussion here. You can discuss this on the page's talk page. (February 2019)

In Scratch 2.0, Pen Blocks was one of the ten categories of Scratch blocks. They were color-coded dark-green, and were used to control the pen aspect of the Scratch Program.

There were 11 Stack Blocks in this category.

According to the Scratch Statistics, this was the least used category, with only over 2,000 uses.

Pen blocks are useful when creating a one sprite one script project, allowing one to take various actions:

  • Stamp the sprite
  • Put the pen down
  • Release the pen

One example of a one sprite one script project is a simple drawing program.

Pen Blocks can also used to make Games and Simulations, as well as other things.

In Scratch 3.0

Main article: Pen Extension

In Scratch 3.0 the Pen Blocks are an extension.[1] set pen shade to (50), set pen color to (0) and a new block called "Set Pen Transparency to ()" are one block. Older blocks are hidden, but the legacy opcodes are kept in order to preserve backwards compatibility.[2]


Note Note: Click on a block to learn more about it!

Scratch 2.0 has the following 11 Pen Stack blocks:

The pre-alpha of Scratch 2.0 from Scratch Day @ MIT 2011 additionally had the following Pen Stack block:

Suggested Pen Blocks

<pen down?:: pen>
(pen color:: pen)
(pen shade:: pen)
(pen size:: pen)
switch to canvas: [canvas1 v] ::pen //allows switching to a particular canvas for editing

clear [canvas1 v] ::pen //clears selected canvas (also includes options all and current)

show canvas [canvas1 v] ::pen //would display selected canvas (also includes options all and current)

hide canvas [canvas1 v] ::pen //would stop displaying selected canvas (also includes options all and current)

bring [canvas1 v] to front ::pen //would shift the selected canvas to the front(also includes options current)

move [canvas1 v] to layer (1 v) ::pen //would reorder the canvases (also includes options current)

These are wanted by many Scratchers, as they would make programming much easier.[3] The first would return the Boolean value of true if the pen is down. The second would return the pen color value; the third, the pen shade value; the last, the pen size value. Some Scratch Modifications have at least one of these.[citation needed] Workarounds are possible by maintaining variables to that keep up with these values and updating them whenever the pen state/color/size/shade are changed, possibly by leaving a separate script running that alters the pen when the variables are changed, and only modify the variables in other scripts instead of changing the pen attributes directly. Pen canvases would be independent from each other allowing them to be modified without affecting the others.[4]


Cookies help us deliver our services. By using our services, you agree to our use of cookies.