UndertaleModTool

krzys-h·krzys-h.UndertaleModTool

The most complete tool for modding, decompiling and unpacking Undertale (and other Game Maker: Studio games!)

The most complete tool for modding, decompiling and unpacking Undertale (and other GameMaker games!) Main Features: - 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 .yydebug file 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.txt file next to the executable.

winget install --id krzys-h.UndertaleModTool --exact --source winget

Latest 0.9.2.0·August 23, 2026

Release Notes

This is the 0.9.2.0 UndertaleModTool release, for 64-bit Windows. Downloads can be found at the bottom of this release. ("UTMT_CLI" is the command-line interface version with no GUI, supported for Windows, Ubuntu, and macOS.) Changelog Note: This is a minor release. To see the changes in major release 0.9.0.0, click here. To see the changes in minor release 0.9.1.0, click here. Added

  • Added support for compiling/decompiling GML template strings by @natroute in #2412.
    • This means that, in many cases, string/@@string@@ will no longer appear, and $"{example}" syntax will/can be used instead.
  • Added an AudioGroup macro type for game-specific type data by @setupwitch in #2418.
    • This allows audio group names to get resolved in GML decompilation, when applicable.
  • Added support for more asset types for the "Find all references" feature (and other related changes/fixes) by @VladiStep in #2179.
    • Reference searching support was added for fonts within texture groups.
    • New "Room object instances" types for code have been added (create/pre-create code entries).
    • A new button has been added to Game objects, to search for the children of that object.
    • The irrelevant arguments variable no longer shows up when searching for unreferenced assets.
    • There is now better handling for varying GameMaker versions, including LTS 2022.
  • Added support for GameMaker 2026.1 betas, for both file format and some rare GML code generation changes (with nullish compound assignments).
  • Added support for optimizing variable_get_hash() during GML compilation, when possible.
  • Added a Name.Regex option to GameSpecificResolver by @InvoxiPlayGames in #2438.
    • Effectively, this allows for DELTARUNE to be detected more accurately across console versions.
  • Added native macOS arm64 build support for the CLI by @jjezewski in #2417.
  • Added a new --overwrite flag to the load command in the CLI, improving consistency across commands by @IruzzArcana in #2439. Changed
  • Built-in GameMaker functions used for GML compilation are now more accurately available based on GameMaker version by @BioTomateDE in #2428.
  • Multiple dependencies updated, including some (more) mostly-irrelevant security patches in ImageMagick. Technical Changes
  • Added a new RuntimeVersion struct in UndertaleGeneralInfo for convenience by @BioTomateDE in #2406.
  • Enabled usage of custom IGlobalFunctions implementations in GlobalDecompileContext by @skirlez in #2454.
  • Marked UndertaleData as DynamicallyAccessedMembers by @ngyikp in #2452.
    • This improves support for using UndertaleModLib in projects with trimming enabled.
  • Optimized the UnescapeText method using StringBuilder by @y114git in #2389. Fixed
  • Fixed a situation where UndertaleModLib allowed empty/null object events to be serialized (which could cause crashes) by @BioTomateHP in #2376.
  • Fixed two room editor crashes observed in a test room within DELTARUNE Chapter 5.
  • Attempted a fix for loading projects in the project system, when modding a YYC game.
  • Fixed creating a new extension within the GUI not providing reasonable defaults for several string fields, which could cause crashes. New Contributors
  • @natroute made their first contribution in #2412
  • @InvoxiPlayGames made their first contribution in #2438
  • @y114git made their first contribution in #2389
  • @jjezewski made their first contribution in #2417 Full Changelog: 0.9.1.2...0.9.2.0

Installer type: zip

neutral7060496BC1B0047C4309EDE53D564F0E187D43C894253EA3733B48E08E77E3CF

Details

Homepage
https://github.com/UnderminersTeam/UndertaleModTool
License
GPL-3.0
Publisher
krzys-h
Support
https://github.com/krzys-h/UndertaleModTool/issues

Tags

decompilerdeltaruneeditorgame-makergame-maker-studiogame-maker-studio-2gamemakergmlundertaleunpacker

Older versions (14)

0.9.1.2
neutral0F9AD0B81C8B3074537100544A6A9E5BB7092FA923459E6BA3BB22B8C7CC08B3
0.9.1.1
neutralEDAB4320C7944944F0CBE835E9534C17697B02DF3450C07B8A183525C962F8EB
0.9.1.0
neutral8728C0DFD8ABFA963FA1EB121F3D6DE2A60CF9D56952AEBAC9B8191708E01362
0.9.0.0
neutral992DD341B1E591C0EF20699E77301E22C637A70F78E9C1D992D99E71C8CECAC9
0.8.4.1
neutralFC11002F92CFA9A8CA7A3540F91DA1C5D3171B3F4774882A73E82AABA1861639
0.8.4.0
neutral31DF0955479F7432F1C7FEEA42C5550884F44527CC8383ABDEF9EB77E395D1C2
0.8.3.0
x64D1EC141CCEBB24B38F24C04CD0E5256622A2F80398B198411C6B1B3ACFC36995
0.8.2.0
neutral92939407A334E61B0129C6EFC9DA4F04F368B0625A84EAB6102C4D85057B2849
0.8.1.1
neutralB5547084C0D86839A01F05EEBF4FB7A822D7635CD3B121C82AC35E57619DE11A
0.8.1.0
neutral03AAB2697D0F78E139314691186983DAE4D0407B6F66727BA8929251DE650D94
0.8.0.0
neutral3150FE8D5E7F03FCCD0F025EEA0EBE11BD0EC270C580DF6BC886106161E456DF
0.7.0.0
neutral82BE7B0D374A056472B0E475F34D4C9B4425196477F845C1750107AEDA8C6C56
0.6.1.0
neutralB51B10920A4A1174F7B4F4252AA73B14BD848814BEE557A8013D5AA9E1D2D9D0
0.5.1.0
x64CE64DE1DA642AD6D7B803BEBF89E46EC35BD38EDBA4374E96F3A75ED7349C18B