Butterscotch Shenanigans ("Bscotch") develops and maintains a collection of tools for management of GameMaker projects. These tools are collected under the umbrella trademark "Stitch".
This monorepo includes the code for many of the Stitch projects.
💡 Bscotch only develops features and fixes bugs that impact our studio directly. If you need other features or fixes, feel free to fork this project to add them yourself. You may submit pull requests with your changes, but we make no promises that we will merge them.
Butterscotch Shenanigans® and Stitch™ are not affiliated with GameMaker®.
Some of the projects listed here are available as compiled packages via npm or other 3rd party repositories. Others are only used locally.
- Stitch for VSCode: A Visual Studio Code extension providing code editing features for GameMaker project files. Available as
bscotch.bscotch-stitch-vscode
via the Visual Studio Marketplace. - Stitch YY: Utilities for reading, validating, and writing
.yy
and.yyp
files. Available as@bscotch/yy
via npm. - GML Parser: A GML parser and project modeler, providing programmatic access to a GameMaker project's resources and code. Provides features like go-to-definition, adding/removing resources, etc. Underpins Stitch for VSCode, but can be used on its own to create other tools and pipelines. Available as
@bscotch/gml-parser
via npm. - Sprite Source: A library for creating art asset pipelines for GameMaker projects, including a basic CLI. Built into Stitch for VSCode, but also available as a standalone thing for other workflows. Available as
@bscotch/sprite-source
via npm. - Stitch Launcher: Utilities for automatically installing the GameMaker IDE by version, and opening GameMaker projects with specific IDE versions.
- GameMaker Merged Releases: Utilities for merging the various GameMaker IDE and Runtime release notes into a single merged listing. Available as
@bscotch/gamemaker-releases
via npm. Merged feeds are regularly published to this repo's releases. - Stitch Core (LEGACY): The core SDK for managing and manipulating GameMaker projects. It includes a programmatic API and a CLI. Available as
@bscotch/stitch
via npm. (No longer maintained. Superseded by the GML Parser project.) - Spritely (LEGACY): Utilities for batch-preparation of source images for import as GameMaker sprites. It includes a programmatic API and a CLI. Available as
@bscotch/spritely
via npm. (No longer maintained. Superseded by the Sprite Source project.)
- Install pnpm
- If you already have corepack available but do not have pnpm, you can run
npm run setup:pnpm
in this directory to install it.
- Run
pnpm install
in this directory to install all dependencies.
- You can use pnpm filters to only install the dependencies for a specific package.
- Run
pnpm build:all
to build all packages.
- This project uses turborepo. You can use its filters to build only specific packages.