Scratch File Format (1.4)/Project File (original) (raw)

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.

Project files are used by Scratch to save all the information (stage, sprites, scripts, sound, images) in a Scratch project to a single file.

They have the extension .sb.

Structure

The basic structure of a project file is as follows:

The header is simply the 10-byte string ScratchV02 encoded as ASCII.

Note Note: Versions 1.2 and earlier use the string ScratchV01 instead.

Files saved by mods may have different headers; thus it is useful to know which modification created the project. For example, BYOB stores BloxExp01.

infoSize

infoSize encodes the length of the given file's infoObjects (see below). The infoSize is four bytes long, and is a 32-bit big-Endian integer.

Note Note: In high-level languages like C (and variants), a 32-bit big-Endian integer is constructed with bitwise operations in the following manner:int big = a << 24 | b << 16 c << 8 d;Here, a, b, c, and d are the given bytes.

infoObjects

This is a set of vital pieces of information about a file. It is used for:

It uses a simple Dictionary format: it consists of alternating pieces of ASCII keys and values. The keys currently in use are:

contents

This is a second Object Table, with the Stage as the root object. All media, sprites, scripts, etc. are encoded as References from the main stage object.

vdeScratch File Format (1.4)
Files Project File Sprite File
Structure Object Table Inline Values Objects Fixed-format Objects User-class Objects
Contents Scripts

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

The Wiki is working on a dark theme, and you're seeing it! Got feedback? Post on the Wiki Forum Topic.