Skip to content

GameMaker Integration

After code generation, ScaffScript writes output directly into your GameMaker project, creating .gml files, generating .yy metadata for new assets, and updating your .yyp project file.

Script assets are written to scripts/<Name>/<Name>.gml. If the script doesn’t exist yet, ScaffScript also creates the .yy metadata file and registers it in your .yyp.

Object assets are written to objects/<Name>/<EventType>_<EventSubtype>.gml. Each event gets its own file, for example:

./objects/oSystem/Create_0.gml
./objects/oSystem/Keyboard_116.gml
./objects/oSystem/oSystem.yy

For new objects, ScaffScript creates the .yy with the event list. For existing objects, it appends new events without duplicating.


Controls whether ScaffScript uses the GM asset folder structure:

Paths under scripts/ and objects/ are treated as GM assets. ScaffScript will generate per-event file if it’s an object asset.

false Experimental

Section titled “false ”

All output is preserved as-is, no .yy manipulation.


When creating new assets, ScaffScript automatically adds the necessary folder entries inside your GameMaker project through the .yyp project file. Intermediate folders are created incrementally and deduplicated.

For a target like scripts/Scripts/MyFolder/Sub/myScript, ScaffScript ensures Scripts, Scripts/MyFolder, and Scripts/MyFolder/Sub all exist as folders in your project before adding the script resource.


Before overwriting an existing .gml file, ScaffScript reads and stores the original content as a backup (unless noBackup: true). This backup is used in the review step to offer a restore option.


Blocks flagged with -- exclude in an integration block (#[blockName]) are written during generation to .out/ directory, but stripped from the final integrated content. Use this to include content only for review purposes.