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.
This article is about the feature in the editor. For a list of extension blocks, see Blocks#Extensions.
This article or section documents the current version of Scratch (version 3.0). For this article in Scratch 2.0, see Extension (2.0).
The Extensions Library.

An extension is a block category that can be added to the Block Palette to extend the scope of the Scratch editor. Extensions make it possible to add more advanced functionality to projects, connect Scratch projects with external hardware (such as the LEGO WeDo and the micro:bit), and connect with software from the web (such as Google Translate and Amazon Text to Speech).

Adding Extensions

The button to add an extension in Scratch 3.0.

Extensions can be added by pressing the purple icon at the bottom-left of the screen under the block palette. This opens the Extensions Library, from which an extension can be chosen. Once chosen, the extension will show up underneath all of the other block categories in the block palette.

Removing Extensions

If an extension was added, but none of its blocks are used in the project, reloading the project will automatically remove the extension. In Scratch 2.0, it was possible to remove an extension by clicking its name in the "More Blocks" section and then clicking "Remove extension blocks".

Available Extensions

Currently, 12 extensions are available on the Extensions Library in Scratch 3.0. Two extensions are web extensions which connect Scratch to external services from the internet, seven extensions are hardware extensions which connect Scratch to an external device, and the remaining 3 interface with Scratch's canvas in some way. Additionally, there is a hidden extension that is meant for testing purposes.

The following extensions are only available on the Raspberry Pi release of Scratch:

The following extensions used to be available but no longer are:

Custom Extensions

Custom extensions are extensions not available in Scratch's gallery, instead created by community members. They cannot be uploaded to the Scratch website or loaded into the editor, except on the desktop version of Scratch 2 or the ScratchX website, where it could be loaded by clicking the "Load Experimental Extension" button in the "More Blocks" category to load an extension from a link, or control- or shift-clicking it to load from a file.[1]

Writing Custom Extensions with JavaScript

JavaScript is a programming language that powers many interactive features on the web. Additionally, it can be used to create custom extensions. This is the tutorial for making Scratch 3 extensions, whereas this is for Scratch 2 and ScratchX. You will need to know JavaScript to write your own extensions by hand, but extension builders such as ExtForge are also available.

Distributing Custom Extensions

Currently, there is no official platform for distributing Scratch 3 extensions. ScratchX, documented in the next section, served this purpose for Scratch 2 but was discontinued and later taken completely offline.


In Scratch 2, attempting to share a project with custom extensions resulted in a pop-up message. Instead, the project or extension file would have to be posted online on a service like GitHub or ScratchX to be loaded in Scratch 2's desktop version or the ScratchX editor.


However, TurboWarp and some other Scratch Modifications allow for the importing of custom extensions. In TurboWarp's case, both a curated gallery and the ability to import from a URL, file, or text are available.

ScratchX

This article or section documents something not included in the current version of Scratch (3.0). It is only useful from a historical perspective.
Main article: ScratchX

ScratchX was a gallery of experimental extensions for Scratch 2 that one could try out directly from the website. It was discontinued with the release of Scratch 3.0 due to a reworked extension system and official extensions being supported in the main Scratch editor, but it remained available to use here[dead link] until the discontinuation of Flash, which Scratch 2 required to run.

Scratch Lab

Main article: Scratch Lab

Scratch Lab is a website made by the Scratch Team to test extensions that could possibly be added to Scratch 3.0. As of January 2026, 3 extensions, Animated Text, Video Sprites, and Face Sensing (which remains on Scratch Lab despite now being on the main Scratch website), are available. Scratch Lab can be found here.

See Also

References


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