An almost fully accurate Pizza Tower decompilation, without any optimizations and no unused stuff removed.
Meant for more experienced people who prefer modding without the code holding their hand.
OpenTower is licensed under CC BY 4.0.
You can do anything with this project as long as I'm credited.
- Pizza Tower on Steam - the Switch version is compiled different and won't work
- GameMaker 2023.1.1.62 (Easier?) or LTS 2022 (Newer)
If you use LTS, you have to download and apply2022.0.1.30from File > Preferences > Runtime Feeds > Master
Any other runtimes/versions will have bugs. See Upgrading GameMaker for more info - Steamworks SDK v1.55 - unless you're planning to remove it
- UndertaleModTool
- A reasonable amount of experience with what is known as a "Computer"
This repository doesn't include any datafiles, sprites or sounds because piracy is big nonos and I'd prefer to avoid getting whooped by TDP. Because of that, now you'll have to do a whole annoying slow setup to get this thing working:
-
Download OpenTower and every requirement above. Extract each thing where you'll want to keep them.
-
Delete the
.gitignorefile in the OpenTower folder to avoid issues on your own future projects. -
Make sure Pizza Tower is up to date, with no mods. If you have
.pofiles around, then you probably have a mod installed. -
Open the
data.winfile in the game's folder with UndertaleModTool. -
Open the "Scripts" tab at the top of the UndertaleModTool window and select "Run other script..."
- Go to OpenTower's folder and select the
PTdecompiler.csxfile. If it has a weird error, try the specified UndertaleModTool version.
- It will ask you to select a folder. Select the root OpenTower folder. It should have all of these folders inside of it:
- Wait. It takes a while to dump every frame of every sprite. Don't panic.
- The decompilation is now ready to open in GameMaker. The project file to open is
PizzaTower_GM2.yyp. - When the project is open, look for
Extensions > Steamworksand change the SDK location setting to the Steamworks SDK folder.
If you don't remove Steamworks before making a build, it'll just run the game on Steam instead, unmodified.
I recommend removing the extension entirely for standalone mods. Look through all Steam related code and comment out any use of the steam_ functions.
Delete the %programdata%/GameMakerStudio2 folder while GameMaker is closed. Then reopen it.
It happens when you use a newer GameMaker version. It breaks this older one.
You have a very old UndertaleModTool version. Try this stable version.
Well, I don't think
Not recommended for inexperienced programmers.
If you want to move to a future GameMaker version you'll need to make some changes.
- Upgrade or remove the Steamworks extension.
- New GameMaker versions re-order and move assets around, making the code run in a different order. This breaks everything. The way I fix it is I make a persistent object that manually runs each broken object's step events in the intended order. Sounds terrible and tedious but if you really hate old GameMaker then you must.
- The specific version of GameMaker used for Pizza Tower had a bug that you now have to replicate. Whenever text is drawn to the screen, offset it by the current font's sprite origin.
- Rename the
string_splitscript and function names to something else. - If your mod is going to be a patch rather than standalone, keep in mind that a patch for the .exe will have to be included alongside the .win patch.
- Probably more. I forgot. Sorry?


