the cutting room mirror

en

Featured article
view on tcrf.net

deltarune

New! It's the "parallel story" to Undertale, by Toby Fox - Deltarune, by Boxy Oft!

The game finally got a non-demo release in 2025, after a quite long almost seven-year wait - or up to fourteen depending on where you start counting from, as Boxy Toby had the dream that inspired Deltarune all the way back in 2011. Even after all this time, it currently only features Chapters 1-5. Future chapters are planned to be released as free updates, with Chapter 6 planned for 2027, and Chapter 7 planned for an unknown future time.

With such a long development cycle, it's no surprise that a lot of unused content gets left over, ranging from entire cut areas in some chapters, to unused enemy attacks, game mechanics, debug content, and more - and if you dig deep enough, you can even find some very, very interesting things which might not have just been left there by accident.

The game makes use of a peculiar GameMaker feature that was added specifically for Deltarune4, which allows individual chapters to effectively be stored as entirely separate games and swapped between on-the-fly. Each chapter comes with its own data.win file and quite a bit of duplicated content, with only music files being shared between them. Thus, this page has been split up on a per-chapter basis, with the main page only being used for things which are present across multiple chapters in a significant or changed way.

Sub-Pages#

Unused Content by Chapter#

Non-Chapter Specific#

Preceding Chapter Leftovers#

Many sprites and sounds from a previous chapter will be left over in the next one, regardless of if they're used in that chapter or not. This is likely due to the chapters being built off one another, as well as being a remnant from when each chapter was in one data file before the game_change function was implemented. The exceptions to this are typically sprites that are unlikely to be needed in future chapters, such as Ramb's sprites being exclusive to Chapter 3's files and very cutscene-specific sprites being exclusive to the files of the chapter they appear in.

Unused Graphics#

obj_npc_facing#

This sprite, spr_placeholder, is the default sprite of the object obj_npc_facing, which is used for most NPCs capable of facing different directions (hence the name). The sprite is likely present simply to make these objects identifiable in the editor – it is changed to an NPC's sprite (Toriel's by default) upon creation.

(Source: Original TCRF research)

Placeholder Kris Sprite#

An unused placeholder sprite for Kris, named spr_krisplace. It's used as the "default" sprite for the party member objects in battle, while programming from the parent object tells the game which object should use which party member's sprites.

(Source: Original TCRF research)

Doors#

Deltarune_Chapter_2_spr_markerA_0.png Deltarune_Chapter_2_spr_markerB_0.png Deltarune_Chapter_2_spr_markerC_0.png Deltarune_Chapter_2_spr_markerD_0.png Deltarune_Chapter_2_spr_markerE_0.png Deltarune_Chapter_2_spr_markerF_0.png Deltarune_Chapter_2_spr_markerR_0.png Deltarune_Chapter_2_spr_markerS_0.png Deltarune_Chapter_2_spr_markerT_0.png Deltarune_Chapter_2_spr_markerU_0.png Deltarune_Chapter_2_spr_markerV_0.png Deltarune_Chapter_2_spr_markerW_0.png Deltarune_Chapter_2_spr_markerX_0.png

Deltarune_Chapter_2_spr_markerAny_0.png Deltarune_Chapter_2_spr_markerAny_1.png Deltarune_Chapter_2_spr_markerAny_2.png Deltarune_Chapter_2_spr_markerAny_3.png Deltarune_Chapter_2_spr_markerAny_4.png Deltarune_Chapter_2_spr_markerAny_5.png Deltarune_Chapter_2_spr_markerAny_6.png Deltarune_Chapter_2_spr_markerAny_7.png Deltarune_Chapter_2_spr_markerAny_8.png Deltarune_Chapter_2_spr_markerAny_9.png Deltarune_Chapter_2_spr_markerAny_10.png Deltarune_Chapter_2_spr_markerAny_11.png Deltarune_Chapter_2_spr_markerAny_12.png Deltarune_Chapter_2_spr_markerAny_13.png Deltarune_Chapter_2_spr_markerAny_14.png Deltarune_Chapter_2_spr_markerAny_15.png Deltarune_Chapter_2_spr_markerAny_16.png Deltarune_Chapter_2_spr_markerAny_17.png Deltarune_Chapter_2_spr_markerAny_18.png Deltarune_Chapter_2_spr_markerAny_19.png Deltarune_Chapter_2_spr_markerAny_20.png Deltarune_Chapter_2_spr_markerAny_21.png Deltarune_Chapter_2_spr_markerAny_22.png Deltarune_Chapter_2_spr_markerAny_23.png Deltarune_Chapter_2_spr_markerAny_24.png Deltarune_Chapter_2_spr_markerAny_25.png Deltarune_Chapter_2_spr_markerAny_26.png

Designs for the marker objects used to set Kris's position upon entering a room through a door introduced since the release of Chapter 2, using a cleaner letter design and including a silhouette of Kris, as well as adding letters R-V, with the S marker using the Cool S. There were also "any" markers added, which go through the entire alphabet and have numbers for each letter.

(Source: Original TCRF research)

Deltarune_Chapter_2_spr_doorAny_0.png Deltarune_Chapter_2_spr_doorAny_1.png Deltarune_Chapter_2_spr_doorAny_2.png Deltarune_Chapter_2_spr_doorAny_3.png Deltarune_Chapter_2_spr_doorAny_4.png Deltarune_Chapter_2_spr_doorAny_5.png Deltarune_Chapter_2_spr_doorAny_6.png

Like with the markers, the door objects also got "any" versions, though there aren't quite as many of them in comparison.

(Source: Original TCRF research)

Chapter 1 Demo Noelle Portraits#

spr_face_nX

spr_face_n_matome

Noelle's original dialogue portraits from the Chapter 1 Demo still exist in each Chapter's files as spr_face_n0-spr_face_n9, being replaced with spr_face_n_matome in Chapter 2 and retroactively replaced in Chapter 1. She had a much rounder jaw, longer hair that was cut off by the bottom of the frame, and her eyes were closer to her hair and further from her nose. A couple of them are notably animated, a feature that was lost in her new portraits (and most portraits in general) due to the game adopting a new system of storing each character's portraits as one sprite rather than multiple.

(Source: Original TCRF research)

Extra Chapter Numbers#

From Chapter 2 onwards, a chapter number sprite is displayed beneath the game's logo with its frame corresponding to the current chapter (dictated by the global.chapter variable). This includes the expected Chapter 2-7 graphics, along with an unused version for Chapter 1, which doesn't include/display this sprite. Furthermore, it also includes graphics for Chapters 0, 8, 9 and 10, none of which appear in the chapter select screen or otherwise have had any indication of their planned existence.

The Chapter 0 and 1 graphics were likely added for convenience so that each frame of the sprite would correspond to a Chapter number properly, but it's unclear why the Chapter 8-10 ones exist. As Toby Fox has explicitly stated in interviews that there will be seven chapters, these were most likely either left here as a red herring, or the developers themselves were simply uncertain of how many chapters there would be at the time the sprite was made.

(Source: Original TCRF research)

Unused Objects#

obj_CHAPTER_SELECT_old#

Old

Current

An old version of the chapter select, leftover from v2 of the LTS Demo. This version is from before the chapter select was reprogrammed in v3 of the demo, so it's very different internally. The changes are as follows:

  • The game window's title is still set to "DELTARUNE Chapter 1&2".
  • Only Chapters 1 and 2 can be selected.
  • After selecting a chapter, 12 frames need to pass before the player is allowed to proceed with or back out of starting it.
  • The lines separating the chapters fade in from the bottom rather than the top.
  • It's missing the option to switch to Japanese.
  • The text and icons are all further from the sides of the window.
  • The chapter icons are displayed incorrectly due to changes in how they're stored.
  • The copyright information was moved from the bottom right to the bottom left to make space for the Shadow Crystal UI.
  • The version is "DELTARUNE v2" and the copyright years are still listed as 2018-2024.
  • The stars that appear to indicate which save files were completed in a chapter don't exist.
  • The text for continuing and starting a new chapter before all available chapters are completed is formatted differently.

Attempting to start a chapter will crash due to the chapter starting sounds being renamed, but fixing this by making it call the proper audio files will make it function properly again.

Unused Text#

Failsafe Text#

Throughout Deltarune, as with Undertale, there are many places in the dialogue where particular text is shown depending on the value of some variable. In many of those places, failsafe text is defined, which will be displayed if there was no other text defined for the particular value of the checked variable.

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

 * It is known.

 * 既出だ。

Door

Shortcut door choice (though this is unused even if the choice is undefined):

English

Japanese

 * (But nothing happened.)

 * (どういうわけか
  もう そこにいる)

Rhyming NPC Dialogue

obj_npc_facing, obj_npc_room, and obj_npc_room_animated, respectively:

English

Japanese

 * Is that a cut on your face, or
  part of your eye?

 * キミの顔… それは傷かい?
  それとも 目なのかい?

 * The gash weaves down as if you
  cry.

 * パックリ割れた 切り傷が
  まるで 涙のあとみたい。

 * The pain itself is reason why.

 * 理由は その 痛み自体。

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

 * You can't read these symbols...
* Or maybe it's the handwriting.

 * 記号を 解読できない…
* 手で書いてあるせいかもしれない。

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

* (Blueprints.)
* (You can't read the symbols
  they're written in...)
* (... or maybe it's just the
  handwriting.)
* (Looks like they relate to
  some kind of strange machine.)

(Source: Original TCRF research)

Seizure

obj_readable_room1:

English

Japanese

 * Suddenly, your body seizes up.
* What are you looking at?

 * とつぜん からだが けいれんした。
* いったい なにを みている?

(Source: Original TCRF research)

Base Interactable Objects

obj_interactablesolid and obj_readable, respectively (which serves as the bases for actual interactable objects):

English

Japanese

 * Can you see me...?

 * ボクが 見える…?

(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

obj_npc_room

 * [NO TEXT] (obj_npc_room)

obj_npc_sign

 * [NO TEXT] (obj_npc_sign)

obj_npc_room_animated

 * [NO TEXT] (obj_npc_room_animated)

obj_readable_room1

 * [NO TEXT] (obj_readable_room1)

obj_npc_facing

 * [NO TEXT] (obj_npc_facing)

Game Initializers#

scr_gamestart

Among other things, this script defines default choice options:

English

Japanese

 Normal

 Kris

 クリス

 Susie

 スージィ

 Ralsei

 ラルセイ

 G BODY

 Yes

 No

 Maybe

 Don't know

 Home

 ホーム

 Kris

 クリス

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

 i1

SUSIE:

 * i3

Normal messages:

RALSEI:

 * i4

SUSIE:

 * i5  

(followed by Susie's above small message)

 * i6.

TORIEL:

 * i7!

(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

 Kris

 クリス

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#

Deltarune-spr_diamondm_idle.gif

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:

 * Placeholder Message A.

 * Placeholder Message B.

 * Placeholder Message C.

 * Placeholder Message D.

Enemy Messages#

Messages that would be spoken by the enemy, randomly chosen between:

Message A

Message B

Message C

Message D

...were it not for this line, which replaces the above lines every time:

WlyWlyWlyWly WlyWlyWlyWly WlyWlyWlyWly WlyWlyWlyWly

Message shown after using 'Victory (S)' (see below) at the end of the enemy's turn:

A special scenario occurred

ACT#

ACT options (effects detailed below):

English

Japanese

 Check

 ぶんせき

 Warning

 けいこく

 Victory

 Victory (D)

 Victory (S)

 Lecture

 せっきょう

'Check' text (note the incorrect stats):

English

Japanese

 * ENEMY - AT 1 DF 1
* I am your adversary.

 * エネミー - ATK 1 DEF 1
* 私は 敵です。

'Warning' text:

 * You warned the enemy.
* It guarded from Susie's attack.

 (Warned)

'Victory' text (makes the enemy spareable immediately):

 * Its body was filled with a kind
  feeling.

'Victory (D)' text (makes the enemy spareable after the enemy's next turn):

 * Its body will result in a kind
  feeling at the end of the
  combat.

'Victory (S)' text (makes the enemy say a message and run away, following its next turn):

 * Its body will result in a
  speech after attack.

'Lecture' text:

 * Its body became tired.

 (Tired)

(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:
Replace this video with a more straightforward, professional one.

Watch on YouTube

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.

DELTARUNE_talkbuttonA.png DELTARUNE_talkbuttonB.png DELTARUNE_talkbuttonC.png

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.

DELTARUNE_multicharboltexample.mp4

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.

DELTARUNE_AmbushMechanics.mp4

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.

DELTARUNE_UnusedSwordMode.mp4

Debug Mode#

To do:
What exactly works in each chapter?

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:
Add screenshots.

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:
Footage?

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.

NOW'S YOUR CHANCE TO HAVE A BIG COMBO!

Allcaps Asset Names#

To do:
More stuff, like the audio: GALLERY, KEYGEN, TV_GAME.

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

snd

AUDIO

Music

mus

Most of the music doesn't use a prefix, but the few that do use these.

Sprite

spr

IMAGE

Background

bg

Script

scr

"UNUSED" is the only allcaps script. One would have expected the "PROCESS" prefix to be for scripts, but the only things that use it are two objects.

Font

fnt

Object

obj

DEVICE

PROCESS

As mentioned above, this seems like it should logically be the script prefix.

Room

room

PLACE

"ROOM" is also used once, for ROOM_INITIALIZE (room 0, the startup room, which immediately sends you to PLACE_CONTACT, PLACE_MENU, or room_legend, depending on save progress).

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:
Missing Chapter 3/4/5 stuff.

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

ENCODER

mus/fanfare.ogg ("Fanfare")
snd_rurus_appear(_ch1).ogg

Name

Software

mus/checkers.ogg ("Checker Dance")

Name

Encoded by

BPM (beats per minute)

DATE

mus/kingboss.ogg ("Chaos King")

Name

Encoded by

BPM (beats per minute)

DATE

snd_usefountain(_ch1).ogg ("Your Power")

Name

encoded_by

TBPM

date

Chapter 2#

mus/alarm_titlescreen.ogg

Name

Encoded by

BPM (beats per minute)

DATE

mus/berdly_theme.ogg ("Berdly")

Name

Encoded by

BPM (beats per minute)

DATE

mus/noelle_ferriswheel.ogg ("Ferris Wheel")

Name

Encoded by

BPM (beats per minute)

DATE

mus/noelle_normal.ogg ("Lost Girl")

Name

Encoded by

BPM (beats per minute)

DATE

mus/giant_queen_appears.ogg ("Giga Size")

Name

Encoded by

BPM (beats per minute)

DATE

Chapter 3#

mus/ch3_board1.ogg ("Sandy Board")

Name

Encoded by

BPM (beats per minute)

DATE

mus/tenna_battle_preview.ogg
mus/tenna_battle_preview_crisp.ogg

Name

Encoded by

BPM (beats per minute)

DATE

mus/knight.ogg ("Black Knife")

Name

Encoded by

BPM (beats per minute)

DATE

Chapter 4#

mus/church_zone2_alt_longer_test.ogg

Name

Encoder

Compatible Brands

Handler Name

Language

Major Brand

Minor Version

Vendor ID

DATE

(some files under the root folder - seems to be added by GameMaker)

Name

encoder

Chapter 5#

mus/ch5_inversion_lake_chant.ogg

Name

Encoded by

BPM (beats per minute)

DATE

mus/shop_3.ogg ("Shop 3")

Name

DATE

mus/dogroom.ogg
mus/mus_date_fight.ogg
mus/mus_date_tense.ogg

Name

encoder

Misc.#

snd_hit(_ch1)

Name

IART

ICRD

INAM

snd_spearappear(_ch1)

Name

ICRD

snd_won_skipping

Name

ICMT

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

Good ol' front facing Kris.
They might've lost their animated frames, but they still look better!

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", leftover build paths in the options.ini files of the Nintendo Switch versions of the game and its demos, and in the files of Chapters 3 and 4, where many keyboard functions were replaced with custom functions with "sunkus" in the name, such as "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:

  • Check all console versions, and their updates to see if anything changed for them.
  • Chapter 5 versions.

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#


  1. Deltarune on Steam↩︎
  2. Deltarune for Nintendo Switch - Nintendo Official Site↩︎
  3. Deltarune for Nintendo Switch 2 - Nintendo Official Site↩︎
  4. QUESTS TO RELEASE CHAPTER 3&4!!↩︎