GameMaker files

See the sprite, not the JSON

A GameMaker project is a folder full of .yy files that mean very little on their own. A sprite's .yy is a list of frame PNGs, an object's .yy points at a sprite, a sound's .yy points at an audio file. AssetHoard reads the .yy, finds the files it describes and shows you the sprite, tileset, font or sound instead of a wall of JSON.

What AssetHoard recognises

FileWhat happens
.yyIndexed as a GameMaker resource. AssetHoard reads its resourceType and files it under the type it actually is (see supported resource types).
.yymps, .yyzLocal packages and project exports are indexed in place like any other package, without extracting. The .yy files inside are typed, previewed and given thumbnails just like loose ones.
.yy inside a .zipHandled the same way as inside a .yymps.
Sprite frames, sound filesImported as normal images and audio. Importing a single sprite or sound .yy brings its frame PNGs or audio file in with it.
.yyp, .gml, shadersNot specially handled. They're indexed as plain files and previewed as text.

AssetHoard reads the .yy format used since GameMaker Studio 2.3. Older .yy files from before 2.3 and GameMaker Studio 1 .gmx projects aren't supported.

A .yymps package, read in place without extracting

Supported resource types

GameMaker typeShows up asPreview
Sprite (GMSprite)SpriteAnimated playback of its frames in order, at the sprite's playback speed.
Sound (GMSound)AudioPlays the sound's audio file, including inline play on the card.
Tile set (GMTileSet)TilesetThe tile sheet with a grid overlay that respects offset and separation, plus tile size, grid, tile count, autotile sets and animated tiles.
Font (GMFont)FontThe baked font atlas with zoom, pan and a backdrop toggle, plus the font name, point size and glyph count.
Object (GMObject)GameMaker resourceThe object's sprite, animated. Objects without a sprite show the GameMaker package icon.
Room (GMRoom)GameMaker resourceThe room's .yy source as highlighted JSON.

Everything else (scripts, shaders, paths, sequences, timelines, notes, extensions and so on) is still indexed and searchable, but shows an icon rather than a preview.

Because sprites, sounds, tilesets and fonts are filed under their real type, they show up alongside the rest of your sprites, audio, tilesets and fonts, and the normal type filters find them.

How references are found

GameMaker resources point at each other by project-relative paths such as sprites/spr_player/spr_player.yy. AssetHoard works out the project root from where the .yy lives, based on GameMaker's standard <type>/<name>/<name>.yy layout, and looks for each referenced file from there.

AssetHoard tracks two kinds of reference:

  • Files that make up the resource, such as a sprite's frame PNGs or a sound's audio file.
  • Links to other resources, such as an object's sprite, parent object or mask, or a tileset's sprite.

References are resolved when you import, when a watched .yy changes, and again when you open the asset if anything is still unresolved. So importing a missing sprite later fixes the link the next time you look at it.

Associated files

Loose objects, tilesets and rooms have an Associated files list in the details panel, showing the other resources they link to. Each entry is in one of three states:

  • In your library. Click it to jump to that asset.
  • On disk, not imported. The file was found but isn't in your library. The Import button on the list header imports them.
  • Not on disk. AssetHoard couldn't find it. Hover to see the path it expected, or use Reveal expected location to open the folder it should be in.

Resources inside a .yymps, .yyz or zip don't show this list.

Thumbnails

  • Sprites: the first frame.
  • Objects and tilesets: the first frame of their sprite.
  • Fonts: the font atlas.
  • Rooms, sounds, scripts and the rest: the type icon.

Pixel art is detected automatically, so small sprites stay crisp.

Exporting

Right-click a GameMaker resource to export it:

  • Animated sprites: Export Animation as a GIF.
  • Single-frame sprites, objects, tilesets and fonts: Export As PNG, JPEG, GIF or TGA. If an object or tileset uses an animated sprite that's in your library, you get the GIF export instead.

Dragging a .yy out of AssetHoard copies just that file, not its frames or linked resources. To move a whole resource into another project, use GameMaker's own import or drag the resource folder from your file manager.

Watched folders

New .yy files in a watched folder are processed like any import. Edited .yy files are re-read and their references resolved again. Editing a sprite's first frame or a font's atlas refreshes that resource's thumbnail.

Searching

Every .yy is tagged with the GameMaker ecosystem, which appears under Ecosystem in the sidebar and in Advanced Search.

Current limitations

  • Only the GameMaker Studio 2.3+ format is read. Pre-2.3 .yy files and GMS1 .gmx projects aren't supported.
  • Links between resources rely on GameMaker's standard <type>/<name>/<name>.yy folder layout. Resources moved out of that layout won't find their sprites or linked resources.
  • Rooms aren't rendered as a layout, and objects don't show their events or code.
  • Scripts, shaders and .yyp project files are shown as plain text.
  • .yymps and .yyz files are labelled as a generic package, not as GameMaker.
  • If a sprite frame is missing, the sprite's preview fails rather than showing the frames it did find.
  • Dragging a resource out doesn't bring its dependencies with it.