Skip to main content

gm-extract

CLI tool for extracting GameMaker assets from data.win files.

What it extracts

  • Sprites, one PNG per frame, cut using the Texture Page Item (TPAG) rectangles
  • Tilesets, as a whole image and as individual tiles
  • Fonts, as a whole image and as individual glyphs
  • Audio from the embedded AUDO chunk and from external audio groups (*.dat)
  • All strings (strings.txt)
  • A manifest.json listing every extracted resource, plus object, room, script, shader, timeline and sequence names

Texture pages in PNG, BZ2 + QOI (2zoq) and plain QOI (fioq) formats are supported.

Requirements

Python 3.8 or newer.

Installation from PyPI

pip install gm-extract

Installation from source

git clone https://github.com/nazarhktwitch/gm-extract
cd gm-extract
pip install .

Or run without installing:

PYTHONPATH=src python -m gm_extract

Usage

gm-extract path/to/data.win
gm-extract path/to/data.win -o output_dir
gm-extract --list path/to/data.win

If no path is given, data.win (or a single *.win / *.unx file) in the current directory is used.

External audio groups are looked up next to data.win.

Options

Option Description
-o, --out DIR Output directory. Default: extracted
--list Print the contents and exit without writing files
--pages Also save whole texture pages
--sheets Also save each animation as a single sheet.png
--pad Place frames on a canvas of the sprite size, keeping transparent margins
--no-sprites Skip sprites
--no-tilesets Skip tilesets
--no-fonts Skip fonts
--no-audio Skip audio
--no-strings Skip strings

Limitations

  • The texture table layout used by GameMaker 2022.9 and later is assumed. Older data.win files are not supported. For older versions check Related projects (e.g. GMS Explorer for GMS 1)
  • Textures stored outside data.win are skipped with a warning.
  • --sheets only includes frames that are on the same texture page as the first frame of the sprite.
  • Only sprites of the normal type are extracted. Spine and SWF sprites are not.
  • GMExtract: extracts sprites and audio from the data.win of Game Maker Studio games. No longer maintained; its README names GMS Explorer as the successor.
  • GMS Explorer: opens and browses data.win, extracts the frames of a sprite. On hiatus. Supports only GMS 1.

License

MIT. See LICENSE.

Metadata

Release files for gm-extract 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gm-extract 1.0.0
File Size Uploaded Provenance Actions
gm_extract-1.0.0.tar.gz 15.0 kB With provenance Details for gm_extract-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for gm-extract 1.0.0
File Interpreter ABI Platform Actions
gm_extract-1.0.0-py3-none-any.whl Python 3 none any Details for gm_extract-1.0.0-py3-none-any.whl

Total release size: 31.4 kB

Release files / gm_extract-1.0.0.tar.gz

Download URL gm_extract-1.0.0.tar.gz
Size 15.0 kB
Tags Source
SHA-256 checksum
How to use checksums
6b77ce67bd417309b65337c3c68209e2ea3ee1b62175ab9622d3e035725bc0c5
BLAKE2b-256 checksum
How to use checksums
987cd3d3862b0e07784edf9e2aac154e56754e431628411448261edcb477f90c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

Release files / gm_extract-1.0.0-py3-none-any.whl

Download URL gm_extract-1.0.0-py3-none-any.whl
Size 16.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
801232c72f4f4f1a6198836855c3fa835245782240792224459347acaef8132f
BLAKE2b-256 checksum
How to use checksums
4367efea379fea88823baca0b4d1acaa502ee70daa1e6bab7ec0269bc729fba9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

Security for gm-extract 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for gm_extract-1.0.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page