This is an unofficial fork of UndertaleModTool! 这是一个非官方的UndertaleModTool分支。
Download the latest release of this fork from the releases page. 在releases页面下载本fork项目的最新版本。
If you are finding Android version, please check out this. 如果你在找Android版本,点这里查看。
-
Add the support of multi-language and localization. 添加多语言和本地化支持
-
Allow to import resources from other datafiles. 允许从其它数据文件导入资源
-
Add floating information panel documentation for built-in functions, constants, and variables. 添加悬浮信息面板可以显示内置的函数、变量、常量的简易文档
-
Add floating information panel documents for sprites, numbers, etc. 添加悬浮面板快速预览所悬停内容(如精灵图、数字字面量)的信息
-
Add control options for automatic line wrapping and displaying whitespace characters to the code editor. They can also be configured with default values from the settings. 为代码编辑器添加自动换行和显示空白字符的控制选项,也可以从设置窗口配置默认值。
-
Support displaying recently opened files (automatically excluding invalid files). 支持显示最近打开的文件(自动排除无效文件)
-
Better search-and-replace panel in code editor (Ctrl+F or Ctrl+H). 更好的代码编辑器搜索替换面板(Ctrl+F 或 Ctrl+H)。
-
Added full word matching, replacement, and global replacement functions to the search code panel. 为搜索代码的面板添加了全字匹配功能、替换和全局替换功能。
-
Support separating tabs into sub windows (drag and drop tab titles outside the window, or right-click on tab titles and click 'Separate to New Window') 支持将标签页分离为子窗口(直接拖拽标签页标题到窗口外,或者右键标签页标题点击分离到新窗口)
-
Data modification tracking. 数据修改跟踪
-
Add the built-in batch image import tool. 添加内置的图片批量导入工具
-
Add the texture page migration tool. 添加纹理页迁移工具
-
Improved performance, reduced memory usage, optimized UI thread lag. 提高了性能,减少内存占用,优化了UI线程卡顿。
-
Support to use as a MCP Server for AI calling. See this for detail. 支持作为MCP服务器使用,点这里查看文档。
Below are README files of the official repositories of UndertaleModTool:
The most complete tool for modding, decompiling and unpacking Undertale (and other GameMaker games!)
* (Seeing such a specialized tool, the culmination of work from many amazing contributors...)
* (It fills you with determination.)
- Find the latest stable (or nightly) release from the Downloads section below
- Download the GUI version (e.g.
UndertaleModTool_v0.9.0.0-Windows.zip), or the CLI version if you know what you're doing - Extract the ZIP file to a folder (do not run from inside the archive!)
- Run
UndertaleModTool.exeto start the tool - Open your game's data file (e.g.
data.win,game.ios,game.unx, etc.) via File → Open
As of writing, there is no official method of running UndertaleModTool's GUI on macOS or Linux. However, there are some options available:
- 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.
- Use a work-in-progress port of the GUI to a cross-platform framework, such as the one currently available here. As of writing, this port is incomplete, but it has support for many features that are commonly used.
- Run the tool via Wine. This can be configured manually, or you can use an unofficial, community-maintained installer script such as this one. The Underminers team is not associated with these projects, so take care to ensure any scripts are safe before running them!
Both the latest stable and nightly releases can be downloaded from the table below! The nightly releases are more likely to have issues, but contain the most recent features and fixes.
| Release | Link / Status |
|---|---|
| Stable | |
| Nightly |
UndertaleModTool has a few different versions to choose from. The differences are as follows:
GUI(default) - the tool has a full graphical interface, making data file viewing and manipulation convenient.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.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.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 theSingle filebuild affect you.
- 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.
- 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.
- An editor which lets you change (almost) every single value, including unknown ones.
- Includes a simple room/level editor.
- 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.)
- High-level GML decompiler and compiler. Supports a large range of GameMaker versions, and most important GML features (still missing a few).
- 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.
- All core functionality extracted into a library for use in external tools.
- Can generate a
.yydebugfile for the GM:S debugger so that you can edit variables live! (see here) - 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.txtfile next to the executable.
Here are some screenshots of what UTMT can do:
UndertaleModTool comes with a decently-sized collection of C# scripts that extend its functionality. For more information on them, consult the SCRIPTS.md file.
All contributions are welcome! If you find a bug, a data file that does not load etc., please report it on the issues page. Pull requests are welcome too! Here is a current list of stuff that needs to be worked on:
- Upgrading profile system to a better, more source-control friendly project system.
- Continuing to improve support for a wider variety of GameMaker versions (especially recent ones).
- Further GML compiler and decompiler work, mainly over on Underanalyzer.
- Making structural changes to clean up the library (an incremental effort).
- Eventually, making the GUI cross-platform if possible, and improving it in general.
- General usability improvements, bugfixes, and so on.
In order to compile the repo yourself, the .NET Core 10 SDK or later is required.
When cloning using Git, make sure to recursively clone submodules (e.g. with --recurse-submodules), as a submodule is used for the Underanalyzer dependency.
The following projects can be compiled:
UndertaleModLib: The core library used by all other projects.UndertaleModCli: A command line interface for interacting with GameMaker data files and applying scripts. Currently is very primitive in what it can do.UndertaleModTool: The main graphical user interface for interacting with GameMaker data files. Windows is required in order to compile this.
- Open the
UndertaleModTool.slnin the IDE of your choice (Visual Studio, JetBrains Rider, Visual Studio Code etc.) - Select the project you want to compile
- Compile
- Open a terminal and navigate to the directory of
UndertaleModTool.sln - Execute
dotnet publish <Project>where<Project>is one of the projects listed above. You can also provide arguments for compiling, such as--no-self-containedor-c release. For a full list of arguments, consult the Microsoft Documentation.
Interested in the file and instruction format research I've done while working on this? Check out the Wiki for full details and documentation.
Special thanks to everybody who did previous research on unpacking and decompiling Undertale, it was a really huge help:
- PoroCYon's UNDERTALE decompilation research, maintained by Tomat
- Donkeybonks's GameMaker data.win Bytecode research
- PoroCYon's Altar.NET
- WarlockD's GMdsam
as well as all the other contributors:
And of course, special thanks to Toby Fox and the whole Undertale team for making the game(s) ;)




















