UNDERTALE is the indie RPG where no one has to die.
UNDERTALE é um RPG indie onde ninguém precisa morrer. Inspirado por jogos como a série de jogos EarthBound, particularmente Mother 3, Yume Nikki, e Cave Story, ele foi aclamado pela crítica pelos seus personagens interessantes, trilha sonora interconectada e subversão dos clichês de RPGs tradicionais. Sendo uma criação de um dos compositores de Homestuck, o jogo foi financiado de maneira coletiva e apoiado pela fanbase descendente daquela história em quadrinhos - especialmente porque Homestuck estava em um hiato durante esse período. Durante um certo tempo, foi difícil evitar esse jogo.
Please don't upload these huge sprite sheets online.
Just because 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
Por favor não faça upload dessas sprite sheets gigantes.
Só porque a maioria das coisas esquisitas aqui SÃO usadas, eu preferiria que elas fossem vistas em contexto primeiro.
espera tipo um ano primeiro...
mas se você está só pegando as sprites vistas normalmente pro spriters resource ou uma coisa assim eu não ligo se você usar elas pra deixar seu trabalho mais fácil
abc_1111 contém uma nota grosseiramente escrita destinada à sprite rippers, especificamente aos do site Spriter's Resource, pedindo para que eles esperem um ano antes de fazer o upload das sheets online.
Jogos feitos com o Game Maker, como Undertale, armazenam todos os seus sprites em grandes spritesheets, ao invés de cada sprite ou personagem ser armazenado em um arquivo individual. Então se alguém fizesse o upload dessas spritesheets, a coisa mais fácil a se fazer seria fazer o upload das sheets sem modificá-las... o que deixaria sprites "spoilerentos" na sheet.
O nome de arquivo estranho foi escolhido para forçá-lo ao topo de uma lista de arquivos organizada em ordem alfabética, tornando sua presença mais óbvia... o que não ajuda em nada, já que a lista de arquivos só é visível se os sprites forem separados pelos seus nomes internos. Opa. Isso foi trocado em versões posteriores.
você sabe o que eu
ODEIO?
é
bepis
O GOSTO
o cheiro
a textura
ei...
você tá
babando...
Versão 1.001 substitui o pedido de "nada de spritesheets" com essa nota vagamente erótica sobre "bepis" que é uma referência à um homem em Moonside, de EarthBound que odeia a comida que o jogador gosta. Toby Fox é um fã de EarthBound, e Undertale foi fortemente inspirado pelo jogo. Bepis é um trocadilho bobo com a palavra "Pepsi", além de ser uma palavra que os desenvolvedores acham boba.
A falta de qualquer real significado desse texto e o fato de que ele substitui o pedido anterior pode ser tido como permissão para se postar as spritesheets, como suportado por esse e-mail desesperançoso.
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.
Tradução
Olá. Te-te-te-te-tenha um pouco de respeito e não dê spoilers sobre o jogo. É impossível ter mistérios hoje em dia, por causa de pessoas enxeridas como você. Por favor mantenha tudo isso entre nós. Se você postar isso online, eu não vou fazer mais nenhum segredo. Ninguém vai ficar impressionado. Vai ser tudo sua culpa! He-he-he-he-ha-he-he-ha-he-he.
Isso é um arquivo de som de oito vozes text-to-speech pedindo para que as pessoas não postem os segredos do jogo online. Quem em sã consciência faria algo assi— espera um minuto...
O nome de arquivo estranho foi escolhido para forçá-lo ao topo de uma lista de arquivos organizada em ordem alfabética e tornar a sua presença mais óbvia. Todos os outros arquivos de música e efeitos sonoros em formato OGG presentes na pasta do jogo são prefixados por "mus_" ou "snd_".
O arquivo foi atualizado na v1.001, removendo basicamente tudo que estava no arquivo de áudio original.
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?
Tradução
Parte do charme desse jogo é o mistério de quantas opções ou segredos existem. Se você está lendo isto, por favor não poste esta mensagem ou esta informação em lugar algum. Ou fazer segredos se tornará sem sentido.
Aliás, a maioria dos textos/arquivos são usados.
Se você conseguir achar o contexto para um arquivo dentro do jogo, você pode mostrá-lo. Mas se você não conseguir, isso provavelmente significa que você não procurou o bastante. Qualquer coisa verdadeiramente não utilizada vai ser provavelmente postada por mim, depois.
Vivendo em um mundo assim, onde pessoas podem simplesmente trapacear e achar respostas através do código... sua impaciência REALMENTE te danificou, não?
Esse aviso foi escrito no script attetion_hackerz_no_2, onde as mensagens são colocadas em variáveis chamadas demonx, demony, demonz e demond respectivamente, "demon" significando demônio em inglês. Essas mensagens são usadas, obviamente, para avisar hackers. Graças ao nome do script, as mensagens são colocadas no começo da lista interna de strings, aumentando as chances delas serem lidas.
Na versão 1.001, contudo, ela foi mudada para isso:
Texto original
Greetings.
You have made yourself completely clear.
Understood.
I, your humble servant, will follow you to the utmost.
Tradução
Saudações.
Você se fez completamente claro.
Entendido.
Eu, seu humilde servo, o seguirei até o fim.
As variáveis foram renomeadas para demona, demonb, demonc e demond também. Curiosamente, a primeira linha da mensagem 1.00 ainda está presente junto de sua variável associada, mas foi movida para scr_namingscreen_check, que é o script que controla os easter eggs da tela de nomeação de jogador.
Curiously, in 1.05, the copy in scr_namingscreen_check seems to have been changed.
v1.001
v1.05
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.
For some reason, this change appears to have been exclusive to the Mac and Windows versions, with the Linux version and the console ports still having the "Part of this game's charm" message. Version 1.06's Windows and Mac releases seem to blank out the message, although some versions of 1.08 Windows and Mac seem to have the message "..." instead, while others seemingly return to the "Part of this game's charm" message. In particular, the Mac non-DRM release seems to return to the original message, while the Windows Steam and non-DRM releases have "...".
* (It's a picture of a dog juggling several balls.) * (You feel satisfaction that your hard work reverse engineering the encryption of the Xbox One has paid off.)
gml_Object_obj_xbox_controller_connect_Create_0 in the Xbox One (v1.12X+) version contains this congratulation for dataminers, appropriately stored in a variable named unusedstring. Toby's foresight is appreciated, considering how difficult Xbox One's security was to crack.
Note that there's no new line after the first sentence in the original string.
(Source: luigiutmc, original TCRF research (actual location))
If the code "ball" is typed on the title screen, a jingle will play. The jingle itself is named snd_ballchime.ogg. In a 2025 interview with Famitsu, Toby would reveal that this jingle was originally made for a canceled, Panel de Pon-inspired project a friend of his was working on.
Gaster tem um conjunto completo de status no código, todos ridiculamente alto (ao ponto que um inimigo com esses status é literalmente impossível de atacar e ser atingido mata Frisk instantaneamente) e consistindo apenas de uma sequencia de números 6. Eles sendo os seguintes:
Gaster also would have had a 666% chance to award an item with the ID 666 (which of course doesn't exist, as the item IDs only go up to 64) after battle... which would've worked if the item drop mechanic was even functional.
A batalha do Sans tem alguns ataques não utilizados. Estes, junto dos ataques utilizados, são gerenciados pelo objeto obj_sansb_body.
Plataformas Verticais - Esse ataque é controlado por obj_vplatgen. Ele tem ossos em baixo, com plataformas aleatoriamente colocadas e escalonadas se movendo de cima para baixo. Algumas das plataformas também levemente ondulam da esquerda para a direita. Para desviar, você precisa ficar em cima das plataformas sem cair pro fundo repleto de ossos. Existem 3 variações desse ataque, controladas pela variável type (tipo) de obj_vplatgen, sendo os tipos 1 e 2 apenas variações mais rápidas do tipo 0. O tipo 2 é diretamente acessível como o tipo de ataque (variável a_type) 9 em obj_sansb_body. Existe também um 6º evento de Alarme não utilizado no gerador de objetos, que cria ossos aleatoriamente posicionados no meio da tela para serem desviados a cada 50 quadros. Já que o tamanho e posição das plataformas é aleatório, pode ser impossível evitar ser atingido.
Osso Verticais e Horizontais - Padrões de bala fixos com ossos vindo de posições verticalmente e horizontalmente. Para desviar, você deve manobrar ao redor dos ossos. Acessível como o tipo de ataque 10 em obj_sansb_body. Também existe uma variação, acessível como o tipo de ataque 11 em obj_sansb_body, que é mais rápido e tem um padrão diferente. Há também uma variação "inferno" do primeiro tipo de ataque, acessível se a variável hell no obj_sansb_body for verdadeira, que deixa o ataque ainda mais difícil.
Variação Aleatória dos Gaster Blasters - Os sprites dos blasters são comprimidos para parecerem finos, de maneira similar a uma variação na versão final, mas dessa vez os blasters aparecem e atiram mais rapidamente. Isso pode ser visto se o objeto obj_gasterbl_gen for criado com o tipo 0, que não é utilizado por nenhum ataque programado em obj_sansb_body.
Variantes dos Ataques Finais - Existem também variantes "inferno" para alguns dos ataques finais. O ataque em que você dá um pulo curto entre uma brecha nos ossos (ataque tipo 1) e um outro em que você pula sobre um pequeno osso branco com um grande osso azul vindo logo em seguida (ataque tipo 3) são mais rápidos quando a variável hell no objeto obj_sansb_body é verdadeira. O ataque com os ossos e plataformas passando pela tela horizontalmente tem uma variante na qual as plataformas se movem mais devagar, que é o tipo 0 obj_3platgen.
Vale notar que existe um tom não utilizado para Megalovania no código, que é demonstrado no vídeo como consequência da utilização da variável de depuração skip. Aqui está o código relevante, presente no evento de Criação de obj_sansb:
Watch on YouTubeA batalha contra Mettaton EX possui alguns ataques não utilizados. Eles podem ser vistos caso o obj_mettattackgen seja invocado com o seu respectivo tipo de ataque colocado em uma variável global chamada global.attacktype.
Afazeres:
Explique melhor
Ataque tipo 1 - Colunas de caixas
Ataque tipo 2 - Colunas de caixas se entrelaçando da esquerda pra direita
Ataque tipo 3 - Uns braços se entrelaçando da esquerda pra direita?
Ataque tipo 4 - Literalmente só pernas
Ataque tipo 5 - Pernas ativadas se entrelaçando da esquerda pra direita
Ataque tipo 6 - Caixas e bombas espalhadas por todo o canto
Ataque tipo 7 - Caixas e bombas espalhadas por todo o canto, só que mais rápido
Ataque tipo 8 - Zona de balas encurtada, bombas aparecem da esquerda e da direita
Ataque tipo 9 - Zona de balas menos encurtada, bombas aparecem da esquerda, do centro e da direita
Ataque tipo 10 - Colunas de caixas e bombas aproximando rapidamente. O padrão repete depois de um certo tempo
Ataque tipo 11 - Colunas de blocos que sobem quando baleados
Ataque tipo 12 - Colunas de blocos que sobem quando baleados, além de centelhas, em que só aparecem na luta da Alma Perdida de Alphys no jogo final
Ataque tipo 13 - Vários mini Mettatons jogando corações
Ataque tipo 14 - Mais mini Mettatons jogando corações
Ataque tipo 15 - Mini Mettatons jogando centelhas
Ataque tipo 16 - Mini Mettatons jogando centelhas de novo
Ataque tipo 50 - Uns braços com um bloco amarelo se movendo?
Ataque tipo 51 - Bola de espelhos rápida
Ataque tipo 52 - Caixas e bombas espalhadas por todo o canto, de novo; também meio rápidas
Ataque tipo 55 - Mais uma vez, literalmente só pernas
No código interno de preparação de monstros, existem menções de recompensas de itens e a chance de um item ser deixado, mas isso não ocorre no jogo, deixando esses valores globais inutilizados: itemrewardid e itemrewardchance. Abaixo está um exemplo dessas variáveis no código.
scr_getvapordata contém um pedaço de pixel art ASCII do sprite da morte de Toriel, spr_torielboss_kneelsmile2, composto (em sua maior parte) de 0s (representando preto) e 1s (representando branco). Juntamente com outros dados contidos no script, isso deveria ser interpretado por uma versão antiga do “sprite duster” do jogo, obj_vaporized, que produz partículas de poeira de acordo com ele; em vez disso, o jogo final usa obj_vaporized_new como todos os monstros, exceto Undyne e Boboneco Feliz. (A representação a seguir dos dados os reduz a linhas com 72 caracteres cada, que é a metade de 144, a largura do sprite original).
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");
}
Escondido embaixo da imagem do exterior do Hotel MTT em sua respectiva sala (room_fire_hotelfront_2) está uma versão antiga do exterior do hotel, feito de peças individuais ao invés de ser uma imagem só. As partes do chão são temporárias, usando o chão da caverna de gelo, que foi usado como chão temporário pela Hotland inteira.
Escondida no canto direito da entrada pro CORE (room_fire_precore) está o que parece ser uma versão temporária da entrada, feita com partes da arte de Hotland. Sim, o fundo repete (ou deveria repetir) assim no jogo.
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.
O Cachorro Irritante pode ser vendido por 999G e pode ser barganhado para até 1251G (o preço de venda mais alto de qualquer item no jogo!), mas ele some se for removido da sala em que aparece, então isso nunca pode ser visto durante uma gameplay normal.
O tema de batalha de Mettaton EX, Death By Glamour, é tocado na velocidade 0.95x depois da cena de introdução pré batalha, mas tocada na velocidade 0.97x em scr_battlegroup, o script que define todas as batalhas do jogo. A versão na Trilha Sonora Oficial é reproduzida na velocidade total de 1x, não correspondendo a nenhuma dessas .
Quando você salva na versão de Xbox One, o jogo armazena o valor da flag 299 (a quantidade de moedas que você doou para Dog Shrine casino) para global.xbox_coins_donated, e então grava o último no arquivo salvo. Quando você carrega, o número é lido no arquivo salvo e somente no arquivo salvo por algum motivo totalmente desconcertante. Mais ainda, a variável global não parece ser usada de outro modo.
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.
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.
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.
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
encoder
(all OGG files, v1.11)
Name
encoder
(all WAV files, v1.08)
Name
ISFT
abc_123_a.ogg (v1.001+)
Name
encoded_by
TBPM
date
snd_ballchime.ogg
Name
encoded_by
TBPM
date
mus_computer.ogg
Name
SOFTWARE
mus_wrongworld.ogg ("Wrong Enemy ?!")
Name
encoded_by
TBPM
date
mus_mysteriousroom2.ogg ("Premonition")
Name
ENCODED BY
BPM (BEATS PER MINUTE)
DATE
mus_express_myself.ogg ("Last Goodbye")
Name
encoded_by
TBPM
date
snd_hit, snd_victor
Name
IART
ICRD
INAM
snd_spearappear
Name
ICRD
snd_wrongvictory
Name
ICRD
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.
Mettaton EX tem uma pergunta estilo "redação" em que você digita um texto e ele comenta sobre o que você escreveu. Infelizmente, digitar "x" ou "z" termina a redação a não ser que CTRL esteja apertado, deixando algumas palavras (na maior parte das gameplays) indigitáveis. Isto foi corrigido nas versões de PlayStation 4, PlayStation Vita e Nintendo Switch do jogo, já que elas usam um teclado virtual.
sexy
foxy (sentido similar a "sexy")
tantaliz (cobre "tantalizing" e "tantalize", palavras com significado similar a "tentador", ou um desejo irrealizável)