Skip to content

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

License

Notifications You must be signed in to change notification settings

wazesxrd/UndertaleModTool

 
 

Repository files navigation

UndertaleModTool

(seeing such an amazing tool...
... fills you with DETERMINATION.)

heya. i heard you like digging deep into Undertale data so i made a tool just for you!

Downloads are HERE: 👉👉👉 https://github.com/krzys-h/UndertaleModTool/releases 👈👈👈

Have questions? Want to talk? Join us on Discord! https://discord.gg/RxXpdwJ

flowey

Main features

  • Can read every single byte from the data file for lastest version of Undertale, Deltarune, and probably other GameMaker: Studio games (GM:S 1.4 and GMS2 bytecode versions 14 to 17 are currently supported) for every platform 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 (very) simple room/level editor.
  • Allows for code disassembly and editing. This means you can add any custom code to the game, either using the built-in GML compiler or GML assembly.
  • Experimental high-level decompiler. The output is accurate (except for the latest GameMaker versions), but it could use some more cleaning up of the high-level structures.
  • Support for running scripts that automatically modify your data file (or perform other nefarious tasks) - this is the way to distribute mods, but creating them is a manual job for now. It also serves as a replacement for sharing hex editor offsets - if you make it into a file-format-aware script instead, there is much smaller change of it breaking after an update.
  • All core IO functionality extracted into a library for use in external tools.
  • Can generate an .yydebug file for the GM:S debugger so that you can edit variables live! (see here)

Included scripts

Included are some test scripts. They are:

  • Universal:
    • EnableDebug: does just that, makes the global variable 'debug' be enabled at game start. If you don't know about Undertale's debug mode, check out https://tcrf.net/Undertale/Debug_Mode
    • DebugToggler: similar to the above, but instead toggles the debug mode on and off with F12
    • GoToRoom: Replaces the debug mode functionality of the F3 button with a dialog that lets you jump to any room by ID
    • ShowRoomName: Displays the current room name and ID on screen in debug mode
  • Undertale only:
    • BorderEnabler: lets you import the PlayStation exclusive borders into the PC version and patches all version checks so that they display properly
    • testing: nothing important, just displays random text on the main menu - the first script I ever made
    • TTFFonts: Makes the game load fonts in TTF format from current directory instead of using the spritesheet fonts. You will need to track down all the font files yourself, I can't host them here for licensing reasons :(
    • RoomOfDetermination: Adds a new room to Undertale 1.08. I wanted to add something more to it but never got around to it, so I guess I'm releasing it as is. Just start the game and you'll see. Probably the most complete sample of adding stuff you'll find.
  • Deltarune only:
    • DeltaHATE: HATE-inspired script for corrupting Deltarune
    • DeltaMILK: Replaces every non-background sprite with the K.Round healing milk. Don't ask why.
    • TheWholeWorldRevolving: The world is spinning, spinning

Additionally, included are some community-made scripts, "experimental scripts." For more information, consult the README file inside that directory.

Bug reports, contributing

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 and help with decoding the format is welcome too! Here is a current list of stuff that needs to be worked on:

  • Add missing chunk editors for Timelines and Extensions
  • Add support for YYC games - you won't be able to edit code, but everything else should technically work
  • Add support for latest versions of GameMaker (notably, 2.3) - decompiler cannot function in most cases currently

data.win file format

Interested in the file and instruction format research I've done while working on this? Check out these:

Special thanks

Special thanks to everybody who did previous research on unpacking and decompiling Undertale, it was a really huge help:

And of course, special thanks to Toby Fox and the whole Undertale team for making the game(s) ;)

How about a random screenshot because I'm bad at writing READMEs? NYEH HEH HEH HEH!

screenshot

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%