GameMaker games

Patching Undertale and Deltarune with XDelta

Translations and mods for Undertale and Deltarune are usually distributed as .xdelta patches for the game’s data file. The patching itself is ordinary; what trips people up is finding the right file, the protected install folder, and Steam quietly undoing the work on the next update.

  • Updated
  • Checked against Delta Patcher 3.1.6
  • 5 min read

In short

  • You patch the game’s data file, not the .exe: data.win on Windows, game.unx on Linux, game.ios on macOS.
  • Copy that file to a working folder first. The Steam install folder is usually write-protected, and patching in place is how installs get broken.
  • With Backup original file on, the output is called dataPATCHED.win. Rename it back to data.win before the game will use it.
  • A game update replaces the data file and removes the mod. Keep your backup and re-apply.

Which file do you patch?

Undertale and Deltarune are made with GameMaker, which keeps the game’s content in a single data file next to the executable. That file is what mods patch:

The GameMaker data file by platform
PlatformFile to patchWhere it lives
Windowsdata.winNext to the game’s .exe in the install folder
Linuxgame.unxIn the game’s assets folder
macOSgame.iosInside the app bundle, usually under Contents/Resources (right-click the app → Show Package Contents)

Patches are built for one specific file, so a mod normally ships a separate patch per platform, with names like mod_win.xdelta, mod_unx.xdelta and mod_mac.xdelta. Using the Windows patch on a Linux data file will fail with a checksum error, even though it’s the same game.

Finding the game folder

On Steam, right-click the game in your library, then choose ManageBrowse local files. That opens the install folder directly. The default locations are:

Default Steam install locations (Deltarune follows the same pattern)
SystemTypical path
WindowsC:\Program Files (x86)\Steam\steamapps\common\Undertale
macOS~/Library/Application Support/Steam/steamapps/common/Undertale
Linux~/.steam/steam/steamapps/common/Undertale

Outside Steam, an itch.io or standalone copy keeps the data file in whichever folder you extracted it to. On Windows you can also right-click a shortcut and choose Open file location.

Applying the patch safely

The install folder is usually protected, and patching in place is the main way people end up with a broken game. Work on a copy instead:

  1. Back up the data file

    Copy data.win (or game.unx / game.ios) to a folder you control, such as Documents\Undertale mod. Keep a second, untouched copy somewhere safe: that is your way back.

  2. Put the patch beside it

    Extract the .xdelta from its archive into the same working folder, and check the mod’s readme for the game version it expects.

  3. Apply the patch

    In Delta Patcher, choose the copied data file as the Original file and the .xdelta as the XDelta patch. Tick Backup original file in the gear menu, then click Apply patch.

  4. Rename the result

    With the backup option on, you get dataPATCHED.win. The game only loads a file called data.win, so rename it. (On Linux and macOS the equivalents are gamePATCHED.unx and gamePATCHED.ios.)

  5. Put it back in the game folder

    Move your original data file out of the install folder (or rename it to data.win.original), then copy the patched file in. Confirm any prompt asking for administrator permission.

  6. Launch the game

    Start it as usual. If the mod is a translation, you should see it immediately on the title screen or in the first dialogue.

Steam updates undo your mod

When the game updates, Steam replaces the data file with the official one, and the mod disappears. Worse, a new game version usually means the old patch no longer matches, so you can’t simply re-apply it.

  • Keep the patched file. Store a copy outside the game folder so you can put it back after an update.
  • Slow updates down. In Steam, open the game’s PropertiesUpdates and set it to only update when you launch it.
  • Check the mod first. After a game update, see whether the mod author has released a patch for the new version before re-patching.
  • Restore the original any time. In PropertiesInstalled Files, use Verify integrity of game files and Steam re-downloads a clean data file.

“The file you are trying to patch is not the right one”

This is the usual failure, and for these games it almost always means one of three things:

Why an Undertale or Deltarune patch is rejected
CauseHow to tellFix
Your game version differs from the mod’sThe mod names a version (for example 1.08) that doesn’t match yoursUse a patch built for your version, or ask the author
The data file is already moddedYou applied another mod or an earlier version of this oneRestore the original with Verify integrity of game files, then patch again
Wrong platform fileYou used the Windows patch on game.unx, or vice versaUse the patch that matches your operating system

Mods don’t stack either: two patches built against the clean data file can’t both be applied, unless the author says otherwise. The full checksum mismatch guide covers the general case.

Other things that go wrong

Undertale and Deltarune patching problems
ProblemLikely causeFix
The game launches unmoddedThe patched file was never renamed to data.win, or it’s in the wrong folderCheck the file name and that it sits beside the game executable
The game won’t start at allThe data file is for another version or was corruptedRestore with Verify integrity of game files and start again
file open failed while patchingYou patched inside a protected folder, or the game was runningClose the game and work in a folder you own
You can’t find data.winYou’re looking at the save folder, not the install folderSaves live in AppData; the data file is in the game’s install folder
The patch isn’t listed in the file dialogIt’s still zipped or named .vcdiffExtract it and check the extension

Get Delta Patcher

Version 3.1.6 is free and open source, with builds for Windows, macOS and Linux. Downloads come straight from the developer’s official GitHub releases.

Continue learning