Qu'est-ce que tu es en train de faire ? Tu cherches des secrets ?
Ne fourre pas ton nez là où il ne faut pas.
Ou tu pourrais apprendre quelque chose que tu n'aimes PAS...
Hé hé hé. — Page d'accueil d'Undertale, dans le code HTML de la page.
UNDERTALE est un jeu de rôle indépendant où personne n'a besoin de mourir.
Inspiré par les caractéristiques de la série des EarthBound, plus particulièrement Mother 3, Yume Nikki, et Cave Story, il a reçu de bonnes critiques pour ses personnages intéressants, ses musiques connectées entre elles, et son émancipation des jeux de rôle traditionnels. Né de l'imagination de l'un des compositeurs de Homestuck, il a été aidé financièrement et supporté par les fans venus de ce dessin animé (notamment car Homestuck était interrompu à ce moment). Pendant longtemps, il a été difficile de ne pas être au courant de ce jeu.
Messages du développeur#
Avertissement « Ne pas extraire les sprites ! »#
Version 1.00#
Merci de ne pas mettre en ligne ces énormes pages de sprites en ligne.
Seulement parce que la plupart des choses bizarres ici SONT utilisées, je préférerais qu'elles soient vues dans leur contexte en premier lieu.
attendez à peu près une année d'abord...
si vous extrayez seulement normalement les sprites vus sur spriter's resource ou qqch d'autre je m'en fiche si vous les utilisez pour rendre le tt + simple d'ailleurs
abc_1111 contient une note grossièrement écrite adressée aux rippeurs de sprites, plus précisément ceux du site Spriter's Resource, leur demandant d'attendre un an avant de mettre en ligne des pages entières en ligne.
Les jeux faits avec Game Maker, comme « Undertale », rangent tous leurs sprites sur de grandes pages de sprites en PNG au lieu d'avoir chaque sprite ou personnage séparé dans des fichiers individuels. De ce fait, si quelqu'un venait à mettre les pages en ligne, la chose la plus facile serait de les laisser comme elles sont... ce qui laisserait ainsi tous les sprites contenant des spoilers sur la même page.
Le nom de fichier bizarre a été choisi afin de le forcer à apparaître en haut du tri par ordre alphabétique et donc rendre sa présence plus évidente... ce qui ne marchait pas, puisque le tri des fichiers est uniquement visible si les sprites sont séparés par leurs noms internes. Oups. Ça a été remplacé dans les versions les plus récentes.
Version 1.001#
tu sais ce que je
DÉTESTE ?
c'est le
bepis
CE GOÛT
cette odeur
cette texture
hé...
tu
salives...
La version 1.001 remplace les demandes de non-spritesheet (page de sprite) avec cette note vaguement érotique à propos de « bepis » qui est une référence à un homme de Moonside de "EarthBound" qui déteste la nourriture que le joueur aime. Toby Fox est un fan de « EarthBound », et « Undertale » s'inspire de ce jeu lourdement. Bepis est une faute de clavier idiote de « Pepsi », ainsi qu'un mot des développeurs penser est idiot.
Le manque de véritable sens à ce nouveau texte et le fait qu'il remplace la demande précédente peut être pris comme une permission de poster des pages de sprites, comme encouragé dans forlorn-looking email.
Avertissement « Ne pas spoiler le jeu ! »#
abc_123_a.ogg Bonjour. Hé-hé-hé-hé-ayez un peu de respect et ne spoilez pas le jeu. Il est impossible d'avoir du mystère de nos jours, à cause de sales fouineurs dans ton genre. Merci de garder tout ça entre nous. Si vous postez ça en ligne, je ne ferai plus aucun secret. Personne ne sera impressionné. Ce sera de votre faute ! Hé-hé-hé-hé-ha-hé-hé-ha-hé-hé.
C'est un fichier son de huit voix text-to-speech (texte vers voix) disant aux gens de ne pas publier les secrets du jeu en ligne. Quelle personne avec toute sa tête ferait une chose par— attendez une minute...
Le nom étrange de ce fichier a été choisi pour le forcer à apparaître en haut du tri par ordre alphabétique et rendre son existence plus évidente. Tous les autres fichiers de musique et d'effets sonores au format OGG présents dans le dossier du jeu débutent avec les préfixes « mus_ » ou « snd_ ».
Ce fichier a été mis à jour en v1.001, retirant presque tout ce qui était présent dans le fichier audio original et remplaçant cela avec une politesse qui rigole incohérente des huit voix text-to-speech initiales, malgré que les rires de la dernière voix à la fin du fichier original soient toujours conservés.
Le message de Toby Fox#
Une partie du charme de ce jeu est le mystère du nombre d'options et secrets qu'il y a. Si vous lisez ceci, merci de ne poster ce message ou cette information nulle part. Ou créer des secrets deviendra inutile.
Par ailleurs, la plupart des fichiers/textes semblant inutilisés sont utilisés.
Si vous parvenez à trouver le contexte d'un asset en jeu, vous pouvez le montrer. Mais si vous ne pouvez pas le faire, cela signifie probablement que vous n'avez pas assez regardé. Je posterai tout ce qui est réellement inutilisé, plus tard.
Vivre dans un monde comme ça, ou les gens peuvent juste voler les réponses du code... votre patience vous a réellement endommagé, n'est-ce pas ?
Cet avertissement est positionné dans le script attention_hackerz_no_2, où les messages sont définis dans des variables appelées demonx, demony, demonz et demond, respectivement. Les messages sont, évidemment, utilisés pour avertir les crackers. En raison du nom du script, les messages sont mis au début du tri des chaînes de caractères internes, augmentant leurs chances d'être lus.
Dans la 1.001, cependant, elle a été changée en :
Salutations.
Vous vous êtes complètement rendu clair.
Compris.
Moi, votre humble serviteur, vous suivrai au plus loin...
Les variables ont été renommées en demona, demonb, demonc et demond, également. Étonnamment, la première ligne du message de la version 1.00 est toujours présente avec sa variable associée également, mais a été déplacée vers scr_namingscreen_check, qui est le script qui gère les noms easter eggs.
Étrangement, en 1.05, la copie de scr_namingscreen_check semble avoir été changée.
v1.001 |
v1.05 |
|---|---|
Une partie du charme de ce jeu est le mystère du nombre d'options et secrets qu'il y a. Si vous lisez ceci, merci de ne poster ce message ou cette information nulle part. Ou créer des secrets deviendra inutile. |
IL EST |
|
|
To do: |
Pour une raison quelconque, ce changement semble avoir été exclusif aux versions Mac et Windows, avec les versions Linux et les portages consoles ayant encore le message « Une partie du charme de ce jeu ». Les sorties de la version 1.06 sur Windows et Mac semblent supprimer ce message, bien que quelques versions 1.08 de Windows and Mac semblent avoir le message « ... » à la place, pendant que les autres retournement apparemment vers le message « Une partie du charme de ce jeu ». En particulier, la version Mac non-DRM semble retourner vers le message original, pendant que les versions Windows Steam et non-DRM ont « ... ».
Message de félicitations de datamining Xbox#
* (C'est une image d'un chien jonglant avec plusieurs balles.) * (Vous vous sentez satisfait que votre dur labeur à avoir fait du reverse engineering sur le chiffrage de la Xbox One has a payé.)
gml_Object_obj_xbox_controller_connect_Create_0 sur la version Xbox One (v1.12X+) contient ces félicitations pour les dataminers, stockée de manière appropriée dans une variable nommée unusedstring (chaine de caractères inutilisée). La prévoyance de Toby est appréciée, considérant à quel point il était difficile de cracker la sécurité de la Xbox One.
Notez qu'il n'y a aucune nouvelle ligne après la première phrase dans la chaine de caractères originale.
(Source: luigiutmc, recherches originales de TCRF (véritable emplacement))
Activity Levels (Niveaux d'activié)#
Appuyez sur ⇧ Shift ou X cinq fois à l'écran titre pour obtenir cet écran pratique.
- Activity Level A est affiché si vous avez eu une fin Neutre.
- Activity Level B est affichez si vous avez terminé la route Pacifiste.
- Activity Level C est affiché si vous combattez Sans deux fois ou le tuez.
Si aucune de ces conditions ne sont rencontrées, « No Information » (aucune information) est affiché à la place.
Jingle Ball#
Si le code « ball » est écrit à l'écran titre, un jingle se jouera. Le jingle lui-même est nommé snd_ballchime.ogg. Dans une interview de 2025 avec Famitsu, Toby aurait révélé que ce jingle était originellement fait pour un projet annulé inspiré de Panel de Pon qu'un ami à lui était en train de créer.
Combats inutilisés#
Nom du monstre#
ID |
Anglais |
Japonais |
|---|---|---|
|
|
N/A |
|
|
N/A |
|
|
|
|
|
N/A |
|
|
N/A |
|
|
|
ACTions#
* Examiner * Chuchoter
* Toucher le gant
* Erreur
À la toute fin des chaines de caractères du menu ACT (ACTION) est positionné ce message d'erreur générique de nouveau, un placeholder des options d'ACT du combat contre la véritable forme d'Asriel.
Gaster#
Gaster (qui a 666 en tant qu'identifiant d'ennemi) a un lot complet de statistiques dans le code, toutes ridiculement élevées (au point qu'un ennemi auquel on confère ces statistiques est presque impossible à blesser et être touché tue instantanément Frisk) et composées uniquement du chiffre 6. Son EXP et son GOLD (ses PO) sont paramétrés à des nombres négatifs, signifiant que le joueur devrait en réalité perdre de l'EXP et du GOLD s'il gagne d'une manière ou d'une autre. Voici à quoi elles correspondent :
PV : 666666
AT : 66666 DF : 66666
EXP : -6666 GOLD : -6666
Gaster aurait également 666 % de chances de donner un objet avec l'identifiant 666 (qui n'existe évidemment pas, puisque les identifiants d'objets vont jusqu'à 64) après un combat... ce qui aurait marché si seulement la mécanique de drop d'objet avait été fonctionnelle.
Autres rencontres inutilisées#
ID |
Ennemi 0 |
Ennemi 1 |
Ennemi 2 |
Message de rencontre (EN) |
Message de rencontre (JP) |
Notes |
|---|---|---|---|---|---|---|
|
TestFroggit |
TestFroggit |
TestFroggit |
|
(N/A) |
Apparait dans la TESTROOM. |
|
Vegetoid |
Loox |
|
|
||
|
Chilldrake |
Chilldrake |
|
|
||
|
Icecap |
Snowdrake |
|
|
||
|
Icecap |
Chilldrake |
|
|
Version alternative de la rencontre précédente de si Snowdrake avait été tué. |
|
|
Jerry |
|
|
|||
|
Aaron |
Woshua |
|
|
La rencontre de combat qui implique que Aaron et Woshua soient paniqués par la musique de Napstablook n'est pas censée afficher ce texte d'ambiance. |
|
|
Final Froggit |
|
|
Le message de rencontre est mal formatté s'il apparait en jeu, avec la virgule apparaissant sur sa propre ligne. |
||
|
Whimsalot |
|
|
|||
|
Bomb |
|
|
Cette bombe est un unique ennemi inutilisé qui retire la limite de temps mais qui cependant se comporte comme la dog-Bomb qui est utilisée. |
||
|
Vulkin |
Vulkin |
|
|
||
|
Whimsalot |
Parsnik |
|
|
||
|
Parsnik |
Astigmatism |
|
|
||
|
Astigmatism |
Migospel |
Moldessa |
|
|
|
|
Whimsalot |
Parsnik |
Moldessa |
|
|
|
|
Mad Mew Mew |
|
|
|||
|
Asriel |
|
|
|||
|
Asriel |
|
|
Attaques inutilisées#
Sans#
|
|
To do: |
Le combat de Sans a quelques attaques inutilisées. Elles, tout comme les attaques utilisées, sont gérées par l'objet obj_sansb_body.
PLateformes verticales - L'attaque est gérée par obj_vplatgen. Elle a des os en bas, avec des plateformes placées et taillées aléatoirement qui descendent. Quelques plateformes font des vagues de gauche à droite avec légèreté également. Pour esquiver, vous devez rester sur les plateformes et ne pas tomber en bas dans les os. Il y a 3 variations de cette attaque, contrôlées par les variables de type obj_vplatgen (indexé 0), les type 1 à type 2 sont simplement des versions accélérées du type 0. Le type 2 est directement accessible en tant que type d'attaque (variable a_type) 9 dans obj_sansb_body. Il y a aussi un 6ème événement d'alarme inutilisé dans les objets de génération, qui font apparaitre aléatoirement des os positionnés au centre de l'écran à esquiver toutes les 50 images. Puisque les plateformes sont générées aléatoirement en taille et position, il est impossible d'éviter d'être touché.
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 variant, accessible as attack type 11 in obj_sansb_body, which is faster and has a different pattern. There is also a "hell" variation 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 == 1)
{
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#
Watch on YouTubeThe 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: |
Attack type 1 - Columns of boxes
Attack type 2 - Columns of boxes weaving from left to right
Attack type 3 - Some arms weaving from left to right?
Attack type 4 - Literally just legs
Attack type 5 - Activated legs weaving 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 approaching 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 sparkle bullets which only appear 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; also kinda fast
Attack type 55 - Yet again, literally just legs
(Source: Lil'Alien)
Unused Items#
ID |
Name |
Short Name |
Serious Name |
Description |
Use Text |
|---|---|---|---|---|---|
2 |
Croquet Roll |
CroqtRoll |
CroqtRoll |
|
Normal:
Serious Mode:
|
5 |
Rock Candy |
RockCandy |
RockCandy |
|
|
6 |
Pumpkin Rings |
PunkRings |
PmknRings |
|
|
8 |
Stoic Onion |
StocOnion |
Onion |
|
Normal: Serious Mode:
|
9 |
Ghost Fruit |
GhostFrut |
GhstFruit |
|
|
18 |
Puppydough Icecream |
PDIceCram |
Ice Cream |
Note: This item's name is too long to show up properly when using a dimensional box. The use text has no Serious Mode variant. |
|
(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.)
000000000000000000000000000110000000000000110000000000000000000000000000
000000000000000000000000001100000000000000011000000000000000000000000000
000000000000000000000000001110111111111110111000000000000000000000000000
000000000000000000000000110001111111111111000110000000000000000000000000
000000000000000000000011111111111111111111111111100000000000000000000000
000000000000000000000111101111110111110111111011110000000000000000000000
000000000000000000000111101111111111111111111011110000000000000000000000
000000000000000000001111101101110111110111011011111000000000000000000000
000000000000000000001111100111000111110001110011111000000000000000000000
000000000000000000001111100111111111111111110011111000000000000000000000
000000000000000000001111110011111011101111100111111000000000000000000000
000000000000000000000111110001111111111111000111110000000000000000000000
000000000000001111000111111000110100010110001111110000000000000000000000
000000000000111110001011111000001111111000001111101000000000000000000000
000000000000111100001000000000000000000000000000001000100000000000000000
000000000001111100001000000110000011100011110000001000111000000000000000
000000000011111110000000000001110010010111100000001000111100000000000000
000000000011111111111111110111000111000000000000010100111110000000000000
000000000111111111111111111011111111100000000000100100011111000000000000
000000000111111111111111111100111111100100000001000100011111100000000000
000000000111111111111111111110011100001110000010000100011111110000000000
000000000011111000000000000111000000000000000100000100011111111000000000
000000000011110010000001111000000011100000001000011000011111111000000000
000000000000100100000000000110000000000000100011100110001111111100000000
000000000000000100000000000000100000000010001110010010001111111110000000
000000000000001000000000000000000011110000111101000001000111111110000000
000000000000001000000000000000110000000111111000000001000111111111000000
000000000000001000000000000001111000111111000000000001000111111111100000
000000000000010000000000000011000011000000000000000000100111111111100000
000000000000010000000000000100000000000000000000000000100111111111110000
000000000000010000000000000000000000000000000000000000100111111111110000
000000000000010000000000000000000000000000000000000000100111111111111000
000000000000010000000001111000000000000000000000000000100111111111111000
000000000000001000000000000000110000000000000000000000100111111111111000
000000000000000111111111111100000000000000000000000001001001111100011100
000000000000011111111111111111110100000000000000000010000111111111100110
000000000000011011101110000000000000111111111111000000011100011101101100
000000000000000000000000000000000000000000000000000000000000000000000000
2
(Source: Original TCRF research)
Game Deletion/Renaming Code#
Two events in the game attempt to rename or delete the game's executable undertale.exe, but fail because they target the save file directory (where file0 is) rather than the executable's folder. This can be proven by placing a duplicate undertale.exe in the save directory.
Firstly, the game's executable is attempted to be renamed to flowey.exe on the first Neutral Route playthrough after Flowey absorbs the six human souls when Asgore is defeated and crashes the game. The game renames itself back to undertale.exe once Flowey is defeated. It was likely to give an immersion that Flowey has conquered the game's world so much that he can even mess with your game's executable file.
In obj_asgore_lastcutscene:
if (global.osflavor == 1)
{
if (file_exists("undertale.exe"))
file_rename("undertale.exe", "flowey.exe");
}
In obj_flowey_master:
if (global.osflavor == 1)
{
if (file_exists("flowey.exe"))
file_rename("flowey.exe", "undertale.exe");
}
The game attempts to delete itself when the screen shakes at the end of a Genocide Route after Chara destroys the game's world. In addition to the game's INI and save files, the game tries to find various common name cases for the Undertale executable and tries to delete it.
In obj_gameshake:
if (global.osflavor == 1)
{
if (file_exists("undertale.exe"))
file_delete("undertale.exe");
if (file_exists("undertale.EXE"))
file_delete("undertale.EXE");
if (file_exists("Undertale.exe"))
file_delete("Undertale.exe");
if (file_exists("UNDERTALE.exe"))
file_delete("UNDERTALE.exe");
}
(Source: WarlockD)
(Source: Original TCRF research)
(Source: KrisCross)
Obscured and Out of Bounds Tiles#
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.
Placeholder Snowed Inn Rooms#
Like the lobby, there is a placeholder layout for the rooms in Snowed Inn, featuring some not so comfortable beds...
Placeholder Librarby Inside#
A mockup of the inside of Snowdin's Librarby, being made of snow and bits of trees.
Early Lab Entrance#
In the rooms outside Alphys's lab, hidden under the sprite of the lab is an early version of it using very basic placeholder tiles.
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.
Early CORE Entrance#
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. Although cut off and using Hotland's tiles, the placeholder version seems to resemble the version seen in some concept art.
(Source: Underminers Discord)
Unused room_water11 Path#
Hidden out of bounds in room_water11 is an unused alternate path to room_water12. The doors in this area take you to the inaccessible island with an echo flower that can be seen in that room.
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 plays at 0.97x speed instead if Mettaton's dialogue is skipped; this is the value set in scr_battlegroup, the script that defines all of the encounters in the game. The version in the OST plays at full 1x speed, matching neither of these.
Inu Slots Coin Donation Saving#
When you save in the Xbox One version, the game stores the value of flag 299 (the amount of coins you donated to the casino Dog Shrine) to global.xbox_coins_donated, then writes the latter into the save file. This appears to be completely unnecessary, as the game accesses flag 299 all the time, leaving the global variable unused.
(Source: Original TCRF research)
Toy Knife Room Name#
The room in the Ruins where the Toy Knife can be found is internally called room_ruins18OLD. This is the only instance of a room labelled as old being used, and there's no non-old version of the room.
Donkey Kong is my Favorite Marvel Superhero#
In the room of Hotland where you need to press 3 switches but Alphys calls you right before hitting the third switch, the variable that controls the dialog box moving with the player is named donkeykongismyfavoritemarvelsuperhero. This variable was referenced in the first 10th Anniversary livestream by the line "My Favorite M**vel Superhero's D**key Kong!" in a remixed version of the Wrong Number Song.
Internal Sound File Names#
|
|
To do: |
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 |
|
(all OGG files, v1.11) |
Name |
|
(all WAV files, v1.08) |
Name |
|
|
Name |
|
|
|
|
Name |
|
|
|
|
Name |
|
|
Name |
|
|
|
|
Name |
|
|
|
|
Name |
|
|
|
|
Name |
|
|
|
|
Name |
|
|
Name |
|
The "Snoopy, Come Home" metadata refers to the fact that both snd_hit and snd_victor are sampled from the song "Snoopy, Come Home", which is the title song for the 1972 movie with the same name. Toby seemingly took the song 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. Under normal circumstances, typing "x" or "z" ends the essay; despite this, Mettaton has comments defined for several words which contain these letters:
- sexy
- foxy
- tantaliz (covers both "tantalizing" and "tantalize")
It is in fact possible to type these, but it requires holding down the corresponding alternate key (Enter for Z and Shift for X) before typing the letters, making it unlikely that a casual player would do this. The console ports of the game make these words much easier to type, as they use an on-screen keyboard.
References#
- Undertale on Steam↩︎
- Buy Undertale | Xbox↩︎
- Undertale for Nintendo Switch - Nintendo Official Site↩︎
- Undertale - Games | PlayStation® (US)↩︎
- UNDERTALE Collector's Editions - Fangamer↩︎
- UnderTale on Twitter: "UNDERTALE is now available for Linux on Steam! Also, the game's still on sale for the next 24 hours, so..."↩︎
- Undertale Lands on Xbox Game Pass March 16 - Xbox Wire↩︎
|
The Undertale series | |
|---|---|
|
Windows, Mac OS X, PlayStation 4, Nintendo Switch |
Undertale (Prototypes) • Deltarune (Demos) |
|
Linux, PlayStation Vita, Xbox One, Xbox Series X |
|
|
PlayStation 5, Nintendo Switch 2 |
|