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!


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 • ‎català • ‎español • ‎français • ‎polski • ‎português do Brasil • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어

Title Screen


Developers: Toby Fox (PC), 8-4 (Consoles)
Publishers: Toby Fox (PC), 8-4 (Consoles), Fangamer (Physical release)
Platforms: Windows, Mac OS X, Linux, PlayStation 4, PlayStation Vita, Nintendo Switch, Xbox One, 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 One, 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.

To do:
  • TO-DO page list is located here.
  • Some more obscured graphics, as seen in this video.
  • 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...?)


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.
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-Spr candydish bad 0.png
Unused Rooms
From candy pedestals to talkative NPCs.
Undertale-spr wordfall4 0.png
Unused Text
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


   the smell
      the texture


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


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

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:

You have made yourself completely clear.
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


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.


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.


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.


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)


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.


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.


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


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


A voice (presumably Mettaton or Asriel) grunting.


Flowey says "ahh".


Flowey says "triple".


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.


Audio file that's, obviously, silence.


A generic gunshot sound.


An unused longer loop of mus_f_wind2.


An unused lower pitch variant of mus_f_newlaugh.


An unused longer loop of mus_woofenstein_loop.

Removed Sounds

obj_rainbowbolt_realgen references a sound with the file path music/sfx/sfx_menu_error.ogg, which doesn't exist and is never played by the object anyway.

(Source: Original TCRF research)

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, along with not having unique bullet graphics and unique bullet patterns for ACTing, unlike 01 and 02.

Other Unused Encounters

ID Enemy 0 Enemy 1 Enemy 2 Encounter message (EN) Encounter message (JP) Notes
1 TestFroggit TestFroggit TestFroggit
* TestMonster and its cohorts draw near!
(N/A) 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


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.

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.


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.


You ate the Stoic Onion. You didn't cry...

Serious Mode:

You ate the Stoic Onion.

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 internal monster setup code, there are mentions of item rewards and the chance for an item to drop. 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

Old Toriel Dusting Data

scr_getvapordata contains a piece of ASCII pixel art of Toriel's death sprite, spr_torielboss_kneelsmile2, (mostly) composed of 0s (representing black) and 1s (representing white). Along with other data contained in the script, this was meant to be interpreted by an old version of the game's sprite duster, obj_vaporized, which produces dust particles according to it; the final game instead uses obj_vaporized_new like all monsters other than Undyne and Glad Dummy. (The following representation of the data cuts it to lines with 72 characters each, which is half of 144, the original sprite's width.)

(Source: Original TCRF research)

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

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)


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

To do:
Make the explanation simpler.

There are alternate file names for some sounds and music in the game's code, in the format music/*.ogg, from the phase of development where the game used GameMaker 8 and played external sounds and music through an extension. When the game was migrated to use GameMaker: Studio, it was changed to use GameMaker's native sound system for that instead. So to not change already existing code using the sound extension, compatibility scripts were made, one being caster_load, which converts the filenames that were originally used to pointers to GameMaker sounds by calling scr_getmusindex.

(Source: Original TCRF research)

Music/Sound Metadata

As with the demo, music/sound files have some metadata. The ENCODER field seems to be always overwritten by GameMaker: Studio, but there's still some information from FL Studio's LAME encoder.

(all OGG files, v1.08)
Name Content
encoder Lavc56.12.101 libvorbis
(all OGG files, v1.11)
Name Content
encoder Lavc libvorbis
(all WAV files, v1.08)
Name Content
ISFT Lavf56.14.100
abc_123_a.ogg (v1.001+)
Name Content
encoded_by LAME in FL Studio 10
TBPM 140
date 2016
Name Content
encoded_by LAME in FL Studio 10
TBPM 251
date 2015
Name Content
mus_wrongworld.ogg ("Wrong Enemy ?!")
Name Content
encoded_by LAME in FL Studio 10
TBPM 224
date 2015
mus_mysteriousroom2.ogg ("Premonition")
Name Content
DATE 2014
mus_express_myself.ogg ("Last Goodbye")
Name Content
encoded_by LAME in FL Studio 10
TBPM 180
date 2015
snd_hit, snd_victor
Name Content
IART Don Ralke; Sherman Bros.
ICRD 1972
INAM Snoopy, Come Home
Name Content
ICRD 2013
Name Content
ICRD 2014

The "Snoopy, Come Home" metadata refers to the fact that both snd_hit and snd_victor are sampled from the song "Snoopy, Come Home" from the eponymous soundtrack, which Toby seemingly took from an online rip of the original vinyl without changing the metadata.

(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)