We just reached 25,000 articles on this wiki! 🥳
If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
This article has a talk page!

Undertale

From The Cutting Room Floor
Jump to navigation Jump to search
This page contains changes which are not marked for translation.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎português do Brasil • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어


Title Screen

Undertale

Developer: Toby Fox
Platforms: Windows, Mac OS X, Linux, PlayStation 4, PlayStation Vita, Nintendo Switch, Xbox Series X
Released internationally: September 15, 2015 (Windows, macOS), July 17, 2016 (Linux), August 15, 2017 (PlayStation 4, PlayStation Vita), September 18, 2018 (Nintendo Switch), March 16, 2021 (Xbox Series X/S)


AreasIcon.png This game has unused areas.
DevMessageIcon.png This game has a hidden developer message.
GraphicsIcon.png This game has unused graphics.
ItemsIcon.png This game has unused items.
MusicIcon.png This game has unused music.
SoundIcon.png This game has unused sounds.
TextIcon.png This game has unused text.
DebugIcon.png This game has debugging material.
SoundtestIcon.png This game has a hidden sound test.
RegionIcon.png This game has regional differences.
Carts.png This game has revisional differences.


ProtoIcon.png This game has a prototype article
PrereleaseIcon.png This game has a prerelease article
NotesIcon.png This game has a notes page

What are you doing?

Looking for secrets?

Don't put your nose where it doesn't belong.

Or you might learn something you DON'T like...

Hee hee hee.

Undertale homepage, in the page's HTML code.

UNDERTALE is an indie RPG where no one has to die. Inspired by the likes of the EarthBound series, particularly Mother 3, Yume Nikki, and Cave Story, it received critical acclaim for its interesting characters, interconnected soundtrack, and twists on standard RPG tropes. Supported by a devoted fan base, for a time, it was hard to avoid this game.

Hmmm...
To do:
  • TO-DO page list is located here.
  • A lot of changes to list.
  • A bunch of RG 04 or 03 text was changed, (Supposedly overwritten with RG 01/02 text) confirm this.
  • RG 01/02 has new text if you call Undyne before their battle.
  • Format this page into subpages.
  • Add version differences in the Switch version.
  • Add version differences in the Xbox version. (Including use of unused text...?)

Sub-Pages

Read about prototype versions of this game that have been released or dumped.
Prototype Info
Read about prerelease information and/or media for this game.
Prerelease Info
Miscellaneous tidbits that are interesting enough to point out here.
Notes
Undertale toby dog.gif
Debug Mode
Unfortunately, there are no insects to be found in this mode.
Undertale-unused spell sprite 2.png
Unused Graphics
There are so many dogs in this game! There's even UNUSED dogs!
Undertale room tundra rollsnow.png
Unused Rooms
From candy pedestals to talkative NPCs.
Undertale-spr wordfall4 0.png
Unused Text
I WAS NEVER ONE TO BEPIS.
UT MewMewSprite.png
Version Differences
The many alternating possibilities a pacifist or a murderer can make.

Developer's Messages

"Don't rip sprites!" Warning

Version 1.00

...and don't even get us STARTED on uploading audio tracks to BrawlCustomMusic!

Please don't upload these huge sprite sheets online. 
Just 'cause most weird things here ARE used, I'd rather them be seen in context first. 
wait like a year 1st...
if you're just ripping normally seen sprites for spriter's resource or smth idc if you use these 2 make it easier tho

abc_1111 contains a crudely-written note addressed to sprite rippers, specifically the ones at the website Spriter's Resource, telling them to wait a year before uploading full sheets online.

Games made with Game Maker, like Undertale, store all of their sprites in big PNG spritesheets, instead of each sprite or character being stored as an individual file. So if one were to upload sprite sheets, the easiest thing to do would be to upload all of the sheets as-is...which would leave all of the spoiler-y sprites on the same sheet as well.

The odd filename was chosen to force it to the top of an alphabetical file listing and make its presence more obvious...which does no good, as the file listing is only visible if the sprites are separated by their internal names. Oops. This was replaced in later versions.

Version 1.001

I don't like the b-bepis either!! I-i swear!

 
you know what i
    HATE?

that's
       bepis

THE TASTE
   the smell
      the texture

hey...
      your
          drooling...

Version 1.001 replaces the no-spritesheet request with this vaguely erotic note about "bepis" that is a reference to a man in Moonside from EarthBound who hates the food the player likes. Toby Fox is a fan of EarthBound, and Undertale takes inspiration from the game heavily. Bepis is a silly misspelling of "Pepsi", as well as a word the developers think is silly.

The lack of any real meaning to this new text and the fact that it replaces the earlier request can be taken as permission to begin posting spritesheets, as supported by this forlorn-looking email.

"Don't spoil the game!" Warning

abc_123_a.ogg

Hello. He-he-he-he-have some respect and don't spoil the game. It's impossible to have mysteries nowadays, because of nosy people like you. Please keep all of this between us. If you post it online, I won't make any more secrets. No one will be impressed. It will be your fault! He-he-he-he-ha-he-he-ha-he-he.

This is a sound file of eight text-to-speech voices telling people not to post the game's secrets online. Who in their right mind would do tha— wait a minute...

The odd filename was chosen to force it to the top of an alphabetical file listing and make its presence more obvious. All other OGG-format music and sound effect files present in the game's folder are prefixed with either "mus_" or "snd_".

This file was updated in v1.001, taking out pretty much everything that was in the original audio file.

Toby Fox's Message

Hmmm...
To do:
Changes to this post-1.001.
Part of this game's charm is the mystery of how many options or secrets there are. If you are reading this, please don't post this message or this information anywhere. Or doing secrets will become pointless.
By the way, most of the seemingly unused text/files are used.
If you can find the in-game context for an asset, you can show it off. But if you can't, it probably means you haven't looked hard enough. Anything truly unused I'll probably post myself, later.
Living in a world like this, where people can simply cheat out the answers from the code... your impatience has REALLY damaged you, hasn't it?

This notice is put into the attention_hackerz_no_2 script, where the messages are set into variables called demonx, demony, demonz and demond, respectively. The messages are, obviously, used to warn crackers. Due of the naming of the script, the messages is put at the start of the internal strings list, increasing the chance for them to be read.

In 1.001, however, it has been changed to this:

Greetings.
You have made yourself completely clear.
Understood.
I, your humble servant, will follow you to the utmost...

The variables have been renamed to demona, demonb, demonc and demond, too. Curiously, the first line from the version 1.00 message is still present along with its associated variable, but has been moved into scr_namingscreen_check, which is the script that handles naming easter eggs.

Unused Music

mus_kingdescription

A more orchestrated rendition of "Determination", the Game Over theme. Based on the filename, it was most likely used in a scene related to Asgore.

mus_dance_of_dog

This funky fresh beat plays exclusively in the "dancing" dog error room. The error room is most easily accessed by messing with your save file.

mus_sigh_of_dog

This unfunky fresh beat plays exclusively in the sleeping error dog room. The error room is most easily accessed by messing with your save file.

mus_star

Music that uses instruments from Star Fox. Other tracks in the game use instruments from games like Mario Paint, Final Fantasy VI, Chrono Trigger, Mega Man X , and EarthBound, so this wouldn't be TOO out of place.

According to Toby Fox, this song was intended to play when Madjick's magic orbs turn into healing hearts. However, this proved too difficult to implement because the Core's background music continues into monster battles, so it was scrapped.

(Source: Toby Fox)

mus_f_part3

Another variation of Flowey's boss music. 0:20 onwards is used for scene transitions, however, internally, a sound effect that sounds like that part plays instead of this track.

mus_f_finale_1

An unused first part of "Finale". This track is never played, as mus_f_finale_1_l plays instead. It is simply a shorter version of the first part of Finale, and it is most likely the game would have restarted at the point where the souls heal you instead of immediately starting on the fight.

mus_piano

Played at the end of the Undertale demo if you kill Toriel in a neutral run, and appears as the last track of the soundtrack (titled "Good Night"), but isn't used in the final game.

mus_ruinspiano

A slow, solemn piano rendition of the music played in the Ruins. It is a slowed down version of the first section of "An Ending."

mus_birdsong's Hidden Loop

Bird That Carries You Over A Disproportionately Small Gap (mus_birdsong) is played when the bird carries you over the gap in Waterfall. However, the music only lasts one loop until it fades out. The file DOES loop properly, however a bit of the music at the end gets cut off in normal gameplay.

Unused Sounds

mus_sfx_a_swipe

A voice (presumably Mettaton or Asriel) grunting.

mus_sfx_ahh

Flowey says "ahh".

mus_sfx_voice_triple

Flowey says "triple".

mus_sfx_voice_jafe

Asriel saying "JAFE" (maybe Strafe?, seeing as the Chaos Saber needs you to quickly go to the other side of the box). According to the code for the Asriel Dreemurr fight, this sound effect is partially played in Asriel Dreemurr's "Chaos Saber" attack.

mus_silence

Audio file that's, obviously, silence.

snd_curtgunshot

A generic gunshot sound.

mus_f_wind1

An unused longer loop of mus_f_wind2.

mus_f_newlaugh_low

An unused lower pitch variant of mus_f_newlaugh.

mus_woofenstein

An unused longer loop of mus_woofenstein_loop.

Title Screen Easter Eggs

Wait, we're categorizing this now?

Press Shift or X five times at the title screen to get this handy screen. Activity Level A is shown if you get a neutral ending. Activity Level B is shown if you complete a pacifist route. Activity Level C is shown if you fight Sans twice or kill him. If none of the requirements are met, "No Information" is shown instead. Typing BALL at the same screen causes a sound to play.

Unused Battles

RG03 and RG04

In the game's files with battle ID 76, there is a fully complete battle set up for two more Royal Guards, RG03 and RG04. RG03 and RG04 are mentioned by Undyne during a phone conversation as switching off with RG01 and RG02 on certain days. Despite this, they were actually cut simply because there wasn't any place they could naturally be put in, according to the artbook.

Their battle revolves around them being old friends who had a falling out, and the Pacifist solution is to get them to make up. The guards themselves are slightly incomplete, both using Aaron's defeated sprite as a placeholder.

Other Unused Encounters

ID Enemy 0 Enemy 1 Enemy 2 Encounter message Notes
1 TestFroggit TestFroggit TestFroggit
* TestMonster and its cohorts draw near!
Appears in TESTROOM.
14 Vegetoid Loox
* Vegetoid and Loox attacked!
31 Chilldrake Chilldrake
* Chilldrakes flutter forth!
33 Icecap Snowdrake
* Icecap and Snowdrake pose like bad guys.
33 Icecap Chilldrake
* Icecap and Chilldrake pose like bad guys.
Alternate version of the previous encounter for if Snowdrake has been killed.
34 Jerry
* Jerry clings to you!
61 Final Froggit
* Final Froggit was already there, waiting for you
The encounter message is incorrectly formatted if spawned in-game, with the comma appearing on its own line.
63 Whimsalot
* Whimsalot rushed in!
69 Bomb
* Defuse the bomb!
This Bomb is a unique unused enemy that lacks a time limit but otherwise behaves like the used dog-Bomb.
79 Vulkin Vulkin
* A strange parade blocks the path.
127 Whimsalot Parsnik
* Whimsalot and Parsnik appeared.
131 Parsnik Astigmatism
* Not only potatoes have eyes.
133 Astigmatism Migospel Moldessa
* Looks like a real party.
134 Whimsalot Parsnik Moldessa
* Party from Hell.

Unused Attacks

Sans

Hmmm...
To do:
Double check these.


Sans' battle has some unused attacks. They, along with used attacks, are handled in the obj_sansb_body object.

Vertical Platforms - The attack is handled by obj_vplatgen. It has bones along the bottom, with platforms randomly placed and scaled scrolling from top to bottom. Some platforms wave from left to right slightly as well. To dodge, you are to stay on the platforms and not fall to the bottom into the bones. There are 3 variantions to this attack, controlled by obj_vplatgen's (0-indexed) type variable, type 1 to type 2 are simply sped up versions of type 0. Type 2 is directly accessible as attack type (variable a_type) 9 in obj_sansb_body. There's also a unused 6th Alarm event to the generator objects, which spawns randomly positioned bones in the middle of the screen to dodge every 50 frames. Because the platforms are randomly generated in size and position, it can be impossible to avoid getting hit.

Vertical and Horizontal Bones - Fixed bullet patterns with bones coming from positions vertically and horizontally. To dodge, you must maneuver around the bones. Accessible as attack type 10 in obj_sansb_body. There also exists a variantion, accessible as attack type 11 in obj_sansb_body, which is faster and has a different pattern. There is also a "hell" variantion of the first kind of the attack, accessible by setting the hell variable in obj_sansb_body to true, which is harder.

Random Gaster Blasters Variant - The sprites for the blasters are squished to be thin, much like one of the final version's variants, although this time the blasters spawn and shoot faster. This can be seen if a obj_gasterbl_gen is spwaned with type 0, which is not utilized by any coded attack in obj_sansb_body.

Final Attacks Variants - There is also "hell" variants of some of the final attacks. The attack where you have to short hop in between a gap in bones (attack type 1) and the one where you hop over a small white bone with a long blue one right after (attack type 3) is faster when the hell variable in obj_sansb_body is set to true. The platforming attack with bones and platforms scrolling across the screen horizontally has a variant where the platforms scroll slower, which is type 0 of obj_3platgen.

Worth to note that there exists an unused pitch for Megalovania in the code, which is also demonstrated in the video in result of the usage of the skip debug variable. Here's the related code, in the Create event of obj_sansb:

if (skip == true)
{
    con = -1
    with (mypart1)
        bounce = 1
    obj_borderparent.visible = true
    global.msg[0] = scr_gettext("obj_sansb_90") // * Skipped ahead.
    global.mnfight = 3
    global.myfight = 0
    global.faceemotion = 0
    normalfight = 1
    obj_heart.visible = true
    global.flag[271] = 1
    caster_loop(global.batmusic, 0.95, 0.95) // <-- here
}
(Source: Lil'Alien)

Mettaton EX

The Mettaton EX battle has some unused attacks. These can be seen if obj_mettattackgen is spawned with the respective attack types set in a global variable called global.attacktype.

Hmmm...
To do:
Explain better

Attack type 1 - Columns of boxes

Attack type 2 - Columns of boxes waving from left to right

Attack type 3 - Some arms waving from left to right?

Attack type 4 - Literally just legs

Attack type 5 - Activated legs waving from left to right

Attack type 6 - Boxes and bombs scattered everywhere

Attack type 7 - Boxes and bombs scattered everywhere, but faster

Attack type 8 - Tightened bullet board, bombs appear from left and right

Attack type 9 - Less tightened bullet board, bombs appear from left, center and right

Attack type 10 - Columns of boxes and bombs come very fast, the pattern is replayed after a while

Attack type 11 - Columns of blocks that go upwards when shot

Attack type 12 - Columns of blocks that go upwards when shot, plus sparkles that only appeared in the Alphys Lost Soul fight in the final game

Attack type 13 - A lot of mini Mettatons throwing hearts

Attack type 14 - Another lot of mini Mettatons throwing hearts

Attack type 15 - Mini Mettatons throwing sparkles

Attack type 16 - Mini Mettatons throwing sparkles again

Attack type 50 - Some arms with moving yellow block?

Attack type 51 - Fast disco ball

Attack type 52 - Boxes and bombs scattered everywhere, again, and also kinda fast

Attack type 55 - Yet again, literally just legs

(Source: Lil'Alien)

Dog Error Screens

Two screens featuring the annoying dog are present in the game. These are used as "error handlers" in case something goes wrong, such as loading a corrupted save file or entering an invalid or otherwise inaccessible room with an edited save.

The song "mus_dance_of_dog" is used on one of the error handler screens (the left one), at a random pitch. The other song is "mus_sigh_of_dog".

Unused Items

ID Name Short Name Serious Name Description Use Text
2 Croquet Roll CroqtRoll CroqtRoll Heals 15 HP

Fried dough traditionally served with a mallet.

Normal:

You hit the Croquet Roll into your mouth.

Serious Mode:

You ate the Croquet Roll.

5 Rock Candy RockCandy RockCandy Heals 1 HP

Here is a recipe to make this at home:

1. Find a rock

You ate the Rock Candy.
6 Pumpkin Rings PunkRings PmknRings Heals 8 HP

A small pumpkin cooked like onion rings.

You ate the Pumpkin Rings.
8 Stoic Onion StocOnion Onion Heals 5 HP

Even eating it raw, the tears just won't come.

Note: The use text doesn't have "you didn't cry" in serious mode.

You ate the Stoic Onion. You didn't cry...
9 Ghost Fruit GhostFrut GhstFruit Heals 16 HP

If eaten, it will never pass to the other side.

You ate the Ghost Fruit.
18 Puppydough Icecream PDIceCram Ice Cream "Puppydough Icecream"

Heals 28 HP. Made by young pups.

Note: This item's name is too long to show up properly when using a dimensional box. The use text has no Serious Mode variantion.

Mmm! Tastes like puppies.


(Source: rawr.ws)

Unused Item Drop

In the interal monster setup code, there is mentions of item rewards and the chance for the item to drop, though this never happens within the game, leaving these global variables unused: itemrewardid and itemrewardchance. Below is an example of the variables in the code.

global.monstername[myself] = scr_gettext("monstername_3") // monstername_3 = "Froggit"
global.monstermaxhp[myself] = 20
global.monsterhp[myself] = 20
global.monsteratk[myself] = 4
global.monsterdef[myself] = 1
global.xpreward[myself] = 10
global.goldreward[myself] = 20
global.itemrewardid = 1
global.itemrewardchance = 50

Obscured Assets

Snowdin Building Mockups

Placeholder Snowed Inn Lobby

Hidden under the image for the Snowed Inn lobby is a mockup of the rooms layout made of the Snowdin tiles.

Undertale room tundra inn placeholder.png

Placeholder Snowed Inn Rooms

Like the lobby, there is a placeholder layout for the rooms in Snowed Inn, featuring some not so comfortable beds...

Undertale room tundra inn 2f early.png

Placeholder Librarby Inside

A mockup of the inside of Snowdin's Librarby, being made of snow and bits of trees.

Undertale room tundra library placeholder.png

Early MTT Hotel Outside

Hidden under the MTT Hotel outside image in the respective room (room_fire_hotelfront_2) is an early version of the hotels outside, being made up of tiles instead of being one image. The ground tiles are placeholders, using the ice cave ground, a tile that was used as a placeholder throughout the entirety of Hotland.

Undertale room fire hotelfront 2 early.png

Early CORE Entrance

Hmmm...
To do:
Relocate this somewhere, this doesn't seem to fit here.

Undertale room fire precore hidden area.png

Hidden in the right side of the room for CORE's entrance (room_fire_precore) is what seems to be a placeholder version of the entrance, made of Hotland assets. Yes, the background (should) loop like that in the game.

(Source: Underminers Discord)

"rededge"s in Photoshop Flowey Fight

Hmmm...
To do:
Relocate to Unused Graphics.

Undertale floweyx rededge mockup.png

Photoshop Flowey's fight room has invisible background layers using "rededge" sprites, which would be animated by obj_flowey_bgdraw. The screenshot above is made with a modification of the game, showing how would the fight's background look like in-game if the layers are made visible.

(Source: Original TCRF research)

Oddities

Annoying Dog's Sale Price

The Annoying Dog can be sold for 999G and haggled up to 1251G (the highest sale price of any item in the game!), but it will disappear if taken out of the room it spawns in, so this can never be seen on a normal playthrough.

Mettaton's House

Mettaton's bed, upper walls, and TV have collision, but it's impossible to get in that section of the room.

Death By Glamour Speed

Mettaton EX's battle theme, Death By Glamour, is played at 0.95x speed after the pre-battle intro cutscene, but is set to play at 0.97x speed in scr_battlegroup, the script that defines all of the encounters in the game. The version in the OST is the same to the in-game version played at 1x speed.

Internal Sound File Names

Hmmm...
To do:
Make the explanation simpler. Document the contents of scr_getmusicindex.

There are alternate file names for some sounds (including music) in the code, in the format music/*.ogg. This is due of when the game used GameMaker 8, the game used an extension to play sounds in the form of external OGGs, but with the engine changing to GameMaker: Studio, the game uses GameMaker's native sound system for that; so to ensure existing code are unaffected, compatibility scripts were made, one being caster_load, which converts the filenames originally used to pointers to GameMaker sounds.

(Source: Original TCRF research)

Developer Oversights

Mettaton EX Battle Essay

Mettaton EX has an "essay" question where you can type in text and have him comment on it. Unfortunately, typing "x" or "z" ends the essay unless CTRL is held down, leaving some words (in most playthroughs) untypable. This was corrected in the PlayStation 4, PlayStation Vita, and Nintendo Switch versions of the game, as they use an on-screen keyboard.

The following words can't be triggered:

  • sexy
  • foxy
  • tantaliz (covers both "tantalizing" and "tantalize")

Naming the Fallen Human

In the PlayStation 4 and PlayStation Vita versions of the game, entering the name "Gaster" will result in a crash, rather than the intended restart of the game.

(Source: Twitter)