Mröw

Write Scratch projects in Gleam.

import mroew/blocks/looks
import mroew/blocks/events
import mroew/blocks/ops
import mroew/project
import mroew/sprite

pub fn main() {
 project.project(stage())
 |> project.add_sprite(sprite1())
 |> project.export("project.sb3")
}

fn stage() {
 sprite.sprite("Stage")
 |> sprite.costume("Blank", "./assets/blank.svg", 0, 0)
}

fn sprite1() {
 sprite.sprite("Sprite1")
 |> sprite.costume("Scratch Cat", "./assets/scratchCat.svg", 80, 91)
 |> sprite.blocks(
   events.on_flag()
   |> looks.say_timed(ops.string("Hello, world!"), ops.int(2)),
 )
}

Documentation

Coming soon!

Usage

  1. Install Gleam and Git if you haven’t already.
  2. Create a Gleam project:
gleam new my-scratch-project
  1. Delete the .github and test folders.
  2. Add Mröw as a submodule:
git submodule add https://github.com/mybearworld/mroew.git
  1. Set your gleam.toml to:
name = "my-scratch-project"
version = "1.0.0"
target = "javascript"
[dependencies]
gleam_stdlib = "~> 0.34 or ~> 1.0"
mroew = { path = "./mroew" }
  1. Create your Mröw project in src/my-scratch-project.gleam!
  2. To create the sb3 file, run gleam run.
  3. (Recommended) Add sb3 files to the gitignore:
*.sb3
  1. If you want to update Mröw, run this:
git submodule update --remote

To do

Search Document