A minimal superset language of GameMaker Language (GML) for creating module-based GameMaker source codes. This minimal language is mainly used for developing GML libraries, but can also be used for other purposes.
Caution
ScaffScript is not affiliated with or endorsed by YoYo Games Ltd. GameMaker and GML are trademarks of YoYo Games Ltd.
Warning
This project is still in early development. The syntax and features are subject to change. Use at your own risk.
- TypeScript-like Module System. Use
export,import, andincludeto organize code across.scafffiles, fully resolved at compile-time. - Class Syntax. Define classes with constructors, properties, and methods that compile to GML struct constructors. Extend classes across files with
impl. - Content Directives. Inline compiled GML content (
@content,@valueof,@:, etc.) directives for dynamic code insertion. - Special Values. Access compile-time tokens like
@now,@today,@version,@file, and@linefor metadata and debugging. - Code Generation Blocks. Use
#[blockName]to define named content sections andintgto map them to GameMaker asset paths. - GameMaker Integration. Automatically writes
.gmlfiles, generates.yymetadata, and updates your.yypproject file for scripts and objects. - File Scanning & Processing. Recursive scanning of
.scaffand.gmlfiles with dependency-aware processing order.
For more information, please refer to the official documentation.
Feel free to start a discussion or open an issue for any questions or feature requests.
Contributions are welcome! Please open an issue or submit a pull request.
- Fork the repository.
- Clone the forked repository to your local machine.
- Make and test your changes.
- Commit your changes and push it to your forked repository.
- Open a pull request to the main repository.
If you like this project, or this project helped you in any way, please consider supporting me on Ko-fi or Trakteer. Don't forget to leave a star! Your support is greatly appreciated!
ScaffScript is free and open-source. It's licensed under the MIT License.
