This is a blog post outlining the various formats that emerged over the two decades of GameMaker history (there being few dozen of them now) and instructions on how to open them in various GameMaker versions.
Glossary
- GM5..GM8.1: Game Maker 5.x .. Game Maker 8.1, released in years before 2011.
- GMS1: GameMaker: Studio, released in 2012 and updated until 2018.
- GMS2: GameMaker Studio 2 (now GameMaker 2022), released in 2016 and updated to this day.
- LateralGM: An open-source editor
for projects made in GameMaker versions up to GMS1.
Aside of not being able to compile/run the project, LateralGM is a fairly feature-complete editor. - GMEdit: An open-source editor
for projects made in GMS1 and GMS2.
It has a lot of features for viewing and editing code and not a lot in terms of editing non-code resources. It can ask GM to run the game for you (but you'll still need GM installed). - Viewing: Opening a file for purposes of looking at it - without being able to run the code, but also without having to install GameMaker.
Legacy versions (≤8.1)
GMD, GM6, GMK, GM81
What it is: Project files for:
- GMD: Game Maker 5 or earlier
- GM6: Game Maker 6
- GMK: Game Maker 7 or 8
(GM8 GMKs cannot be easily told apart from GM7 GMKs) - GM81: Game Maker 8.1
How to open in:
- GM8.1 or earlier: menu:File➜Open
Files can be converted for use in earlier versions using LateralGM (Open, then Save As). - GameMaker: Studio: starting screen➜Import➜Import File
(choose the file type in dropdown inside the file picker dialog)
This will create a GMS1 project for the file. GameMaker Studio 2: GMS2 cannot open legacy project files natively, but you can:
- Convert them to GMS1 format using GMS1, then import them to GMS2.
- Convert them to GMS1 format using LateralGM
(Open, then Save As and pick
GMX
on the right), then import them to GMS2.
- Viewing: LateralGM.
GB1 ... GB9
What it is: A backup file for a GM≤8.1 project.
Depending on the "maximum number of backups" specified in Preferences, there can be up to 9 of these next to the project file.
The file extension doesn't indicate the version - instead the number indicates which backup it is (GB1 being the most recent one made).
How to open: same rules as above - if you are not sure what version the backup is from, open it in LateralGM and re-save as a specific one.
GEX
What it is: An extension package for Game Maker 8.1 or earlier.
How to open in:
- GM8.1 or earlier: menu:Resources➜Select Extension Packages➜Install
- GameMaker: Studio: Right-click on Extensions folder in a project's resource tree, pick Import extension, switch type to "Legacy Extension".
- GameMaker Studio 2: You'd have to import the extension to GMS1 first, export it (right-click in resource tree, pick Export extension), and then import it in GMS2, but old DLLs rarely work due to to GM moving from 32-bit to 64-bit executables.
- Viewing: Extension Maker
LIB
What is is: A drag-and-drop (visual programming) action library for GameMaker:Studio or earlier.
How to open in:
- GM8.1 or earlier: Copy to the
lib
folder inside the installation folder (can be%APPDATA%/GameMaker
, depending on version), restart GameMaker.
Libraries appear as tabs on the right in the object editor. - GameMaker: Studio: Same thing, except it's consistently
%APPDATA%/GameMaker-Studio/lib
. - GameMaker Studio 2: visual programming received a complete overhaul in GMS2 and old-format
libraries cannot be automatically converted to new format.
When importing a project, DnD blocks are converted to their code equivalents. - Viewing: "Library Maker" from Extension Maker package.
GMSPR
What it is: A sprite file exported by GM≤8.1.
It has some similarities to PNG (including ZLIB compression) but includes GM-specific metadata (like collision mask information).
GM:S still had the ability to import these, but removed the option to export them.
How to open:
- GM8.1 or earlier: "Load sprite" in sprite editor window.
- GameMaker: Studio: (same thing)
- Otherwise: GMSprView (or do it yourself)
GameMaker: Studio
GMX
What it is: A GameMaker: Studio file. XML-based.
The second extension indicates the type (*.project.gmx
is a project, *.object.gmx
is an object).
Opening non-project files has little use as they lack context.
How to open in:
- GM8.1 or earlier: You can use LateralGM to convert a project to legacy format (Open, then Save As and pick version on the right), but this is unlikely to work without fixing it up by hand.
- GameMaker: Studio: File➜Open or Open on the starting screen.
- GameMaker Studio 2: File➜Import or Import on the starting screen.
- Viewing: GMEdit or LateralGM.
GMZ
What it is: A compressed GameMaker: Studio project.
Technically just a 7-zip archive with your project files in it.
How to open in:
- GM8.1 or earlier: Extract using 7-zip, then same steps as for GMX.
- GameMaker: Studio: File➜Import or Import on the starting screen.
- GameMaker Studio 2: File➜Import or Import on the starting screen.
- Viewing: Extract using 7-zip, then open in GMEdit or LateralGM.
GMEZ
What it is: A compressed GameMaker: Studio asset/extension package.
Technically also just a 7-zip archive, but with a few added metadata files.
How to open in:
- GM8.1 or earlier: You could use a tool I made to convert a GMS DLL-extension into a set of scripts (and convert the rest as part of a project), but results may vary.
- GameMaker: Studio: Right-click on Extensions folder in a project's resource tree, then pick Import extension.
- GameMaker Studio 2: menu:Tools➜Import Local Package, or drag-and-drop the file into the workspace (not the resource tree!)
- Viewing: Extract using 7-zip, then open in GMEdit or LateralGM.
GameMaker Studio 2
YYP
What it is: A GameMaker Studio 2 project. A big pile of (mostly-to-spec) JSON.
If there's a "modelName": "GMProject"
inside, it's a GMS≤2.2.5 project.
Otherwise it's a newer (≥2.3) project.
How to open in:
- GM8.1 or earlier: You can try using steps above after converting a GMS2 project to GMS1, but the odds of you getting it to work without substantial rewriting are pretty low.
- GameMaker: Studio: A tool I made can
convert GMS≤2.2.5 projects back to GMS1 format (with some limitations).
Doing so for 2.3 projects - GameMaker Studio 2: menu:File➜Open or "Open" on the starting screen.
- Viewing: GMEdit.
YY
What it is: A single GMS2 resource file. A smaller pile of (mostly-to-spec) JSON.
"modelName":
indicates what it is for GMS≤2.2.5, "resourceType":
does for GMS≥2.3.
Similar to non-project GMX files, there's little use in opening a separate resource but most editors with JSON syntax highlighting will do.
YYZ
What it is: A compressed GMS2 project. In other words, a ZIP archive with your project files in it.
How to open in:
- GM8.1 or earlier: Unzip, then steps for YYP
- GameMaker: Studio: Unzip, then steps for YYP
- GameMaker Studio 2: menu:File➜Import Project or "Import" on the starting screen.
- Viewing: GMEdit.
YYMP
What it is: A compressed GMS≤2.2.5 asset/extension package. This is also a ZIP archive with a little metadata.
How to open in:
- GM8.1 or earlier: Add to a GMS2 project steps for YYP
- GameMaker: Studio: Add to a GMS2 project steps for YYP
- GameMaker Studio 2: menu:Tools➜Import Local Package, or drag-and-drop the file into the workspace (not the resource tree!)
YYMPS
What it is: A compressed GMS≥2.3 asset/extension package.
Since the YY format changed in 2.3, these use a new file extension.
Still, you can open it as a ZIP archive too.
How to open in:
- GM8.1 or earlier: Add to a GMS2 project steps for YYP
- GameMaker: Studio: Add to a GMS2 project steps for YYP
- GameMaker Studio 2: menu:Tools➜Import Local Package, or drag-and-drop the file into the workspace (not the resource tree!)
Other things
D3D/GMMOD
What it is: A simple model format that existed from GM6 to GM:S (a post about structure).
How to open:
- For viewing: GameMaker Model Viewer
- For conversion: Dragonite's 3D Model Converter
WIN, UNX, IOS, DROID, ...
What it is: An asset file for a compiled GMS1/GMS2 game.
It can contain textures, audio files, metadata, bytecode (if appropriate), and so on.
If there's one in a game directory and the contents start with FORM
(4 bytes for size)GEN8
, chances are
that it's a GM game.
How to open: see on GameMaker game decompilation - your best bet is UndertaleModTool, but there are countless GameMaker versions so results may vary.
audiogroup#.dat
What it is: When grouping sounds into audio groups in GMS1/GMS2, the audio files will be combined together into an "audiogroup" file. The game then loads these files as necessary, which can speed up the initial load time.
How to open: No one made a tool for this yet, but if you make one, let me know!
YYDEBUG
What it is: Debug symbols for a GMS1/GMS2 game.
Usually found in a temporary folder, rarely elsewhere.
You can rescue some code from these if you've recently ran your game and then deleted something (but didn't close the IDE yet).
How to open: YYDebugView (blog post)
And is that all?