deltarune
Novo! É a "história paralela" de Undertale, por Toby Fox - Deltarune, por Boxy Oft!
O jogo finalmente recebeu um lançamento que não era uma demo em 2025, após uma espera bastante longa de quase sete anos - ou até "quatorze" dependendo de onde você começa a contar, já que Boxy Toby teve o sonho que inspirou Deltarune lá em 2011. Mesmo depois de todo esse tempo, atualmente ele conta apenas com os Capítulos 1-5. Os capítulos futuros estão planejados para serem lançados como atualizações gratuitas, com o Capítulo 6 planejado para 2027 e o Capítulo 7 planejado para algum momento futuro ainda desconhecido.
Com um ciclo de desenvolvimento tão longo, não é surpresa que "muito" conteúdo não utilizado tenha sobrado, variando desde áreas inteiras removidas em alguns capítulos, até ataques de inimigos não utilizados, mecânicas de jogo, conteúdo de depuração e muito mais - e, se você se aprofundar o suficiente, pode até encontrar algumas coisas "muito, muito interessantes" que talvez não tenham sido deixadas ali por acidente.
O jogo utiliza um recurso peculiar do GameMaker que foi adicionado especificamente para Deltarune3, permitindo que capítulos individuais sejam efetivamente armazenados como jogos completamente separados e alternados entre eles em tempo real. Cada capítulo vem com seu próprio arquivo data.win e bastante conteúdo duplicado, com apenas os arquivos de música sendo compartilhados entre eles. Por isso, esta página foi dividida com base em cada capítulo, com a página principal sendo usada apenas para coisas que estão presentes em múltiplos capítulos de uma maneira significativa ou alterada.
Sub-Páginas#
Conteúdo Não Utilizado por Capítulo#
Não Específico de Capítulo#
Sobras do Capítulo Anterior#
Muitos sprites e sons de um capítulo anterior permanecerão no próximo, independentemente de serem usados naquele capítulo ou não. Isso provavelmente se deve ao fato de os capítulos serem construídos uns sobre os outros, além de ser um vestígio de quando cada capítulo ficava em um único arquivo de dados antes da função game_change ser implementada. As exceções a isso geralmente são sprites que provavelmente não serão necessários em capítulos futuros, como os sprites de Ramb, que são exclusivos dos arquivos do Capítulo 3, e sprites muito específicos de cenas, que são exclusivos dos arquivos do capítulo em que aparecem.
Unused Graphics#
obj_npc_facing#
Esse sprite, spr_placeholder, é o sprite padrão do objeto obj_npc_facing, que é usado para a maioria dos NPCs capazes de ficar voltados para diferentes direções (daí o nome). O sprite provavelmente está presente simplesmente para tornar esses objetos identificáveis no editor — ele é alterado para o sprite de um NPC (o da Toriel, por padrão) ao ser criado.
(Source: Original TCRF research)
Sprite Placeholder de Kris#
Um sprite placeholder não utilizado para Kris, denominado spr_krisplace. Ele é usado como o sprite "padrão" para os objetos dos membros do grupo durante as batalhas, enquanto a programação do objeto-pai informa ao jogo qual objeto deve usar os sprites de qual membro do grupo.
(Source: Original TCRF research)
Portas#
Designs para os objetos marcadores usados para definir a posição de Kris ao entrar em uma sala por uma porta, introduzidos desde o lançamento do Capítulo 2, usando um design de letras mais limpo e incluindo uma silhueta de Kris, além de adicionar as letras R-V, com o marcador S usando o Cool S. Também foram adicionados marcadores "qualquer", que percorrem todo o alfabeto e possuem números para cada letra.
(Source: Original TCRF research)
Assim como os marcadores, os objetos de porta também receberam versões "qualquer", embora não haja tantos deles em comparação.
(Source: Original TCRF research)
Retratos de Noelle da Demo do Capítulo 1#
spr_face_nX |
||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
spr_face_n_matome |
Os retratos de diálogo originais da Noelle da Demo do Capítulo 1 ainda existem nos arquivos de cada Capítulo como spr_face_n0-spr_face_n9, sendo substituídos por spr_face_n_matome no Capítulo 2 e substituídos retroativamente no Capítulo 1. Ela tinha uma mandíbula muito mais arredondada, cabelos mais longos que eram cortados pela parte inferior do quadro, e seus olhos ficavam mais próximos de seu cabelo e mais afastados de seu nariz. Alguns deles são notavelmente animados, um recurso que foi perdido em seus novos retratos (e na maioria dos retratos em geral) devido à adoção, pelo jogo, de um novo sistema que armazena os retratos de cada personagem como um único sprite em vez de vários.
(Source: Original TCRF research)
Números de Capítulo Extra#
A partir do Capítulo 2, um sprite com o número do capítulo é exibido abaixo do logotipo do jogo, com seu quadro correspondente ao capítulo atual (determinado pela variável global.chapter). Isso inclui os gráficos esperados dos Capítulos 2-7, além de uma versão não utilizada para o Capítulo 1, que não inclui/exibe esse sprite. Além disso, também inclui gráficos para os Capítulos 0, 8, 9 e 10, nenhum dos quais aparece na tela de seleção de capítulos ou teve qualquer indicação de que sua existência tenha sido planejada.
Os gráficos dos Capítulos 0 e 1 provavelmente foram adicionados por conveniência, para que cada quadro do sprite correspondesse corretamente a um número de Capítulo, mas não está claro por que os dos Capítulos 8-10 existem. Como Toby Fox afirmou explicitamente em entrevistas que haverá sete capítulos, é mais provável que eles tenham sido deixados aqui como uma pista falsa, ou que os próprios desenvolvedores simplesmente não tivessem certeza de quantos capítulos haveriam na época em que o sprite foi criado.
(Source: Original TCRF research)
Objetos Não Utilizados#
obj_CHAPTER_SELECT_old#
|
Antigo |
Atual |
|---|---|
|
|
|
Uma versão antiga da seleção de capítulos, deixada para trás da v2 da Demo LTS. Essa versão é anterior à reprogramação da seleção de capítulos na v3 da demo, portanto, é internamente muito diferente. As mudanças são as seguintes:
- O título da janela do jogo ainda está definido como "DELTARUNE Chapter 1&2".
- Apenas os Capítulos 1 e 2 podem ser selecionados.
- Após selecionar um capítulo, é necessário que 12 frames passem antes que o jogador possa prosseguir ou voltar ao iniciar o capítulo.
- As linhas que separam os capítulos aparecem gradualmente de baixo para cima, em vez de de cima para baixo.
- Não há a opção de mudar para japonês.
- O texto e os ícones estão todos mais afastados das laterais da janela.
- Os ícones dos capítulos são exibidos incorretamente devido a mudanças na forma como são armazenados.
- As informações de direitos autorais foram movidas do canto inferior direito para o canto inferior esquerdo para dar espaço à interface do Shadow Crystal.
- A versão é "DELTARUNE v2" e os anos de direitos autorais ainda estão listados como 2018-2024.
- As estrelas que aparecem para indicar quais arquivos de salvamento foram concluídos em um capítulo não existem.
- O texto para continuar e iniciar um novo capítulo antes que todos os capítulos disponíveis sejam concluídos é formatado de maneira diferente.
Tentar iniciar um capítulo fará o jogo travar devido à renomeação dos sons de início dos capítulos, mas corrigir isso fazendo com que ele chame os arquivos de áudio corretos fará com que funcione normalmente novamente.
Textos Não Utilizados#
Texto de Segurança#
Ao longo de Deltarune, assim como em Undertale, há muitos lugares no diálogo em que um texto específico é exibido dependendo do valor de alguma variável. Em muitos desses lugares, é definido um texto de failsafe, que será exibido caso não haja outro texto definido para o valor específico da variável verificada.
Objects and Scripts#
There are several generic objects and scripts used to display text for multiple different NPCs (and other interactables) throughout the game. They often have a general failsafe message for if the particular variable value (e.g. room ID, item ID, etc.) isn't defined.
Monster Encounters
The default message for the text that appears at the start of battles in scr_enountersetup, which can be seen in-game by starting a battle with an encounter that's not uniquely defined. In Chapter 4, it can also be seen in an encounter with a Wicabel and Organikk due to an oversight where they don't have a battle message defined.
English |
Japanese |
|---|---|
|
|
Door
Shortcut door choice (though this is unused even if the choice is undefined):
English |
Japanese |
|---|---|
|
|
Rhyming NPC Dialogue
obj_npc_facing, obj_npc_room, and obj_npc_room_animated, respectively:
English |
Japanese |
|---|---|
|
|
|
|
|
|
These three rhyming lines appear to be connected. It is worth noting that they describe Undertale 's "mystery man" (the character assumed by many to be Gaster) suspiciously well.
(Source: Original TCRF research)
Symbols
obj_npc_sign (primarily used for signs):
English |
Japanese |
|---|---|
|
|
This line is a reference to similar lines in Sans's workshop in Undertale (these lines are not in Deltarune; they're just included here for illustrative purposes):
|
|
|
(Source: Original TCRF research)
Seizure
obj_readable_room1:
English |
Japanese |
|---|---|
|
|
(Source: Original TCRF research)
Base Interactable Objects
obj_interactablesolid and obj_readable, respectively (which serves as the bases for actual interactable objects):
English |
Japanese |
|---|---|
|
|
(Source: Original TCRF research)
Generic Error Messages
In Chapter 2 onwards, if debug mode is enabled, these messages all become basic error messages explaining what the problem is.
Object |
Text |
|---|---|
|
|
|
|
|
|
|
|
|
|
Game Initializers#
scr_gamestart
Among other things, this script defines default choice options:
English |
Japanese |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(Source: Original TCRF research)
obj_initializer
This object's Create script defines default messages (which were seemingly at one point used for testing).
Small messages:
RALSEI:
|
SUSIE:
|
Normal messages:
RALSEI:
|
SUSIE:
|
(followed by Susie's above small message)
|
TORIEL:
|
(Source: Original TCRF research)
SAVE Files#
If a save file exists but dr.ini doesn't exist, then one of the following three strings will be displayed in place of the file's name:
FILE0
FILE1
FILE2
(Source: Original TCRF research)
Save Name
English |
Japanese |
|---|---|
|
|
Code that doesn't work anywhere, from obj_savemenu's Create script.
(Source: Original TCRF research)
Name Hack#
English |
Japanese |
|---|---|
|
|
Since the Light World menu is reused from Undertale, the stat menu will still respond to a name longer than 6 letters, though now with confusion. The reason is likely that the name is harder to change this time around as it's always set to "Kris", making it impossible to change through save editing. This text can be seen by changing the value of global.lcharname in scr_gamestart from "Kris" to a name longer than 6 letters, and will overwrite the "Since Chapter" message that shows the chapter the player started that file from.
Unused Enemies#
#1: Enemy#
Enemy (obj_placeholderenemy) is an unused placeholder enemy evidently used for testing. It is defined as a failsafe in a few different places, and so has a few other names. It uses Rudinn's sprites, though it has different text, ACT options, and stats.
TESTOBJECT is defined by obj_initializer, and Enemy is properly defined in scr_monstersetup. Oddly, the name defined for it in scr_gamestart is often changed between chapters; it was first called G BODY in Chapter 1, then Chapter 2 changed it to ECHIDNA, Chapter 4 changed it to TERUTERUBOUZA, and Chapter 5 changed it to WEATHER DOLL. Chapter 4's name is similar to teru teru bōzu, dolls that are hung outside doors and windows in Japan in hopes of bringing sunny weather, which Chapter 5's name seems to describe as well.
TESTOBJECT |
G BODY/ECHIDNA/TERUTERUBOUZA/WEATHER DOLL |
|||
|---|---|---|---|---|
Attack |
3 |
Attack |
3 |
Attack |
Defense |
2 |
Defense |
2 |
Defense |
HP |
20 |
HP |
20 |
HP |
Spare point |
0 |
Spare point |
||
EXP |
||||
D$ |
||||
Battle Messages#
Normal battle messages:
|
|
|
|
Enemy Messages#
Messages that would be spoken by the enemy, randomly chosen between:
|
|
|
|
...were it not for this line, which replaces the above lines every time:
|
Message shown after using 'Victory (S)' (see below) at the end of the enemy's turn:
|
|
ACT#
ACT options (effects detailed below):
English |
Japanese |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
'Check' text (note the incorrect stats):
English |
Japanese |
|---|---|
|
|
'Warning' text:
|
|
'Victory' text (makes the enemy spareable immediately):
|
'Victory (D)' text (makes the enemy spareable after the enemy's next turn):
|
'Victory (S)' text (makes the enemy say a message and run away, following its next turn):
|
'Lecture' text:
|
|
(Source: Original TCRF research)
Unused Settings#
There are several flags stored in each chapter's save file for settings that normally can't be changed in-game.
Disable Screen Shake#
Flag 12 (found on line 329 in Chapter 1 and line 565 in Chapters 2+) allows you to toggle the screen shake effects. When set to 1, all screen shakes will be disabled. A variable called shakeoff is still present in the config menu's draw code, being set to either "OFF" or "ON" depending on if flag 12 is set to 0 or 1.
Alternate Attack Mode#
|
|
To do: |
When flag 13 (found on line 330 in Chapter 1 and line 566 in Chapters 2+) is set to 1, it enables an unused method of attacking where each party member uses a different key to attack. The first member uses the Confirm button (Z by default), the second member uses the Cancel button (X by default), and the third member uses the Menu button (C by default). Note that in Chapters 1 & 2, this mode will properly light up Ralsei's attack box, unlike the normal mode, though it won't return to green due to the same bug that prevents the normal mode from lighting the box up in the first place. This mode's code wasn't updated upon Noelle being added in Chapter 2, so her attack box won't light up at all while using it.
Battle Cursor Memory#
When flag 14 (found on line 331 in Chapter 1 and line 567 in Chapters 2+) is set to 1, each member's selections from their previous turn will be kept instead of reset. This extends from the main action menu to all the sub-menus.
SFX and Music Volume#
Flags 15 and 16 (found on lines 332 & 333 in Chapter 1 and lines 568 & 569 in Chapters 2+) control the volume of sound effects and music respectively, which are options that cannot be changed normally, as only Master Volume can be changed. Code still exists in the step event of obj_darkcontroller (the object for the Dark World's pause menu) to change these values, sound effect volume being changed when global.submenu is set to 31 and music volume being changed when global.submenu is set to 32. Their values are both changed by 0.5 (5%) at a time instead of 0.2 (2%) like Master Volume is. Interestingly, a variable called musvol containing the music volume's current percent is still set for the config menu's draw code, but it's never used.
Unused Mechanics#
Talk Button#
Hidden in the Dark World menu's code is a fifth button for TALKing. It's supposed to be placed in the middle of the four buttons, but is programmed to be skipped when drawing the menu buttons and moving the cursor left or right to select an option, along with an extra check to cancel selecting it and reset the menu cursor position if the option was somehow selected. The button would have been used for talking to your party members about the room you're currently in (à la calling Papyrus in Undertale), but was likely scrapped due to the sheer amount of dialogue that would need to be written to account for story progress and current party members. scr_talkroom, the script that would've held all the dialogue, still exists and is ran when using this button, but any dialogue that may have been written was stripped out, leaving it to use a single placeholder line instead.
Interestingly, using this button in the second timed puzzle room in Chapter 1 will change the text for failing too many times.
Multiple Attack Bolts#
Another feature that would've returned from Undertale was a character having multiple attack bolts depending on their weapon. Each weapon has a weaponbolts variable for how many bolts the weapon should give, but they're all set to 1, and each character's charbolt variable in the code for creating the attack UI is hardcoded to 1 anyway regardless of their weapon's bolt amount. Changing the hardcoded values or making the game set each character's charbolt variable to their current weapon's weaponbolts variable will show that this feature is fully functional. The damage done to an enemy will be multiplied by the amount of bolts however, which is unclear if it's a bug or not.
Overworld Spell Use#
The game supports using certain spells in the overworld from the status menu when the party has enough TP, calling the script scr_spell_overworld to do so. Battles usually set TP to 0 upon ending to prevent this from happening, though it's unintentionally possible in Chapter 1 on rare occasions where TP isn't reset, such as after the battle between Susie and Lancer. The only spell that's usable in the overworld is Heal Prayer, healing 100 HP being just as if an item were used. Starting with Chapter 2, this was completely removed by making Heal Prayer no longer usable in the overworld.
Ambushing#
Starting with Chapter 2, the game contains a partially unused mechanic for enemies ambushing the player when starting battles. obj_chaseenemy, the object commonly used for overworld enemies, contains unused code for shooting basic diamond bullet objects called obj_encounter_bullet at the player when its test_release_bullet variable is set to 1. If one of these bullets hits the player, the global.ambush variable will be set to 1 and the party will shake while (with the exception of Noelle) using a hurt or shocked sprite, after which obj_testoverworldenemy, the object often used when touching an enemy to start battles, will run code to play the sound snd_battleenter while immediately starting the battle, instead of playing two instances of snd_tensionhorn first. When the battle starts, the enemy will have its turn first.
The reason this mechanic is only "partially" unused is that the functionality for starting battles on the enemies' turn with with the global.ambush variable is still occasionally used for some fights, such as Clover and Tasque Manager's in the Dojo.
There is also unused code for the player ambushing enemies instead. When hitting enemies while in sword mode (more on that below), an explosion animation will play over the enemy, global.ambush will be set to 2, and obj_testoverworldenemy will have its washit variable set to 1, which makes the object play snd_break2 while immediately starting a battle with TP set to 25%. The enemies will also have their firststrike variable set to 1, but this variable is never checked by the game. Interestingly, an encounter with two Virovirokuns in Chapter 2 has alternate battle start text for if the enemy was ambushed.
Sword Mode#
Starting with Chapter 2 obj_mainchara, the object for Kris in the overworld, contains code for an unused mechanic where they'd use a sword to attack in the overworld when their swordmode variable is set to 1. In this mode, Kris can only face left or right even if they're moving up or down, and pressing the CONFIRM button will freeze them in place for a moment and make them "slash" by spawning obj_swordhitbox and playing a slashing sound. By default obj_swordhitbox won't function properly due to not having a sprite assigned to it, but assigning it one (like Kris' slashing sprite, for example) will display the object at 20% visibility and allow it to hit objects that are children of obj_swordobjparent, such as enemies and test objects present in room_cutscene_tester. An unused object called obj_swordarea will put Kris in this mode while they're touching it as long as an object that's a child of obj_swordobjparent is also touching it, implying the mechanic would be restricted to specific sections of rooms. The graphics for this mechanic appear to have not been implemented, as Kris will use their right facing sprite the entire time, flipped to match the direction they're facing.
Debug Mode#
|
|
To do: |
Debug mode has largely been stripped, but some mechanics of it still work (and some testing maps need it enabled to work correctly), with the extent to which this is the case varying by chapter. Chapters 1 and 2 have nearly all debug functionality stripped despite it originally being present in the demos. Chapters 3 and 4 have more functionality intact, but they crash at various points without further modifications. Chapter 5 is missing more code compared to the previous two, and will always crash when trying to save or load a file as debug code in some associated scripts tries to access the room rm_blank, a leftover the GMLive extension that was deleted from the files before release.
The easiest way to enable the remaining debug mode features in each chapter is to use UndertaleModTool's built-in UT/DR Debug script on the chapter's data.win file, which will also fix the crashes in Chapters 3 and 4. To instead do it manually, edit obj_initializer2's Create event to set global.debug to true instead of false (and in the case of Chapter 2, replace the contents of the scr_debug function with return global.debug).
The following debug features are shared across some chapters:
- Holding G records and saves a gif to Deltarune's AppData folder
- Pressing S allows you to save your game anywhere
- Pressing L will instantly load your current save
- Pressing Z shows the hitbox for interacting with objects
- Pressing ~ speeds up the game to 150 FPS until it's pressed again
- Pressing Ctrl + ~ slows down the game to 10 FPS until it's pressed again
- Pressing ⇧ Shift + Ctrl + N (LB/LT + RB/RT + Y on controller) activates no-clip in Chapters 3 and 4
- Pressing ⇧ Shift + Ctrl + 0 (LB/LT + RB/RT + Select on controller) sets global.interact to 0 in Chapters 3 and 4
- Various keys allow you to easily traverse between rooms:
- Pressing the Insert key brings you to the next room ID
- Pressing the Delete key brings you to the previous room ID
- Pressing Home + 1 brings you to the Cyber World intro room (Chapter 2 only)
- Pressing Home + 2 brings you to Kris's bedroom
- Pressing Home + 3 brings you to your Castle Town
- Pressing Home + 7 brings you to the Legend cutscene
- Pressing Home + 8 or Home + 9 brings you to
room_battletest
Debug Menu Remnants#
There are remnants of a debug menu in each chapter's files, mainly in scripts prefixed with "scr_84_", implying the menu was originally created by 8-4, Ltd. during the japanese localization of Chapter 1's development. Although it cannot be used anymore due to a vital script being dummied out, its companion scripts are still intact.
Script |
Function |
|---|---|
scr_84_debug() |
The aforementioned vital script that was dummied out. Unlike most debug content this script was even dummied out of the demos, though thankfully Chapter 1's version of this script was left in the Nintendo Switch port of the Chapter 1 Demo, revealing this script would have contained the code for setting up, controlling, and drawing the menu. In the Chapter 1 and 2 demos and Chapters 3 and 4, this script is called in obj_time's Step and Draw GUI events, the latter of which was updated in Chapter 3 to add a transparent blue background while the menu is active. This script being dummied out is actually the reason for Chapter 3's boards crashing in debug mode, as they try to check if the "show room name" setting from this menu is enabled, which causes an error when the menu is stripped out. |
scr_84_add_menu_item() |
Adds an option to the debug menu, usually having 3 arguments passed into it: a string that the menu reads to figure out how the option should function, a value to be used as an argument by the option, and a string to be displayed in the menu as the option's name. |
scr_84_draw_menu() |
Draws the menu. Was updated in Chapter 2 to highlight the selected options in yellow, and further updated in Chapter 3 to change how drawing groups works. |
scr_84_push() |
Used to set up a group in the menu, allowing more options to be hidden until the group is selected. |
scr_84_pop() |
Ends the current group being set up. |
scr_84_draw_text_outline() |
Draws an outlined version of the text passed into it as an argument. While technically not unused since it would eventually end up being used for a couple huds in Chapters 3 and 4, this script was originally only created and used for this menu. |
scr_84_is_digit() |
Checks if the argument passed into it is between 0 and 9. Not actually used in the menu (or anywhere for that matter), but it may have been intended for it. |
Rhythm Game (Lightners Live)#
|
|
To do: |
Both Chapter 3 and 4 contain an entire chart editor within the files, which supports the creation, saving, and loading of charts. This requires debug mode to be active to work fully. In Chapter 3, the map is protected by Dogcheck, and requires modifying the files to load. Chapter 4 just requires a save edit to load room 40266. It supports editing all three sections (Drums, Guitar, and Vocals) along with playing each of these charts. Despite this making Drums and Vocals playable, the rhythm game code does not support a third button. There's no way to chart for specifically Normal and Hard, despite both chapters supporting difficulty. The editor has different song listings in each chapter, and the code has even more songs.
OST Name |
In-Game Name |
Chapter |
Used in Final |
Charted? |
Notes |
|---|---|---|---|---|---|
MIKE, The BOARD, please! |
How To Play |
Chapter 3 |
Used |
Charted |
Has a custom guitar track on top of the song. Although can't be played normally, this is used as a tutorial on how to play this minigame. |
Soundcheck |
Soundcheck |
Chapter 3 |
Used |
Charted |
|
Raise Up Your Bat |
Lightners Live |
Chapter 3 |
Used |
Charted |
This is the chart used for the Round 2 minigame and inside the A-Rank room. |
It's TV Time! |
Tenna boss |
Chapter 3 |
Partially Used |
Charted |
This is the chart used during the boss fight with Tenna. It's fully charted, but only parts are used. |
Doom Board |
Board 4 |
Chapter 3 |
Unused |
Charted |
|
Ruder Buster |
Rude Buster (Boss) |
Chapter 3 |
Unused |
Partially Charted |
This song has about 5 seconds of charting for guitar. |
Vapor Buster |
Rude Buster (Vapor) |
Chapter 3 |
Unused |
Partially Charted |
Same as Ruder Buster; has about 5 seconds of guitar charting. |
Rude Buster |
Rude Buster |
Chapter 4 |
Unused |
Uncharted |
There's additional code and audio to support this song in Castle Town. |
Field of Hopes and Dreams |
Field of Hopes and Dreams |
Chapter 4 |
Unused |
Uncharted |
There's additional code and audio to support this song in Castle Town. |
Raise Up Your Bat |
Raise Up Your Bat |
Chapter 4 |
Used |
Charted |
Available in Castle Town. |
It's TV Time! |
It's TV Time! |
Chapter 4 |
Used |
Charted |
Available in Castle Town. |
Knock You Down!! |
Knock You Down!! |
Chapter 4 |
Used |
Charted |
Available in Castle Town. |
N/A |
tenna_battle_old |
Only in Code |
Unused |
Uncharted |
Despite the song file being left over, it is byte-for-byte identical to the final tenna_battle. The song has code to end earlier. |
Rhythm Game Debug#
|
|
To do: |
If debug is enabled, the rhythm game has a debug mode for itself by pressing O while playing a song.
This displays the current FPS and FPS_real (possibly framerate for the underlying rhythm game's hit registering system) above Kris. These will turn red whenever the game's framerate drops under 30.
In the top left, four items are shown: track pos, showing how far you are in the song, fame, which is your 'health', and two numbers- the song's 'note time' and the track position divided by the meter.
- Pressing I will enable auto-play. This requires you to have pressed O prior to pressing I.
- Pressing U causes the game to swap different internal modes, and pressing too many times quickly can cause the game to crash.
- Pressing U once causes it to switch to auto-play; a second time switches it to auto-play with the control prompts enabled.
- A third time greys out Kris's highway.
- A fourth time just completely disables input or gameplay.
- A fifth time causes the game to block out Kris's and Susie's highway.
- A sixth time completely disables the rhythm game UI but gives you back control.
- A seventh time makes Kris, Susie, and Ralsei go into their standing pose, and the stage flashes red.
- An eighth time sets the game into the tutorial song with just Kris's highway.
- A ninth time enables Susie's and Ralsei's highways.
- Pressing U more than 9 times repeats the cycle with the tutorial song selected.
- Pressing/Mashing 4 while starting Raise Up Your Bat will skip the intro. This sometimes causes the song to freak out, but should usually work.
- Pressing P lets you pause the rhythm game. Simple as that. Pausing causes notes yet to appear on the highway to display.
- Pressing R restarts the song.
- Pressing F5 causes the rhythm game to instantly end, showing the results.
- Pressing F6 brings the player to the fail screen (Retry/Quit).
Volume Control#
For some reason, the Rhythm Game's audio can be changed while playing. Holding Left ⇧ Shift then - or + will cause the song's volume to go down or up accordingly.
BIG Combo#
If the note combo is above 999, the display on the chart will stop and simply say "BIG" where the combo number would be. The "MAX COMBO" meter on the bottom right and the results screen will continue counting past 999, however. As no song currently included in Deltarune has over 999 notes, this can only be seen by modifying the game, or by waiting during Tenna's explanations of the minigame in Chapter 3.
As of version 1.03, this can be seen naturally in-game when playing "Raise Up Your Bat" in Chapter 4 when Susie and Ralsei are not in your party near the end of the chapter. Around the end of the song Susie's lane will display a "BIG" combo.
Allcaps Asset Names#
|
|
To do: |
The window captions used throughout Chapter 1 change in some cases to denote context; the 'light world' sections use title case (e.g. "The Beginning", "The Return") and the 'dark world' sections, along with everything else, use upper-case (e.g. "THE DARK", "CONTACT", "DELTARUNE").
Internally, most of the game's assets are named using a similar though distinct convention of upper/lower case. Unlike the window captions, the "Dark World" assets, like the "Light World" assets, use lower case, abbreviated prefixes (in Undertale, these were the only prefixes used). Allcaps prefixes/names are only used in the following contexts:
- The CONTACT sequence at the start of Chapter 1 and everything associated with it.
- The logo screen and main menu (both versions of it).
- The game over ("FAILURE") screen.
- The dogcheck room.
- "UNUSED", a series of unique "scripts" found in each chapter.
- Most variable names in DEVICE scripts.
- The ominous grinning face with pink and yellow eyes, with the internal name of "FRIEND", though in Chapter 3 it's simply referred to as "_" instead.
These are effectively all of the "out-of-bounds" sections of the game, as it were, with the exception of the ending credits and the "FRIEND".
Below is a full list of the used prefixes:
Type |
Normal prefix |
Allcaps prefix |
Notes |
|---|---|---|---|
Sound |
|
|
|
Music |
|
Most of the music doesn't use a prefix, but the few that do use these. |
|
Sprite |
|
|
|
Background |
|
||
Script |
|
" |
|
Font |
|
||
Object |
|
|
|
|
As mentioned above, this seems like it should logically be the script prefix. |
||
Room |
|
|
" |
Variable names within allcaps objects also follow this convention, mostly being in allcaps as well, in addition to sometimes utilizing slightly more verbose terminology. One notable counterpart for a common local variable is EVENT, used in place of con (condition/conversation).
(Source: Original TCRF research)
Music/Sound Metadata#
|
|
To do: |
Similar to Undertale and its demo, some audio files contain metadata. Most of it seems to come from FL Studio.
Chapter 1#
(most files) |
Name |
|
|
Name |
|
|
Name |
|
|
|
|
Name |
|
|
|
|
Name |
|
|
|
Chapter 2#
|
Name |
|
|
|
|
Name |
|
|
|
|
Name |
|
|
|
|
Name |
|
|
|
|
Name |
|
|
|
Chapter 3#
|
Name |
|
|
|
|
Name |
|
|
|
|
Name |
|
|
|
Chapter 4#
|
Name |
|
|
|
|
|
|
|
|
(some files under the root folder - seems to be added by GameMaker) |
Name |
|
Chapter 5#
|
Name |
|
|
|
|
Name |
|
|
Name |
|
Misc.#
|
Name |
|
|
|
|
Name |
|
|
Name |
|
The mentions of "LAME in FL Studio 10" imply that some files were converted from MP3s - LAME is a MP3 encoder.
Due to reusing Undertale's snd_hit file for snd_hit_(ch1), the "Snoopy, Come Home" (which is the title song for the 1972 movie with the same name) metadata is intact.
(Source: Original TCRF research)
Chapter Inconsistencies#
Despite the game reaching its full release, there are some odd inconsistencies between the currently available chapters.
Enemy Targeting#
In Chapter 1, one or more specific party members will be targeted for an attack, and they'll have a target graphic placed over them before the attack starts while the rest are darkened. Targeted members will be the only ones who take damage during the attack until they're downed. In every subsequent chapter, the target graphic was removed, and aside from a few instances, a random party member is chosen to be damaged each hit.
Invisible Mercy#
In Chapter 1, the enemies' mercy meters and percentages aren't visible to the player in battle. Granted, the only enemy whose mercy meter doesn't fill up immediately upon successfully pulling off an act in this chapter is Clover, but it's a notable oddity nonetheless.
Unkillable in Overworld Bug#
Due to a coding error in Chapter 1, if any character's HP value is exactly 2, it will be impossible for the party to be killed by hazards in the overworld. This was fixed in future chapters.
S/R/N-Action Debug Display#
In Chapter 2, holding A while in a character's ACT menu in battle will display a box beside the enemies that contains the text for their S/R/N-Action depending on if they're defined and what characters are currently in your party. Starting with Chapter 3, this function was locked behind debug mode, meaning its availability in Chapter 2 was likely an oversight.
Chapter 3 Invincibility Frames#
In Chapters 1, 2 and 4, the soul is nearly always given 40 invincibility frames after being hit. However, for some odd, unknowable reason, Chapter 3 changes this to 30 invincibility frames instead.
Pink/Twin Ribbon TP Gain Nerf#
From Chapter 3 onward, the Pink Ribbon and Twin Ribbon were given a TP Gain nerf not communicated by the game. The Pink Ribbon will reduce TP gain by 20%, while the Twin Ribbon will reduce TP gain by 25%. This nerf stacks with each of these items equipped, which can result in TP actually being taken away if enough are obtained through hacking.
Rude Buster Damage Boost Lock#
Rude Buster's damage boost mechanic was made more strict between Chapters 2 and 3. Before Chapter 3, pressing Z at all would cause you to deal the maximum damage bonus, due to a bug in the logic which caused any boost to be the maximum boost. This was fixed starting with Chapter 3, making it necessary to time the attack correctly.
Ralsei Attack Box Bug#
In the first two chapters, Ralsei's attack box won't light up while attacking. This is the result of a coding error where the game should set pressbuffer[1], pressbuffer[2], and pressbuffer[3] to 5 when pressing the attack button and then decrease them by 1 each frame, but mistakenly does this for pressbuffer[0], pressbuffer[1], and pressbuffer[2] instead. This was fixed starting with Chapter 3.
Kris Slide Animation#
Kris's slide animation was updated in Chapter 3, being completely redrawn and given more than one frame to be consistent with Susie and Ralsei's. In Chapter 4, they still use the updated spritework, but only one frame is displayed due to the slide objects not being updated to set Kris's animation speed like they were in Chapter 3. Chapter 5 retains the same error as Chapter 4, aside from on the first sliding wall early in the Cliffs area where the animation does play, albeit faster than in Chapter 3.
Note that their unused Light World sliding sprite was left unchanged.
Chapter 1+2 |
Chapter 3 |
Chapter 4+5 |
|---|---|---|
Alternate Project Name#
Although the game's project is simply named "DELTARUNE", there seems to be an alternate name used internally by the developers: "sunkus". This can be seen in the igor.output.manifest file in the game's install folder, where it's called "sunkus_kb_check" and "sunkus_kb_block".
Although it's unclear why the project is called sunkus, it's possible that it was named after Circle K Sunkus, a Japanese convenience store chain that was rebranded in 2016.
Leftover Build Paths#
|
|
To do:
|
Within the igor.output.manifest file left in the game's install folder on PC is a build path for the game, including a build date.
Version |
Release Date |
Build Date |
Path |
|---|---|---|---|
v1.0 |
June 4, 2025 |
June 2, 2025 |
/ProgramData/GameMakerStudio2-LTS/Cache/runtimes/runtime-2022.0.3.104/bin/igor/windows/x64/250602_SUNKUS.zip |
v1.01A |
June 6, 2025 |
June 6, 2025 |
/ProgramData/GameMakerStudio2-LTS/Cache/runtimes/runtime-2022.0.3.104/bin/igor/windows/x64/250606_SUNKUS.zip |
v1.01B |
June 8, 2025 |
June 7, 2025 |
/ProgramData/GameMakerStudio2-LTS/Cache/runtimes/runtime-2022.0.3.104/bin/igor/windows/x64/250607_SUNKUS.zip |
v1.01C |
June 9, 2025 |
June 8, 2025 |
/ProgramData/GameMakerStudio2-LTS/Cache/runtimes/runtime-2022.0.3.104/bin/igor/windows/x64/250608_SUNKUS.zip |
v1.02 |
July 8, 2025 |
June 18, 2025 |
/ProgramData/GameMakerStudio2-LTS/Cache/runtimes/runtime-2022.0.3.104/bin/igor/windows/x64/250618_SUNKUS.zip |
v1.03 |
July 23, 2025 |
July 2, 2025 |
/ProgramData/GameMakerStudio2-LTS/Cache/runtimes/runtime-2022.0.3.104/bin/igor/windows/x64/250702_SUNKUS.zip |
v1.04 |
August 5, 2025 |
July 23, 2025 |
/ProgramData/GameMakerStudio2-LTS/Cache/runtimes/runtime-2022.0.3.104/bin/igor/windows/x64/250723_SUNKUS.zip |
v1.05 |
August 26, 2025 |
August 21, 2025 |
/ProgramData/GameMakerStudio2-LTS/Cache/runtimes/runtime-2022.0.3.115/bin/igor/windows/x64/250821_SUNKUS.zip |
Although the Nintendo Switch version has no manifest file, it includes what seems to be a path to a Nintendo SDK and a build path for the game in its options.ini file, though it lacks a build date.
[LLVM-Switch]
SDKDir=C:\Nintendo\sunkus\NintendoSDK
UseNEX=False
UseNPLN=False
nMeta=C:\Users\sodon\Projects\01-DELTARUNE\20-Launcher\sunkus-launcher\DELTARUNE\options/switch/SWITCH_FULL/application.nmeta
(Source: Original TCRF research)
References#
|
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 |
|