This is a sub-page of Proto:Undertale.
|
|
To do:
|
|
|
This prototype is documented on Hidden Palace. |
Developer's Message#
It's cool that you like my game this much.
Yes, I know these are easy to decompile... You can edit Yume Nikki and OFF in RPG Maker as well. This isn't really any different.
My only wish is that you don't spoil the game for anyone else.
Wait for everyone to discover the secrets in here by themselves.
Otherwise, there will be no replay value :(
I'd also appreciate it if you held off on significant modifications before the full game is released.
I'll most likely be updating some things about the game that might make it interesting to play with.
I'll be watching...
Ha ha ha.
Toby Fox's choice words for those who decompile the demo. Located in a script called "Attention, Hackerz".
General Differences#
Name Creation Screen#
- In the final version, attempting to name the fallen human things such as Sans or Alphys would be prohibited, and naming the fallen human Gaster would restart the game. Other Easter eggs were added as well, each relating to the name of a character. This does not function in the demo.
Instructions#
|
May 23rd |
V1.00 |
|---|---|
|
|
|
- The instruction screen has a timer and a name checker that closely resembles the ones seen on the start menu, which are not present in the final version.
- The layout of the instructions is quite different, being much lower, and their font is yellow. Furthermore, there is no text indicating that Esc is used to quit, although pressing it actually works.
- Notably, in the text line regarding the game's controls the "Enter", "Shift" and "CTRL" keys are missing.
- The text "When HP is 0, you lose" here is written "When HP=0, you lose."
- The copyright does not have a number for the game version, in addition the copyright year is dated "2013" for obvious reasons.
Gameplay & Others#
- The (ultimately unused) Doge encounter and monster doesn't exist yet.
- The player's name is set as
MugsyinSCR_GAMESTART. The June 8th demo just sets the variable to a single space, and the final game sets it toCHARA. - The game has no name in windowed mode.
- The name entry screen doesn't allow you to quickly move to the bottom of the screen by pressing Up when on the top row, unlike the June 8th demo and final game.
- Spider Cider heals 22 HP instead of 24 HP.
- The exclamation mark bubble sprite is named
spr_!. From June 8th onwards, the name isspr_exc. - The game gives you EXP when you defeat a monster without killing it. The related code was commented out in the June 8th demo.
- The step counts for encountering enemies are different. The way monster populations is handled is also different, with there being 2 different sets of monster populations split up between two halves of the Ruins, each having 12 monsters.
Object |
Rooms Used In |
Early Step Data |
Final Step Data |
|---|---|---|---|
|
|
Steps: 100 - 130 |
Steps: 80 - 120 |
|
|
Steps: 260 - 360 |
Steps: 260 - 400 |
|
|
Steps: 90 - 130 |
Steps: 60 - 120 |
|
|
Steps: 90 - 180 |
Steps: 90 - 190 |
|
|
Steps: 90 - 170 |
Steps: 120 - 260 |
|
|
Steps: 90 - 170 |
Steps: 140 - 260 |
- The first Froggit encounter has 23 HP instead of 20.
- Killing Napstablook removes 10 experience points instead of just 1, though that doesn't affect your EXP anyway in the final version.
- Loox gives 2 extra Gold when spared instead of 5.
- Toriel has 2 defense instead of 1.
- When killing Toriel, you get 500 EXP instead of 150.
- After the fight against Napstablook, there is a bug that makes it possible to move while the dialogues are playing.
- The population factor cap is 10 instead of 8.
- The Genocide Route doesn't seem to have been implemented yet. You can still kill everyone and get the "But nobody came." screen, but the game will just act like you're on the Neutral Route.
- There are differences in the code for the Toriel battle.
- The condition that makes the fire in Toriel's house go out and the "no one will use this anymore" text appear in Toriel's kitchen is
global.flag[45] == 1. From June 8th onwards, the condition isglobal.flag[45] == 4. These don't trigger in this version of the demo, which explains why it was changed. - The test dialogue that's supposed to be in room_ruins7 doesn't exist.
- The Annoying Dog's sprites don't exist yet.
- When completing the demo, a conversation between Sans and Papyrus occurs telling you to support the full game, with "Nyeh Heh Heh!" playing. During this, the Comic Sans font used for Sans' dialogue has antialiasing on it, causing it to appear blurry.
PSST.
IS IT OUR TURN TO
SHOW UP NOW?
* no, not yet.
REALLY!?
WHEN ARE WE
GONNA SHOW UP!?!?
* well, this is just a
demo, so...
* never?
WHAT!!
YOU'RE RIBBING ME!!
I THOUGHT I WAS THE
STAR OF THIS GAME.
NYEH HEH HEH!
THEY HAVE TO SEE MY
COOL OUTFIT!!!
* hey, you...
* yeah, you, buddy.
* do me a favor.
* my brother really wants
you to see his...
* "cool outfit."
* make sure that happens
some day.
SANS, WHO ARE YOU
TALKING TO?
* nobody, papyrus.
* wink.
Monsters#
Vegetoid#
It doesn't have the option "Dinner", which is the option used to be able to spare it in the final, so you can only run from it or fight it. It can be spared, but only by reducing its HP first. Might have been from a possible limitation at the time, as you have to collect green carrots to allow it to be happy with you, but that would mean that Toby would've had to code in new functions to make it work like in the final.
In the demo, the "Eat" act will kill weakened Vegetoids, earning EXP and advancing the kill counter. The final replaces this with "Devour", which only eats them a little bit, ending the battle (technically) peacefully.
The Vegetoids in the switch room reappear even when killed, and even when the kill counter is maxed out and there are ostensibly no monsters left in the Ruins at all. Killing these Vegetoids repeatedly will eventually confuse the demo out of the No Mercy path and back into a Neutral path.
Graphical Differences#
Intro#
|
Demo |
Final |
|---|---|
|
|
|
The Loox was changed to a Boss Monster. The demo's intro image would end up being used later on in the final version, when Flowey alters the game after crashing it.
Arrows#
|
May 23rd |
June 8th |
|---|---|
|
|
|
The arrows that appear during Flowey's tutorial are further apart from each other and surround the SOUL instead of being under it.
HP Text#
|
Demo |
Final |
|---|---|
|
|
|
The HP text was originally antialiased in the demo.
Flowey Laugh#
|
Demo |
Final |
|---|---|
|
|
|
The second frame of Flowey's laugh animation had a single white pixel on the left side of his face changed to black, alongside both frames being changed to be transparent.
Froggit#
|
Demo |
Final |
|---|---|
|
|
|
Froggit's sprites in this demo are slightly rougher than they are in the final game.
|
Demo |
Final |
|---|---|
|
|
|
The sprites used when killed and being shooed off by Toriel are even rougher than their final versions, with the killed sprite even having some stray green pixels.
Candy Bowl#
|
Demo |
Final |
|---|---|
|
|
|
The spilled candy bowl originally had candy on the ground.
Spider Webs#
|
Demo |
Final |
|---|---|
|
|
|
The spider webs from the Spider Bakesale don't have any shading, instead being a solid white.
Napstablook#
|
Demo |
Final |
|---|---|
|
|
|
Napstablook's overworld sprite originally had thinner eyes.
Home#
|
Demo |
Final |
|---|---|
|
|
|
The background of the Toy Knife room has a different color scheme, being a more brighter purple like the rest of the Ruins rather than a dark purple and blue.
Boss Background#
|
Demo |
Final |
|---|---|
|
|
|
The background used during the Napstablook and Toriel fights is different, looking more like an entrance.
Room Differences#
Beginning Area#
|
May 23rd |
Final |
|---|---|
|
|
|
The path leading to the exit was filled in, while the decorative light-gray tiles were removed. In addition, the exit received a more ornate design in the final version. Bizarrely, one of the screenshots on the game's Steam store page depicts the demo version of this area.
Ruins#
Quite a bit was changed in this area — notably, the stairs were redrawn, the dark purple areas were shortened, more leaves were scattered around, and the vines and roof above the exit were removed.
There's a gap in the collision in the spike room, allowing you to go in the water and inside a wall.
|
May 23rd |
June 8th |
|---|---|
|
|
|
The Monster Candy room has a missing tile in the leaves.
|
May 23rd |
June 8th |
|---|---|
|
|
|
|
May 23rd |
June 8th |
|---|---|
|
|
|
|
May 23rd |
June 8th |
|---|---|
|
|
|
|
May 23rd |
June 8th |
|---|---|
|
|
|
The switch rooms are missing the path and leaves around the entrances.
The floor tiles here are completely different! They look more like bricks, the toy knife is in a slightly different position, and the background has a less bluish color tone.
Dialogue and Text Differences#
In the pause menu, your GOLD stat is mistakenly misspelt as "GILD".
May 23rd |
Final |
|---|---|
|
|
The text shown when interacting with the flowers at the start of the game originally said "Beautiful" instead of "Golden", and it didn't have parentheses.
May 23rd |
Final |
|---|---|
|
|
Flowey doesn't instruct the player to move around to catch the bullets friendliness pellets in the demo.
May 23rd |
Final |
|---|---|
|
|
Toriel's first line has her call Flowey a "cretin" as opposed to a "terrible creature", with the text being formatted a bit differently as a result. This was almost certainly changed because Toriel calling someone a cretin doesn't fit her character at all.
May 23rd |
Final |
|---|---|
|
|
A couple of Toriel's lines were rewritten to be more grammatically correct.
May 23rd |
Final |
|---|---|
|
|
May 23rd |
Final |
|---|---|
|
|
One of Toriel's lines when calling her to say hello 3 times had the indentation of the third line fixed.
May 23rd |
Final |
|---|---|
|
|
Napstablook's dialogue that appears when flirting with them after showing you "Dapperblook" was changed.
May 23rd |
Final |
|---|---|
|
|
Vegetoid originally didn't have the Dinner ACT, and its Devour ACT was originally called "Eat".
May 23rd |
Final |
|---|---|
|
|
The dialogue from the Froggit explaining how to use MERCY on enemies was changed to have colored text and have "ACT" in all uppercase.
May 23rd |
Final |
|---|---|
|
|
|
|
The Froggit outside the Toy Knife room also had some of its dialogue changed to have colored text.
May 23rd |
Final |
|---|---|
|
|
The sign explaining the colored switch puzzle originally said "change" instead of "rotation".
May 23rd |
Final |
|---|---|
|
|
Some dialogue that appears when interacting with objects were changed to have parentheses around the text.
May 23rd |
Final |
|---|---|
|
|
|
|
|
|
|
|
|
|
One of the lines of dialogue shown when interacting with the history book in Toriel's home was missing a space to fully indent the second line.
May 23rd |
Final |
|---|---|
|
|
The first line of Toriel's diary had the quote placements fixed; however, the second line still had this problem by the game's release, and was only fixed in a later patch.
May 23rd |
Final |
|---|---|
|
|
The text shown when interacting with the cupboard in Toriel's kitchen on a genocide route originally only had "knives" in red instead of the whole text.
May 23rd |
Final |
|---|---|
|
|
One of Toriel's lines before fighting her was changed to directly mention Asgore.
May 23rd |
Final |
|---|---|
|
|
Her lines about Asgore after you kill her were also changed.
May 23rd |
Final |
|---|---|
|
|
|
|
Some of Flowey's lines after killing Toriel during a genocide route were changed to fix a few indentation errors.
May 23rd |
Final |
|---|---|
|
|
|
|
The text for equipping the Stick is a lot more direct in the demo.
May 23rd |
Final |
|---|---|
|
|
Spider Cider originally healed 22 HP, so its description was different to match that.
May 23rd |
Final |
|---|---|
|
|
The Faded Ribbon's description was changed.
May 23rd |
Final |
|---|---|
|
|
The dialogue that appears when using the Devour ACT (originally called Eat) on Vegetoid had the amount of HP recovered changed and had text saying you took a bite out of Vegetoid added.
May 23rd |
Final |
|---|---|
|
|
Unused Graphics#
There are two unused faces for Toriel present in this version of the demo. Strangely, these sprites are present in the final game, despite not being in the June 8th version of the demo.
|
Demo |
Final |
|---|---|
|
|
|
An early version of Napstablook's left facing sprite, which even in the final game is unused. Here their body is much longer and slightly wider than how it appears in the final sprite.
Unused Music#
Grandpa Semi#
A variant of the intro to Mettaton's battle theme with the odd filename "grandpasemi.ogg". In 1.001 of the final game, this is used, renamed to snd_grandpatemi. It plays when Temmie is denied Temmie Flakes.
|
grandpasemi |
Mettaton Battle (First few seconds) |
|---|---|
Start Menu 1#
As the player progresses through the game, the main menu music gets progressively more complex. In the demo, music tracks are overlaid on top of each other instead of being all in one file. They are slightly different from the final version.
The first track has slightly softer drumming.
|
Demo menu1 |
Final menu1 |
|---|---|
NOTE: "menu1.ogg" was renamed to "mus_menu0.ogg" in the final, and each subsequent song was decreased by 1 as a result, but for ease of reading, each song will be referred to here by their demo name. There are only 4 menu variations in the demo, but 7 variations in the final.
Start Menu 2#
In the demo, "Start Menu 2" is the bass accompaniment to "Start Menu 1". In the final, the bass and "Start Menu 1" are merged together.
|
Demo menu2 |
Final menu2 |
|---|---|
Start Menu 3#
In the demo, "Start Menu 3" is a NES-sounding instrument. In the final, it's "Start Menu 2" with a piano playing the "Start Menu 1" layered on it.
|
Demo menu3 |
Final menu3 |
|---|---|
Start Menu 4#
In the demo, "Start Menu 4" is made completely of orchestral instruments, with no NES-esque instruments. In the final, "Start Menu 4" is "Start Menu 3" with extra percussion and an NES instrument layered on that sounds very similar, if not identical to the demo's "Start Menu 3".
|
Demo menu4 |
Final menu4 |
|---|---|
The demo's "Start Menu 4" sounds very similar to the final's "Start Menu 6".
|
Demo menu4 |
Final menu6 |
|---|---|
bad.ogg#
This short track is used during Hotland's "Cooking with a Killer Robot" and Mettaton's newscast cutscenes in the final game.
Unused Text#
Early Candy Bowl Text#
Some early text for the candy bowl found in the Ruins, being commented out of the text script. It should be noted that the text that appears if you try to take candy with a full inventory does not exist in this early version.
Early |
Final |
|---|---|
|
|
|
|
|
|
Phone Call ID List#
A list of all the IDs for phone numbers, including the unused Grandpa Semi with a test line for him, and a different spelling of Undyne. This can be found in SCR_GAMESTART.
//0 --> nobody
//1 --> torielHello
//2 --> torielPuzzleHelp
//3 --> torielAboutYou
//4 --> torielMom...
//5 --> torielFlirt
//6 --> Papyrus
//7 --> Sans1 (prank number 1)
//8 --> Sans2 (prank number 2)
//9 --> Sans3 (prank number 3)
//10 --> GrandpaSemi (Hello... id like a large pepperoni pizza...)
//11 --> DrAlphys
//12 --> Undine
//13 --> Mettaton
There are also comments of character names next to the phone variables, again with a different spelling of Undyne. These suggest you would've been able to call more characters other than just Toriel and Papyrus, as well as calling Undyne separately from Paprus.
global.phone[0]=0 // papyrus
global.phone[1]=0 // undine
global.phone[2]=0 // mettaton
global.phone[3]=0 // sans
global.phone[4]=0 // dralphys
global.phone[5]=0 // other
Stat Comments#
SCR_GAMESTART has comments next to each of the stats set at the beginning of the script. Included are unused stats like energy (which has commented-out code for appearing in the pause menu), hitbox, and guts. Karma is also here, which doesn't appear in the demo, but would later be reused in the Sans battle in the final game with a different function. Based on an early ideas note for the game, Karma would've worked as a scoring system in a similar way to LOVE in the final game. Guts would end up being reused in Deltarune as a visual stat in the stats menu. In the final game, global.ph is set to 0. The previously mentioned early ideas paper mentions a mechanic of phasing through bullets, which may be what this variable was intended for. A variable named global.phasing is used to allow the player to walk through walls, but that is a different variable from what is listed here.
global.hp = 20 //hp
global.maxhp = 20 //hp
global.en = 20 //energy
global.maxen = 20 //energy
global.at = 10 //attk
global.df = 10 //def
global.adef= 0 // armor defence
global.sp = 4 //sped
global.asp = 4 //actual sped
global.hb = 5 //hitbox
global.gt = 5 //guts
global.km = 0 //karma
global.ph = 30 //phasing
Unused Pause Menu Text#
The pause menu has commented-out code for an unused "EN" stat, which stands for energy. It is coded to be drawn in the exact same place as the HP stat in the main pause menu, and directly underneath the HP stat in the stats menu.
EN (cur)/(max)
There is also commended out code for a save button directly in the pause menu, which would've appeared under the CELL button.
SAVE
Save Menu Kill Counter#
The save menu has commented out code that replaces the current room's name with your total amount of kills if you've killed 23 or more monsters.
Kills -
Battle Menu Comments#
The code for the battle menu has comments explaining each menu ID and what they're used for.
// how to advance every menu
// menu 0 = fight,spell,etc. 1 = fight choice 2 = talk choice 10 = talk select 3 = item choice 3.5 = itemchoicepg2 11 = item target select 4 = spare choice
// 6 = 2ndary talk choice 7 = tertiary talk choice 8 = quaternary talk choice 9 = quintuple talk choice
There is also this comment above the item menu code likely meant to keep track of the positions of each item ID.
////////////////////////////////////////////////////////////
// 0 1 4 5
// 2 3 6 7
Unused Item Throwaway Text#
A commented out line of code that can be found inside the "throwing away an item" segment of the script "SCR_TEXT" which shows an unused line of text that says "* Nothing but somber goodbyes for the [ITEM].".
case argument0=12: //throwing away an item
i=round(random(14))
if i=0 then global.msg[0]="* You bid a quiet farewell& to the " + global.itemname[global.menucoord[1]] + "."
if i=1 then global.msg[0]="* You put the " + global.itemname[global.menucoord[1]] + "& on the ground and gave it a& little pat."
// if i=2 then global.msg[0]="* Nothing but somber goodbyes& for the " + global.itemname[global.menucoord[1]] + "."
if i=2 then global.msg[0]="* You threw the " + global.itemname[global.menucoord[1]] + "& on the ground like the piece& of trash it is."
if i=3 then global.msg[0]="* You abandoned the & " + global.itemname[global.menucoord[1]] + "."
if i>3 then global.msg[0]="* The " + global.itemname[global.menucoord[1]] + " was& thrown away."
global.msg[0]+="/%"
break;
* Nothing but somber goodbyes
for the [ITEM].
Sans and Papyrus Test Dialogue#
Some test dialogue from Sans and Papyrus that can be found commented out in obj_readable_room1. These are somewhat similar to a test conversation between the two found in obj_papyrus_sign in both this demo and the final game.
* just letting you know.
* WE ARE VERY COOL.
* not so sure about that.
EVERY MORNING I
SHALL BATHE IN A
SHOWER OF KISSES.
Early Item Names#
Comments on some items in the item code refer to them by different names.
- The Stick is referred to as "butter knife".
- The Toy Knife is referred to as "soul knife".
- The unused Croquet Roll is referred to as "croquette roll" in the item description code.
- The unused Rock Candy is referred to as "ancient toffee".
- The unused Stoic Onion is referred to as "Stoic Onions" in the item description code.
Napstablook Cheer Comment#
In the code for using the Cheer ACT on Napstablook, there is a comment next to it saying "sing", suggesting that the ACT was originally called "Sing".
// sing
TestMonster Comment#
In the code for TestMonster, there is a comment on the "What's your favorite color?" question that says "WE'RE REALLY GETTING INTO THIS CONVERSATION".
// WE'RE REALLY GETTING INTO THIS CONVERSATION
Leftover Metadata#
Thumbs.db File#
A single Thumbs.db file is present in the demo's instruction folder, showing an earlier version of two of the images used for the manual. The only difference is the top-left and top-right manual images are using early concept art drawn by Temmie (specifically the top-right and bottom-right images of the provided concept art sheet).
Name |
Thumbs.db Image |
Used Image (if present) |
File Date |
File Location |
Additional Notes |
|---|---|---|---|---|---|
{A42CD7B6-E9B9-4D02-B7A6-288B71AD28BA} |
5/23/2013 (03:36:32.167) |
instruction |
![]() |
||
Music#
Files in the music folder contain a handful of metadata, with the exception of music/slience.ogg, which contains absolutely nothing. Though, they all tend to be just meaningless information like below:
Name |
Content |
|---|---|
|
(empty) |
|
(empty) |
|
(empty) |
|
(empty) |
|
(empty) |
|
FL Studio |
From the ENCODER tag, it seems that those files are Toby's original OGG exports for use with Caster, the extension used by the demo for playing OGG files. In the final game, external OGG files are reencoded by GameMaker: Studio at build time, stripping some metadata in the process.
