If you prefer an automated interface, several community-made tools exist: TurboWarp Packager
: Costumes (images) and sounds are stored as individual files named after their MD5 checksums (e.g., cd21...png ). Zip To Sb3 Converter
The true significance of the ZIP to SB3 Converter, however, transcends its mechanical function; it lies in the paradigm shift it enables. By breaking the illusion that an SB3 file is a monolithic, opaque binary, the converter empowers users to treat Scratch projects as modular, editable, and automatable systems. For educators, it opens the door to creating templates where the core logic (the project.json ) remains constant while assets are swapped out via a simple zip operation. For modders and power users, it allows the use of external tools—version control systems like Git, automated testing frameworks, or even AI image generators—to build projects that would be impossible within Scratch’s native editor. It transforms Scratch from a purely on-screen, drag-and-drop environment into a headless development platform. This capability is crucial for the "Scratch Modding" community, where users create custom blocks and functionalities, and for researchers studying the propagation of code patterns across millions of projects. If you prefer an automated interface, several community-made
const AdmZip = require('adm-zip');
When Pixel finally arrived at the Scratch website, the "Save to computer" guards recognized him immediately. He lived happily ever after, easily shared with other creators and ready for his next adventure in the world of code. For educators, it opens the door to creating
// Write out as new SB3 (which is still a zip) const newSb3 = new AdmZip(); entries.forEach(entry => if (!entry.entryName.includes('MACOSX')) newSb3.addFile(entry.entryName, entry.getData());