{"id":15121240,"url":"https://github.com/underminersteam/undertalemodtool","last_synced_at":"2026-04-14T03:01:51.889Z","repository":{"id":37484172,"uuid":"148701053","full_name":"UnderminersTeam/UndertaleModTool","owner":"UnderminersTeam","description":"The most complete tool for modding, decompiling and unpacking Undertale (and other GameMaker games!)","archived":false,"fork":false,"pushed_at":"2025-05-13T02:54:32.000Z","size":22655,"stargazers_count":1356,"open_issues_count":231,"forks_count":257,"subscribers_count":47,"default_branch":"master","last_synced_at":"2025-05-13T03:32:53.084Z","etag":null,"topics":["decompiler","deltarune","editor","game-maker","game-maker-studio","game-maker-studio-2","gamemaker","gml","undertale","unpacker"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/UnderminersTeam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-09-13T21:36:55.000Z","updated_at":"2025-05-12T18:02:19.000Z","dependencies_parsed_at":"2023-02-18T19:01:24.946Z","dependency_job_id":"77a17ae9-141b-47ae-a723-382157aa2707","html_url":"https://github.com/UnderminersTeam/UndertaleModTool","commit_stats":{"total_commits":2392,"total_committers":57,"mean_commits":41.96491228070175,"dds":0.7688127090301003,"last_synced_commit":"e1f5d22aadd358b748c4ba785d0c647383064dbf"},"previous_names":["underminersteam/undertalemodtool","krzys-h/undertalemodtool"],"tags_count":61,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UnderminersTeam%2FUndertaleModTool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UnderminersTeam%2FUndertaleModTool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UnderminersTeam%2FUndertaleModTool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UnderminersTeam%2FUndertaleModTool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UnderminersTeam","download_url":"https://codeload.github.com/UnderminersTeam/UndertaleModTool/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254129489,"owners_count":22019628,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["decompiler","deltarune","editor","game-maker","game-maker-studio","game-maker-studio-2","gamemaker","gml","undertale","unpacker"],"created_at":"2024-09-26T02:00:53.619Z","updated_at":"2026-04-14T03:01:51.868Z","avatar_url":"https://github.com/UnderminersTeam.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# UndertaleModTool\n\n[![Underminers Discord](https://img.shields.io/discord/566861759210586112?label=Discord\u0026logo=discord\u0026logoColor=white)](https://discord.gg/hnyMDypMbN) [![GitHub](https://img.shields.io/github/license/UnderminersTeam/UndertaleModTool?logo=github)](https://github.com/UnderminersTeam/UndertaleModTool/blob/master/LICENSE.txt)\n\nThe most complete tool for modding, decompiling and unpacking Undertale (and other GameMaker games!)\n\n\u003e *\\* (Seeing such a specialized tool, the culmination of work from many amazing contributors...)*\n\n\u003e *\\* (It fills you with determination.)*\n\n# Quick Start\n\n## Windows\n\n1. Find the latest stable (or nightly) release from the [Downloads](#downloads) section below\n2. Download the GUI version (e.g. `UndertaleModTool_v0.8.4.1-Windows.zip`), or the CLI version if you know what you're doing\n3. Extract the ZIP file to a folder (do not run from inside the archive!)\n4. Run `UndertaleModTool.exe` to start the tool\n5. Open your game's data file (e.g. `data.win`, `game.ios`, `game.unx`, etc.) via File → Open\n\n## macOS/Linux\n\nAs of writing, there is no official method of running UndertaleModTool's GUI on macOS or Linux. However, there are some options available:\n- Use the CLI (command-line interface) version of the tool. This means there's no graphical interface, but it can be useful for automation and quick tasks.\n- Use a work-in-progress port of the GUI to a cross-platform framework, such as the one [currently available here](https://github.com/UnderminersTeam/UndertaleModTool/pull/2126). As of writing, this port is incomplete, but it has support for many features that are commonly used.\n- Run the tool via [Wine](https://winehq.org). This can be configured manually, or you can use an unofficial, community-maintained installer script such as [this one](https://github.com/YarTom/UndertaleModTool-linux-installer). **The Underminers team is not associated with these projects, so take care to ensure any scripts are safe before running them!**\n\n# Downloads\n\nBoth the latest stable and nightly releases can be downloaded from the table below!\nThe nightly releases are more likely to have issues, but contain the most recent features and fixes.\n\n| Release \t| Link / Status \t|\n|:---:\t|----------\t|\n| Stable \t| [![Latest Stable Release](https://img.shields.io/github/downloads/UnderminersTeam/UndertaleModTool/latest/total)](https://github.com/UnderminersTeam/UndertaleModTool/releases/latest) |\n| Nightly \t| [![Latest Nightly](https://img.shields.io/github/downloads/UnderminersTeam/UndertaleModTool/nightly/total)](https://github.com/UnderminersTeam/UndertaleModTool/releases/tag/nightly) |\n\nUndertaleModTool has a few different versions to choose from. The differences are as follows:\n\n* `GUI` (default) - the tool has a full graphical interface, making data file viewing and manipulation convenient.\n* `CLI` - the tool is accessible only via a command-line interface, which is useful for automation and quick tasks, but is more difficult to use.\n* `Single file` - the tool is only one executable, with all dependencies embedded within it. This makes your folders cleaner, however it can also cause stability issues in certain cases.\n* `Non-single file` (default) - all dependencies are not embedded within the executable, and are now located right next to it. Choose this if you don't care about finding the right executable within ~300 DLL files, or if the stability issues from the `Single file` build affect you.\n\n# Main Features\n\n* Can read every single byte from the data file for latest versions of Undertale, Deltarune, and most other GameMaker games, and then recreate a byte-for-byte exact copy from the decoded data.\n* Properly handles all of the pointers in the file so that if you add/remove stuff, make things longer/shorter, move them around, etc., the file format won't break.\n* An editor which lets you change (almost) every single value, including unknown ones.\n* Includes a simple room/level editor.\n* Allows for GML VM code editing. This means you can add any custom code to a game, either using the built-in GML compiler or GML assembly. (YYC is not supported for this.)\n* High-level GML decompiler and compiler. Supports a large range of GameMaker versions, and most important GML features (still missing a few).\n* Support for running scripts that automatically modify your data file (or perform other nefarious tasks). This can be used for mod distribution, aside from other methods such as file patches/project systems.\n* All core functionality extracted into a library for use in external tools.\n* Can generate a `.yydebug` file for the GM:S debugger so that you can edit variables live! (see [here](https://github.com/UnderminersTeam/UndertaleModTool/wiki/Corrections-to-GameMaker-Studio-1.4-data.win-format-and-VM-bytecode,-.yydebug-format-and-debugger-instructions#yydebug-file-format))\n* Automatic file associations for all GameMaker related data files. This is opt-in at the first boot of the tool, and can also be disabled by having a `dna.txt` file next to the executable.\n\n# Screenshots\n\nHere are some screenshots of what UTMT can do:\n\n## [RIBBIT - The Deltarune Mod](https://gamejolt.com/games/ribbitmod/671888)\n\u003cimg src=\"images/ribbit-dr.png\" alt=\"RIBBIT\" width=\"640\" height=\"480\"/\u003e\n\n# Included Scripts\n\nUndertaleModTool comes with a decently-sized collection of C# scripts that extend its functionality.\nFor more information on them, consult the [SCRIPTS.md](https://github.com/UnderminersTeam/UndertaleModTool/blob/master/SCRIPTS.md) file.\n\n# Contributing\n\nAll contributions are welcome! If you find a bug, a data file that does not load etc., please report it on the [issues page](https://github.com/UnderminersTeam/UndertaleModTool/issues). Pull requests are welcome too! Here is a current list of stuff that needs to be worked on:\n\n* Upgrading profile system to a better, more source-control friendly project system.\n* Continuing to improve support for a wider variety of GameMaker versions (especially recent ones).\n* Further GML compiler and decompiler work, mainly over on [Underanalyzer](https://github.com/UnderminersTeam/Underanalyzer).\n* Making structural changes to clean up the library (an incremental effort).\n* Eventually, making the GUI cross-platform if possible, and improving it in general.\n* General usability improvements, bugfixes, and so on.\n\n# Compilation Instructions\n\nIn order to compile the repo yourself, the `.NET Core 10 SDK` or later is required.\n\nWhen cloning using Git, make sure to recursively clone submodules (e.g. with `--recurse-submodules`), as a submodule is used for the `Underanalyzer` dependency.\n\nThe following projects can be compiled:  \n- `UndertaleModLib`: The core library used by all other projects.\n- `UndertaleModCli`: A command line interface for interacting with GameMaker data files and applying scripts. Currently is very primitive in what it can do.\n- `UndertaleModTool`: The main graphical user interface for interacting with GameMaker data files. **Windows is required in order to compile this**.\n\n#### Compiling Via IDE\n- Open the `UndertaleModTool.sln` in the IDE of your choice (Visual Studio, JetBrains Rider, Visual Studio Code etc.)\n- Select the project you want to compile\n- Compile\n\n#### Compiling Via Command Line\n- Open a terminal and navigate to the directory of `UndertaleModTool.sln`\n- Execute `dotnet publish \u003cProject\u003e` where `\u003cProject\u003e` is one of the projects listed above.\nYou can also provide arguments for compiling, such as `--no-self-contained` or `-c release`. For a full list of arguments, consult the [Microsoft Documentation](https://docs.microsoft.com/dotnet/core/tools/dotnet-publish).\n\n# GameMaker Data File Format\n\nInterested in the file and instruction format research I've done while working on this? Check out the [Wiki](https://github.com/UnderminersTeam/UndertaleModTool/wiki)\nfor full details and documentation.\n\n# Special thanks\n\nSpecial thanks to everybody who did previous research on unpacking and decompiling Undertale, it was a really huge help:\n\n* [PoroCYon's UNDERTALE decompilation research, maintained by Tomat](https://tomat.dev/undertale)\n* [Donkeybonks's GameMaker data.win Bytecode research](https://web.archive.org/web/20191126144953if_/https://github.com/donkeybonks/acolyte/wiki/Bytecode)\n* [PoroCYon's Altar.NET](https://github.com/PoroCYon/Altar.NET)\n* [WarlockD's GMdsam](https://github.com/WarlockD/GMdsam)\n\nas well as all the other contributors:\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/UnderminersTeam/UndertaleModTool/graphs/contributors\"\u003e\n    \u003cimg src=\"https://contrib.rocks/image?repo=UnderminersTeam/UndertaleModTool\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nAnd of course, special thanks to Toby Fox and the whole Undertale team for making the game(s) ;)\n\n![Flowey: Now YOU are the GOD of this world.](images/flowey.gif)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funderminersteam%2Fundertalemodtool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funderminersteam%2Fundertalemodtool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funderminersteam%2Fundertalemodtool/lists"}