goboscript#
Installation and documentation
goboscript is a text-based programming language which compiles to Scratch. It allows you to write Scratch projects in text, and compile it into a .sb3 file - which can be opened in the Scratch editor, TurboWarp or be uploaded to the Scratch website.
goboscript allows you to create advanced Scratch projects with ease, you can use any text editor, use a version control system such as git. You can refactor your code using search and replace. Text code can be copy pasted, which allows you to easily reuse code or share it with others. goboscript syntax is concise and easy to read.
goboscript allows you to integrate external tooling and workflows, such as using a script to generate costumes for a text rendering engine. Or loading in images into lists.
goboscript has a powerful macro system - similar to Rust's macro system. This allows you to write macros to generate code.
goboscript is more than just an 1:1 mapping of Scratch blocks to text, it also has additional features like local variables for procedures (custom blocks).
goboscript also performs optimizations, detects problems and unused code.
Contributing#
goboscript welcomes contributions in the form of Pull Requests.
goboscript is written in Rust. You'll need to install the Rust toolchain for development.
[!NOTE] To install goboscript, follow instructions at aspizu.github.io/goboscript. These instructions are for people who want to develop goboscript itself.
Development#
After cloning the repository, run goboscript locally from the repository root with:
But, to make development easier, and to validate the generated Scratch project - use
the tools/run
script:
This assumes that you have set-up a testing project at playground/
.
It will compile the project, validate it using the schemas from scratch-parser
.
If the validation fails, Scratch will refuse to load the project. To further debug
the project, the generated project.json
file is extracted from the .sb3
file in the
playground/
directory.
Lets say that you modified the generated project in the Scratch editor or Turbowarp,
and you want to look at the project.json
. You can extract it with:
Lets say that goboscript produced a broken project, and you are able to fix it by hand -
by modifying the project.json
. You can add back the project.json
to the .sb3
file
with:
If you want to validate some .sb3
file, use: