Document.png Please expand this article or section. You can help by adding more information if you are an editor. More information might be found in a section of the talk page. (July 2020)
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.
SandCastleIcon.png This article has links to websites or programs outside of Scratch and Wikipedia. Remember to stay safe while using the internet, as we cannot guarantee the safety of other websites.

Community Blocks was an experimental extension containing blocks that reported data from the Scratch Website. A small number of Scratchers were randomly selected from a pool of active users to participate in testing of the feature.[1] Users who were part of the beta program could create projects using the blocks on this page,[dead link] but the page has since been taken down. The blocks were never released as part of the Scratch program.

Beta Testing

2,500 active Scratchers were randomly selected to test the new blocks.[1] The Scratchers each received an alert inviting them to take part in the beta testing. The alert would direct them to fill out a brief survey about themself and give them a link to the testing website. These Scratchers also received access to the Community Blocks Forum. Some Scratchers were also interviewed about their experience over Skype. The page made for the beta testers is still accessible but is outdated.[2][3]


These are the blocks that were included in the Community Blocks extension:[4]

For Each () Project by ()

for each [shared v] project by []{
}:: extension cap

This block had a string input meant to hold the username of a Scratch user. It also had a drop-down menu with two possible arguments:

  • Shared, which loops the code inside the block once for every project that the inputted user has shared
  • Favorited, which loops the code once for every project that the inputted user has favorited

Related Blocks

These blocks were meant to be used inside of the For Each () Project by () block:

  • ([title v] of project::extension)
    — This block had five possible arguments, and could return the title, description, number of love-its, number of favorites, or number of comments associated with the project currently selected by the loop block.
  • <project uses blocks in [Motion v]?::extension>
    — This block was a boolean that returned true if the selected project used at least one block from the selected category, or false otherwise.

For Each Scratcher () ()

for each Scratcher [following v] []{
}:: extension cap

This block would loop through the code that it contained one time for each Scratcher either following or followed by the chosen user, depending on which input was selected in the drop-down menu.

This block was meant to be used inside of the For Each Scratcher () () block:

  • ([username v] of Scratcher::extension)
    — This block could report the username, country, or "About me" of the user selected in the current iteration of the For Each Scratcher () () block. The block was originally called ([username v] of user::extension), but "user" was changed to "Scratcher" after there was some confusion about the correct usage of the block, and some Scratchers tried to use the block outside of the loop to get the username of the user viewing the project (which the block did not support). This block was then released with the username block.[citation needed]

Other Blocks

  • (total # of projects on Scratch::extension)
  • (total # of users on Scratch::extension)
  • (total # of comments on Scratch::extension)

These blocks returned, respectively, the total number of projects, users, and comments on Scratch.

Misconception About Blocks

Accessor blocks did not work outside of their loops.[4] As an example, the following script did not produce the intended results:

when gf clicked
say [Who are you? I will tell you.] for (2) secs
say (join [Your username is ] ([username v] of user::extension)) for (2) secs
say (join [You live in ] ([country v] of user::extension)) for (2) secs

See Also


  1. a b "Invitees were selected from a pool of active users on Scratch who had been in the community for at least 6 months and had shared at least 4 projects in the month preceding the selection... From this pool, 2,500 users were randomly selected" (Page 5 of
  2. scratch:info/communityblocks-interviews
  4. a b
Cookies help us deliver our services. By using our services, you agree to our use of cookies.