UndertaleModTool Versions Save

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

bleeding-edge

2 weeks ago

This is an automatically updating bleeding edge build of UndertaleModTool. There will be bugs! If you encounter any, please make an issue on GitHub or join the Underminers Discord for more help!

0.5.1.0

1 year ago

Overview

Additions:

  • The dark mode setting (@VladiStep in #1141, #1221, #1273, #1336, #1342).
  • Tabs content state saving and restoring (tab sessions) (@VladiStep in #1152).
  • More ways of opening an object in a new tab (@VladiStep in #1232).
  • The "Find all references" feature and the new "Find" menu: (@VladiStep in #1246)[0] Allows you to search for references of any common type asset by right-clicking: - An asset in the main list - An object reference in the "Object definition" fields - A tile on the GMS 2 tileset image (@VladiStep in #1288) - A texture page item on the embedded texture image (@VladiStep in #1293)[0]
  • A support for the tile layer exported data (.csv) from "Tiled" (@VladiStep in #1280)[0].
  • A proper support for code with multiple functions (@Jacky720, @VladiStep in #1191).
  • Proper code editors for shaders (@VladiStep in #1294).
  • A support for sequence text tracks (GM 2022.2 - e.g. "Dono’s Tale") (@VladiStep in #1197).
  • New scripts - "SpriteOriginCopy.csx", "SpriteOriginCopy2_3.csx" (@fixdude in #1144).
  • A support for GM 2023.1 games (e.g. "HoloCure", "Alien XENOCIDE") (@VladiStep in #1206).
  • A support for some GMS 2.0 games (@VladiStep in #1205, #1329).
  • A support for GM 2023.2 games (and particle systems) - e.g "The Slormancer", "Nova Drift" (@VladiStep in #1238, #1353, #1361).
  • An indication for the sub-functions cache building on first decompilation and 3 minutes timeout for it (@VladiStep in #1241).
  • Proper sequence model names for debugging and the "Find all reference" results (@VladiStep in #1254).
  • A support for games with room path layers (@VladiStep in #1256, #1268).
  • A possibility to delete room objects through context menu (@zivmaor, @VladiStep in #1301).
  • The "Run other script..." option on missing "Scripts" folder (@VladiStep in #1364).
  • An option to export one sprite with padding (@VladiStep in #1367).

Fixes:

  • A memory leak of UTMT scripts and the command box (@VladiStep in #1220).
  • A bug with textures not being displayed in GM 2022.3+ games; improvements of an "ImportGMS2FontData.csx" script (@Dobby233Liu, @Miepee, @VladiStep in #1048).
  • A bug with PromptChooseDirectory() infinite loop in CLI (@VladiStep in #1183).
  • An "ExportAllRoomsToPng.csx" script error (@VladiStep in #1164).
  • A crash in CLI version on events replacing (@TheAwoo in #1174).
  • A "Texture failed to loaded!" error in the embedded texture editor (@VladiStep in #1199).
  • An extension file and function tab titles display (@VladiStep in #1200).
  • A room background definition removing (@VladiStep in #1202).
  • A crash in "Deltarune 1&2" after a "Ch2 Debug.csx" script (@Jacky720 in #1188).
  • The "Gdip" crash in CLI version on loading GM 2022+ games (@VladiStep in #1302).
  • An annoying XAML binding error in "Visual Studio" log (@VladiStep in #1228).
  • Environment.ProcessPath warnings in "Visual Studio" (@VladiStep in #1234, #1258).
  • A bug in the code editor that led to freezes on some errors (@VladiStep in #1243).
  • The "FindUnusedStrings.csx" script (@VladiStep in #1246)[1].
  • A rare crash on drag&dropping within the asset list and the tab panel (@VladiStep in #1264, #1289).
  • A crash on the tileset image click (@VladiStep in #1274).
  • Incorrect GMS 2 rotated/flipped tiles display (@VladiStep in #1280)[1].
  • A bug that broke the "Disassembly" code editor tab on some localizations, e.g. Turkish (@VladiStep in #1298).
  • A random SaveCodeChanges() crash on data saving (@VladiStep in #1304).
  • A rare crash on opening the "Disassembly" code tab (@VladiStep in #1322).
  • A crash on invalid entered color value (@VladiStep in #1357).

Changes:

  • The version flags cleanup and proper GM(S) version in the title (@Jacky720, @Miepee, @VladiStep in #1047; @VladiStep in #1213).
  • Game data loading is noticeably faster and uses less RAM (@VladiStep in #1161).
  • Made the embedded texture image zoomable and more interactable (@VladiStep in #1293)[1].
  • A lot of the font editor improvements: (@VladiStep in #1328, #1331, #1332, #1346) - Added the red marker for the selected glyph, made the font texture clickable. - Made the glyphs table show and accept actual characters. ... and more! See the PR description.
  • Disabled room layers are highlighted with gray color (@VladiStep in #1201).
  • The "Timestamp" value (in "General info") is in human-readable format (@VladiStep in #1226).
  • An optimization of the "data.win" file context menu options - e.g. "Run game normally" (@VladiStep in #1245).
  • An optimization of "ExportAllCode2_3.csx" script (@VladiStep in #1239).
  • Room object names improvements (@VladiStep in #1246)[2].
  • Made the room instance layer objects resolving safer - adds a support for a "Pizza Tower D3 v3.1" mod and "Heroine Conquest" (@VladiStep in #1266, #1299).
  • Made the GMS debugger related things more distinguishable from the debug mode in some games; the GMS debugger file option is hidden by default (@VladiStep in #1330).
  • Improved the object reference fields clarity (@VladiStep in #1363).

New Contributors

Full Changelog: https://github.com/krzys-h/UndertaleModTool/compare/0.5.0.0...0.5.1.0


The CLI version has been moved to the Bleeding Edge release, if you need command line tools get it there, otherwise select "UndertaleModTool_v0.5.1.0.zip".

0.5.0.0

1 year ago

The long awaited UndertaleModTool v0.5.0.0 is here! There are many many changes since the previous version. That should make sense since it has been about a year. Well, lets get started!

Go to the bottom to get the download.

Additions:

  • The "+" (create new code) button for empty code fields (@NyakoFox, @VladiStep in #776, #955).
  • The GMS 2.3 struct decompilation (@BenjaminUrquhart in #803; @steviegt6 in #1039).
  • The "FindObjectsWithSprite.csx" script (@VladiStep, @Miepee in #813).
  • The "Copy name to clipboard" context menu option (@VladiStep in #814).
  • The game object tabs.
    - Original author - @SolventMercury in #777.
    - Separation of the changes and redrawing of the close icons - @Miepee in #824, #850.
    - Tabs code rewriting, improvements and fixes and
    the "Forward" button (bringing the tabs system to acceptable state) - @VladiStep in #831, #852, #873, #977, #988, #1003, #1008, #1092, #1148.
  • The UndertaleModTool code documentation (@Miepee in #806, #874, #903, #904, #908, #912).
  • The "Frame index" and "Image speed" fields for game object instances in the room editor (@VladiStep, @Miepee in #849).
  • More features for CLI version of UndertaleModTool (@Miepee in #860, #862, #1064).
  • The GitHub pull request and issue templates (@FriskTheFallenHuman, @Miepee in #840).
  • The git commit+branch info in UndertaleModTool development build ("bleeding edge") title (@Miepee in #885).
  • The updated "README.md" (GitHub main page of UTMT) (@FriskTheFallenHuman, @Miepee, @NyakoFox, @Grossley in #841; @Miepee in #894).
  • Automatic building of pull requests changes for easier testing (@Miepee in #919).
  • The "bleeding edge" version of UTMT (@Miepee, @Grossley in 94ea0488; @Miepee in #952).
  • The support for function scr_myscript() formatting in GMS 2.3+ (@Jacky720, @Miepee in #921; @steviegt6 in #1036).
  • The support for game data files larger than 2 GB + some optimizations (@VladiStep, @Miepee in #960).
  • The "Width" and "Height" UI fields for texture pages (@VladiStep in #995).
  • The default "Filter by name…" for the search box (@VladiStep in #1009).
  • Added the (global) settings for the room editor grid (@plrusek in #931 → @Miepee, @VladiStep in #1005).
  • The "ImportGMS2FontData.csx" script (@Dobby233Liu in #1041).
  • A better script debugging (@ngyikp in #1069).
  • A support for version 3 of the spine sprites (@nkrapivin, @Miepee in #1097).
  • Progress bar indication in a toolbar (@VladiStep in #1104).
  • A support for 27-bit reference chain offset – e.g. "ZERO Sievert" (@colinator27 in c8978605).
  • Near-complete save/load support for GM 2022.2 to 2023.1 and LTS (@colinator27, @Jacky720 in 84e15d51df8c600963b80a70ec91450f426b856d, #793, #821, #902, #1043, #1046, 856041c5279caa9d0ecd5188b8dff7c0e6968d17, 68057e1c74b64be5c9ac0eda1908e2cdd787177a, 39d6cf0a5a4eb46b81d5e6b450150f2a3bfe9866).

Fixes:

  • A crash on creating a new item with non-empty search box (@Jacky720 in #791).
  • A crash on adding a game object to room and accessing it afterwards (@mandar1jn in #794).
  • A bug in "ImportGraphics.csx" that prevented sprites import from wrongly-named folder (@NyakoFox in #795).
  • Some crashes and bugs of the "Update app to latest commit" option (@VladiStep in #808, #811).
  • A crash on adding a room assets or tiles layer (@VladiStep in #810).
  • A crash in "ImportGML.csx" (@VladiStep in #809).
  • The errors of "ImportFontData.csx" (@Miepee in #807, #920).
  • A decompiler error - #798 (@BenjaminUrquhart in #817).
  • A crash with empty sprite instance in a room (@VladiStep in #830).
  • A minor compiler error in "SURVEY_PROGRAM" (@Jacky720 in #843).
  • A crash on adding some sprite-based room objects without textures (@plrusek in #854; @VladiStep in #1103).
  • A freeze on opening GMS 2 room without IsGMS2 flag (@VladiStep in #856).
  • Some instances of "Object reference not set to an instance of an object" error on game data saving (@Jacky720 in #848).
  • A lot of room editor issues (@VladiStep, @Miepee in #876, #884, #888).
  • The errors related to UndertaleModTool folder path detection (@VladiStep, @Miepee in #946).
  • QOI textures display on different system scale setting (@VladiStep, @Miepee in #948).
  • The "Strings" list issues (@VladiStep, @Miepee in #954).
  • The issues with some messages not showing up (@Archie-osu in #936; @Miepee, @VladiStep in #956, #987).
  • A recognition of some GMS 2.3 keywords (@Miepee, @VladiStep in #968).
  • The object ID display for code and strings (@VladiStep, @Miepee in #1004).
  • The room editor grid size bugs (@VladiStep in #1014).
  • The non-disappearing "Found no matches!" popup in the code editor (@VladiStep in #1017).
  • The room object selection in the room preview (@plrusek in #931 → @VladiStep in #1019).
  • The error in "ImportGML.csx" script with short-named code (@Miepee in #1063).
  • The "ExtractEmbeddedDataFile.csx" script requires loaded game data (@VladiStep in #1109).
  • A crash on a texture page item with zero source size (@VladiStep in #1093).
  • The "NewTextureRepacker.csx" messing QOI textures up (@VladiStep in #1102).
  • The "TTFFonts.csx" script not working in GMS 2 Undertale versions (@IruzzArcana in #1113).
  • The rare "BadDeviceId calling waveOutOpen" sound error (@VladiStep in #1090).
  • The progress bar position resetting (@VladiStep in #1106).
  • The texture group editor unable to add any entry (@VladiStep in #1119).
  • The broken file path in "ExportAllStrings.csx" and "ImportAllStrings.csx" (@Sonhonet in #1136).
  • Some issues with "DeltaHATE.csx" and "DeltaMILK.csx" scripts (@Jacky720, @Miepee in #1085).
  • The bug with lost code changes on Ctrl-clickling in the code editor (@VladiStep in #1160).

Changes:

  • Code improvements of CLI version of UndertaleModTool (@Miepee in #812, #865, #911, #966).
  • UndertaleModTool is upgraded to .NET 6 (C# version 9+) (@Miepee in #863, #905).
  • Removed a custom Pair<> class (@Miepee in #881).
  • General code cleanup (@Miepee in #897, #964, #967).
  • Combined GetAssetTagID() methods into one (@Miepee in #907).
  • Deprecated "AUMI" support (@Miepee in #909).
  • Improved sprite texture entries removing (@VladiStep in #932).
  • Reorganization of UndertaleModTool scripts and dynamic scripts menu (@Miepee in #935, #937, #978, #1006).
  • Merged the "dna.txt" readme into the main readme (@Miepee in #961).
  • Removed 32-bit support from the app updater (@Miepee in #980).
  • QOI textures (de)serialization optimizations (@VladiStep, @Miepee in #963).
  • Removed "GraphViz" from the code editor (@Miepee in #965).
  • The "Settings" window is more compact (@plrusek in #931 → @Miepee, @VladiStep in #988).
  • The room editor grid is in front (@plrusek in #931 → @Miepee, @VladiStep in #1001).
  • Removed the GMS 2.3 warnings (@Grossley, @Miepee in #1000, #1013).
  • The code editor scrolling optimizations (@VladiStep in #1158).

0.4.0.4

2 years ago

UndertaleModTool v0.4.0.4 has support for the newest Deltarune update. It can also do decompiled editing of code scripts for GMS 2.3+.

General changes:

  • Fixed version detection for older games

Room editor changes:

  • GMS 2 sprite instances and (basic) tile layers support.
  • Fixed horizontal/vertical lines between tiles.
  • Backgrounds and background layers are now working properly.
  • Re-added "Save as PNG" button.
  • Fixed room object selection (always opens clicked object properties).
  • Following features now work with GMS 2 games: drawing with room object, room object order changing (with + or - key), automatic grid size calculation.
  • When selected room object is not in the currently displayed room region, it shows that object by scrolling to it.

Other changes:

  • Fixed various memory leaks.
  • Fixed and optimized "ExportAllRoomsToPng.csx" script.
  • Optimized font editor, so it opens faster.

All files in this release are for x64 computers and includes .NET bundled (no install necessary). This release contains UndertaleModTool single file, UndertaleModTool non-single file, and UndertaleModCLI. If you are encountering strange issues or glitches with the regular single file version, use the non-single file version (abbreviated to NSF).

0.4.0.3

2 years ago

UndertaleModTool v0.4.0.3 has support for the newest Deltarune update. It can also do decompiled editing of code scripts for GMS 2.3+.

All files in this release are for x64 computers and includes .NET bundled (no install necessary). This release contains UndertaleModTool single file, UndertaleModTool non-single file, and UndertaleModCLI. If you are encountering strange issues or glitches with the regular single file version, use the non-single file version (abbreviated to NSF).

v0.4.0.2

2 years ago

UndertaleModTool v0.4.0.2 has much better support for newer games in general and many new features.

All files in this release are for x64 computers and includes .NET bundled (no install necessary). This release contains UndertaleModTool single file, UndertaleModTool non-single file, and UndertaleModCLI. If you are encountering strange issues or glitches with the regular single file version, use the non-single file version (abbreviated to NSF).

You can use CTRL+K to compile decompiled code you are editing without clicking out of the editor window.


Changelog

Additions:

  • Added UndertaleModCLI.
  • Added "NewTextureRepacker.csx".
  • Added "SearchLimited.csx" (Search for terms within a limited code scope).
  • Added "SearchASM.csx" (Search disassembly for text).
  • Added "UndertaleRunButton.csx" (allows you to running faster in Undertale using the backspace button).
  • Added "ScaleAllTextures.csx" (upscale or downscale all textures in a game).
  • Added "SafeBlaster.csx" (make the Gaster Blaster more easily moddable into more battles).
  • Add a README.txt file, additional opt out of file associations are available.
  • Added "ExportAllTexturesGrouped.csx" (exports textures by texture group).
  • Added "UndertaleDialogSimulator.csx", mod by Lil'Alien (thank you).

Improvements:

  • Implemented FEDS chunk.
  • Added support for new QOI+BZip2 image format.
  • Allow opening files by drag and dropping them onto the window.
  • Added (dis)assembler support for nullish operator.
  • Changed all tab characters to 4 spaces.
  • UndertaleModLib is now buildable into a Nuget package.
  • Preserve temp file to mitigate data loss.
  • Added a "Don't show me this again" option to the GMS 2.3 warning.

Decompiler Improvements:

  • Rudimentary 2.3 (de)compiler fixes
  • 2D array get/set fix
  • "with (other)" + duplicate fixes
  • Fixed decompiler fails on switch statements with conditionals.
  • Fixed other objects' array "+=".
  • Fixed stacktop/ternary operator combo decompilation.
  • Fixed a typo TempVarAssigmentStatement => TempVarAssignmentStatement.
  • Resolved local variable problems causing slowdown with AM2R modding and other games.
  • Change type resolution rules in ExpressionConstant.ToString().

General search and script improvements:

  • Improved speed of search scripts.
    • Code searching can be accelerated even more by enabling the code caching feature in Settings.
  • Optimized script progress updating.
  • New "ClickableTextOutput" window allows clicking on the code names for the search scripts.
  • Improved scripts error handling, including line numbers.
  • Use of the main UI after Search script results is now allowed.
  • Added support for Scripts and GlobalScripts in "DumpSpecificCode.csx".
  • Truncated exception output in general.
  • Added "SyncBinding()" for possibilty to add/remove game resources from another thread.

Bug Fixes:

  • Old scripts are now backwards compatible.
  • Fixed error where certain text causes hard crash of tool.
  • Fixed crash when attempting to run a new game using temp run feature
  • Fixed erroneous attempt to write to protected areas using ImportGraphics.
  • Fixed bugs in "EnableDebug.csx".
  • Fixed regex error in "ExecutionOrder.csx"
  • Fixed "DeltaruneClearShaderData.csx" to mitigate crashes.
  • Fixed long file name issues in scripts.
  • Adding a code entry from the context menu no longer crashes the app.
  • Fixed "Delete" in the context menu of code entries.

0.4.0.1

2 years ago

UndertaleModTool v0.4.0.1 has much better support for Deltarune Chapter 2.

0.4.0.0-rel1

2 years ago

This version can load and save Deltarune Chapter 2 to disk successfully.

0.4.0.0-pre3

2 years ago

This is the third prerelease of version 0.4.0 of UndertaleModTool.

Changelog

Additions:

  • Added "FindObjectsInRooms.csx".
  • Added unused sound remover scripts.
  • Added copying scripts for sprites, backgrounds, fonts, sounds, and game objects.
  • Added WASD for Undertale (thanks Lil Alien).

Improvements:

  • UndertaleModTool scripts have been reorganized and streamlined.
  • "@@other@@" and "@@This@@" now resolve to "other" and "self".
  • Added warnings for saving/loading with the GMS debugger enabled.

Bug fixes:

  • Fixed audiogroup loading/handling and add Data.AudioGroups.ByName().
  • Fixed asset resolution for some scripts and variables.
  • Disabled DebugMsg.csx for now as it doesn't seem to work properly.
  • Allowed saving of data files of up to ~2GB in size.
  • Updated NAudio to 2.0.1, fixing a crash in .NET 5.0.7.

Why 0.4.0 is split into a pre-release

Before the full release of 0.4.0, we aim to finish implementing dark mode (see the dark-mode branch) as well as solidify the profile system. But for now, we thought it would be a good idea to make the current feature set available for general usage.

Before you run

It's important to note that the .NET version that UndertaleModTool uses has been upgraded to .NET 5.0. This means you may need to download the .NET 5.0 Desktop Runtime, at https://dotnet.microsoft.com/download/dotnet/5.0/runtime. Make sure this is the same architecture as the version of the tool you download; for instance, if you choose x86 for this tool, make sure you download the x86 runtime. If this does not work, please use the "NetBundled" versions of the tools, which do not require installing the net runtime.

Also, since this is a pre-release, it may have some instability. Please report those issues, should you encounter any.

0.4.0.0-pre2

2 years ago

This is the second prerelease of version 0.4.0 of UndertaleModTool.

Changelog

  • Fixed an error in ImportAllStrings which caused the safety checks to always fail, also the safety checks in general are more descriptive, and it is also now profile-mode friendly.
  • Added the ReapplyProfileCode helper function.
  • Fixed some asset resolutions and some asset resolver improvements.
  • Searches of no size are now prevented with Search.csx.
  • Added bytecode 16 to 17 conversion script.
  • DeltaHATE.csx now has preliminary support for Undertale as well.
  • Created ReduceEmbeddedTexturePages.csx (experimental and may be buggy).
  • DumpSpecificCode has been fixed to dump only from the objects specified rather than any that share the name.
  • Added a script to simplify the battlegroup script in Undertale.
  • Added a toggle to disable the closing warning.
  • Fixed syntax highlighter for GM:S 1 to not recognize backslashes as escapes.
  • Updated incorrect wiki link.
  • Renamed "ExportAllTexturesWithPadding" to "ExportAllSpritesWithPadding".
  • Fixes an issue that caused games to not load when variables were added or changed.
  • Add VariableFixer script to fix a bug that prevents the game from loading.
  • Intertool communication with AUMI (by Archie).
  • Add the ability to run and/or lint a UndertaleModTool script within a script.
  • DefaultCodeKind flag in General Info was renamed to be more clear about its purpose.
  • Added new string utility scripts made by Porog.
  • ExportAllSprites.csx and ExportAllSpritesWithPadding.csx now have descriptions in the readme.
  • Added script to restore missing code locals.
  • Fixed an error causing multiple files to be erroneously bundled inside UMT instead of being external

Why 0.4.0 is split into a pre-release

Before the full release of 0.4.0, we aim to finish implementing dark mode (see the dark-mode branch) as well as solidify the profile system. But for now, we thought it would be a good idea to make the current feature set available for general usage.

Before you run

It's important to note that the .NET version that UndertaleModTool uses has been upgraded to .NET 5.0. This means you may need to download the .NET 5.0 Desktop Runtime, at https://dotnet.microsoft.com/download/dotnet/5.0/runtime. Make sure this is the same architecture as the version of the tool you download; for instance, if you choose x86 for this tool, make sure you download the x86 runtime.

Also, since this is a pre-release, it may have some instability. Please report those issues, should you encounter any.