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
.
The basic structure of a project file is as follows:
header
: A 10-byte header encoding the ASCII string ScratchV02
.infoSize
: 32-bit (unsigned?) integer — length of the infoObjects table in bytes.infoObjects
: A dictionary serialised to an Object Table. Contains information like the author, notes, and thumbnail/preview image.contents
: (Remaining bytes) the actual project media, including scripts and sounds.The header is simply the 10-byte string ScratchV02
encoded as ASCII.
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: 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.
Cookies help us deliver our services. By using our services, you agree to our use of cookies.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4