Coder Social home page Coder Social logo

crackercat / undertalemodtool Goto Github PK

View Code? Open in Web Editor NEW

This project forked from underminersteam/undertalemodtool

0.0 0.0 0.0 17.43 MB

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

License: GNU General Public License v3.0

C# 100.00%

undertalemodtool's Introduction

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 most other GameMaker: Studio games (GM:S 1.4 and GMS2 bytecode versions 13 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, but not limited to:

  • 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 F1
    • 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
    • Search: Simple search for text in decompiled code entries
    • Scripts to batch import and export various types of asset files.
  • 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. For more information, consult the SCRIPTS.md file.

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:

  • Work on the profile system
  • Decompiler improvements
  • Dark mode / theming support
  • Add support for latest versions of GameMaker (notably, 2.3) - decompiler cannot function in most cases currently
  • Eventually, making the tool cross-platform if possible

Compilation Instructions

In order to compile UndertaleModTool yourself, the following dependencies are needed:

  • Windows (Due to WPF being used currently, this won't work on any other OS)
  • .NET Core 5 SDK
  • Any recent version of Visual Studio

After that, you can just open the UndertaleModTool.sln file in Visual Studio, Select UndertaleModTool as the project to build, and then compile.
Alternatively, you can also compile via command line, like so: dotnet publish UndertaleModTool --no-self-contained -p:PublishSingleFile=true -c release -r win-x86 You can adjust win-x86 to other RIDs, such as win-x64 or win-arm.

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

undertalemodtool's People

Contributors

grossley avatar colinator27 avatar krzys-h avatar kneesnap avatar vladistep avatar nkrapivin avatar benjaminurquhart avatar jacky720 avatar nyakofox avatar gurgalex avatar miepee avatar johnnyonflame avatar archie-osu avatar lassebq avatar breakinbenny avatar mwiatrowski avatar plrusek avatar yokimklein avatar agent517 avatar lunaisnotaboy avatar maximmax42 avatar mc-muffin avatar snaggly avatar minirop avatar omerakgoz34 avatar sahlaysta avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.