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 Core: The core SDK for managing and manipulating GameMaker projects. It includes a programmatic API and a CLI. Available as
@ptkhanh94npm/quae-cum-expedita
via npm. -
Stitch YY: Utilities for reading, validating, and writing
.yy
and.yyp
files. Available as@bscotch/yy
via npm. - Stitch Launcher: Utilities for automatically installing the GameMaker IDE by version, and opening GameMaker projects with specific IDE versions.
-
Spritely: 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. -
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.
- 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.