(Redirected from Scratch Extension Protocol (2.0))

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.

Scratch Extensions make it possible to connect Scratch projects with external hardware (such as LEGO WeDo or micro:bit), sources of information on the web (such as Google Translate and Amazon Text to Speech), or blocks allowing for more advanced functionality. They add a collection of command and reporter blocks that can be used to interact with a particular device or data source. When an extension is enabled, its blocks appear in a location with the same name as the extension.

The LEGO WeDo 2.0 extension blocks

To load an extension, click the icon in the bottom-left hand corner of the screen and select an extension.

The button to add an extension in Scratch 3.0.

There are two types of extensions in Scratch 3.0: hardware and web.

Available Extensions

The following extensions are already available with Scratch:

Writing Extensions

Some features allow one to write their own extensions.

Scratch 3.0

There are two mechanisms to extend Scratch 3.0, either with HTTP requests or Javascript.

Javascript Extensions

This extension mechanism uses Javascript to create the extensions. The documentation for creating this kind of extension for Scratch 3.0 can be found here.

Scratch 2.0

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.

JavaScript Extensions

JavaScript could also be used to make extensions for Scratch 2.0. The official documentation for creating this kind of extension for Scratch 2.0 could be found on the ScratchX Github wiki.

The 2.0 extensions available in the offline editor, like the PicoBoard extension, were Javascript extensions.

HTTP Extensions

Note Note: This mechanism worked only with the offline editor.
The A4S (Arduino for Scratch) experimental HTTP extension.

Scratch 2.0 could not interact with hardware devices directly. Instead, hardware extensions came with a helper app — a separate application that the user needed to install and run on their computer. Scratch communicated with the helper app via HTTP requests, and the helper app talked to the hardware.

A document (last updated: September 2013) had been drafted for Scratch 2.0 HTTP extension developers to describe the extension description file format — the protocol used to communicate between Scratch extension helper apps, and the extension development process. This specification was still preliminary, and was discontinued due to the release of Scratch 3.0.

The Scratch 2.0 extension mechanism was still under development, and the Scratch Team was still figuring out how the extensions will be shared and distributed. However, it was discontinued upon the release of Scratch 3.0.

Distributing Extensions

An extension distribution strategy is still being worked out. The Scratch team will probably host a small library of "supported" extensions. Users will be able to browse and select extensions from this library from within the Scratch editor. Supported extensions would be checked for quality and safety by the Scratch team. There are likely be strict criteria for including an extension in the Scratch-team supported extensions library, such as command set clarity and ease of use, size of the potential audience, widespread availability of any associated hardware, and a long-term commitment to support the extension.

Projects with experimental extensions cannot be shared on the Scratch website and will result in a pop-up message whenever a user tries to share a project with experimental extensions. Extension developers can share their extensions by distributing Scratch 2 project files (.sb2). Users can then use the "File > Upload from computer" command to import the project that uses the extension.

ScratchX

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.
Main article: ScratchX

ScratchX was a gallery of experimental extensions that one could try out on the ScratchX website. The website could be found here. There were multiple Scratch extensions on ScratchX. It was discontinued in Scratch 3.0, due to the extensions being supported in the main Scratch editor, but it remains available to use.

See Also