adam 0.9.1

A command-line interface for compiling Gms2 projects
adam-0.9.1 is not a library.


I am thy creature: I ought to be thy Adam, but I am rather the fallen angel, whom thou drivest from joy for no misdeed. -- Frankenstein's Monster in Frankenstein by Mary Shelly

adam is a command-line utility for compiling GameMaker projects on Windows and macOS. Invoking adam is trivial:

adam run

This will compile your project, run it, and give you stdout ("show_debug_message") with colorization and links. adam supports compiling with the VM (default) and the YYC (by passing in --yyc). adam also supports faster recompilation than GameMaker does, so if users recompile a game without making changes, their game will instantly load, without invoking the compiler at all. This is especially useful, since adam easily allows you to run multiple instances of your game at the same time on your machine.

adam will place all its generated artifacts within a folder relative to the working directory -- by default, it will use "target" as its output output. It is highly advised that you add your output directory to your .gitignore.


run: Builds and runs the project.

build: Builds a project without running it (but will report compile errors)

release: Builds a zip of the project (only available for users with an Enterprise license)

clean: Cleans the output directory

test: Runs the game after setting user-defined environment variables. See the config file guide for more information.

You can also run adam help to see a more detailed version of the above.


The best way to install adam is through cargo:

cargo install adam

You can get cargo by install Rust.


Please see the CHANGELOG for release history, and the ROADMAP for planned features.


You will likely need to customize an adam command for most usages. To see CLI options, simply run adam run --help:

Of special note, please see --yyc, which will allow users to compile using the YYC, and -c, which allows users to pass in a configuration.

However, passing in numerous values every compile can become tiresome. To support this, users can create a config file in either JSON or TOML, where these options can be specified. To create an adam configuration file, please follow this guide.


Running adam check will invoke scripts if you set up them up in your configuration file. These scripts will also have the following environment variables set:

Name Value
ADAM_YYC 0 or 1


Dual-licensed under MIT or APACHE 2.0.