Undertale is a 2D role-playing video game created by indie developer Toby Fox. Undertale has three main endings: Neutral, True Pacifist, and Genocide. This TAS achieves the Genocide ending, which can be considered the "bad ending" to the game. In this ending, the player must complete the kill requirements in each area and then kill each area's boss.
For the TAS to sync, you must check Settings > Runtime > Time tracking > clock_gettime() monotonic. You may also need to install extra dependencies by entering this command into a terminal:
sudo apt-get install libc6:i386 libstdc++6:i386 zlib1g:i386 libxxf86vm1:i386 libgl1:i386 libopenal1:i386 libxrandr2:i386 libglu1-mesa:i386 libxi6:i386 libswresample-dev:i386
libssl1.0.0:i386 is also required, but no longer availible in modern Debian-based distributions. You can get it from
here.
The TAS was made on version 1.0 of Undertale, which doesn't have a Linux release, meaning it can't be TASed in libTAS by default. Fortunately, Undertale is a GameMaker game, which can relatively easily be ported to Linux with the following steps:
- Download Windows Undertale v1.0 on a Windows machine in Steam by right-clicking on Undertale in your games library -> Properties -> Betas, then selecting
old_version_100 in the list.
- Once downloaded, the game can be found in
C:\Program Files (x86)\Steam\steamapps\common\UNDERTALE. It comes as a packed .exe file, so unpack it using 7zip or similar. You should get the .ogg music files, UNDERTALE.exe, data.win, and a few other files.
- From the extracted files, rename
data.win to game.unx
- Create a folder to put the game files into. You can call it whatever you want, for example
Undertale v1.0 Linux. Inside this folder, create a folder named assets and move all the extracted files into this folder.
- Copy the runner file into the
Undertale v1.0 Linux folder. This file is essentially the Linux version of the UNDERTALE.exe file found on the Windows version. It executes the code found in the game.unx file.
- You should now have the following folder structure: the
Undertale v1.0 Linux folder, which contains the runner file and the assets folder, which contains all the extracted files (most importantly game.unx and the .ogg files). Copy the Undertale v1.0 Linux folder to your Linux machine and start the game by executing the runner file.
- If you've run this movie once and got to the black screen, you may get the same black screen when you run it again, even with Prevent writing to disk checked. Go to
/home/<Your Username>/.config/UNDERTALE and empty it.
Game objectives
- Emulator used: libTAS v1.4.5 (32-bit)
- Plays on version v1.0
- Reaches the Genocide ending
- Avoids taking damage, unless it saves time
This TAS features heavy usage of RNG manipulation and complex glitches. The run involves following the Genocide Route normally in Ruins, followed by doing a complex series of glitches to obtain the Punch Card, a glitchy item which is normally unobtainable in Genocide. Afterwards we complete the Genocide requirements in Snowdin, Waterfall, and Hotland/Core. Finally, the Sans battle can be completely skipped with the Punch Card Exploit (explained below, this is the main reason we obtain the Punch Card earlier) and the run can be completed, with the Fallen Human destroying the world. This TAS beats the
previous TAS by 95 seconds, despite forgoing the much faster Japanese text.
Tricks Used
Wall Humping
Wall humping is a movement technique where the player oscillates between facing up and facing down each frame. This technique is performed by holding Up and Down simultaneously while against the bottom side of a wall. This can be useful in certain circumstances such as when you are moving left or right but need to be facing up or down. In rooms where the player is in contact with and between two horizontal walls, this technique will cause the player to move at double speed, as the two walls both move the player simultaneously.
Menu buffering is a movement technique where the player opens the menu and presses an arrow key on the same frame. This type of movement does not count as a step for random encounters and is not considered movement by blue lasers. Although menu buffering causes the player to move at half speed (alternating between the menu buffer and closing the menu), this technique can save time in certain circumstances where additional steps are not desirable.
Punch Card Exploit (PCE)
Although the punch card can be used to trigger many different exploits, PCE refers specifically to a glitch where the player menu buffers onto a cutscene trigger, uses the punch card from the item menu, then closes the punch card to regain movement in the cutscene. The reason this glitch happens is because there is one frame between using the punch card from the item menu and the punch card opening where the player has full control, and it is during this one frame that the cutscene trigger is activated. Because most cutscenes only lock movement at the very start of the cutscene, the punch card's own ability to unlock movement after being closed is enough to skip the entire cutscene.
There is a variation of PCE called PCE slide where instead of menu buffering onto the cutscene trigger, the player uses the one frame of full control to walk onto the cutscene trigger, which also triggers the cutscene.
It's important to note that the PCE only works if there is no text on screen. If there is text on screen, returning full control will be delayed until the textbox is closed. This is called Punch Card Advance (PCA), and is also sometimes useful.
Wrong Warp
In Undertale speedrunning, wrong warping refers to entering a room and being placed at the default location in that room rather than the door the player entered from. When the player touches a room transition, the variable global.interact is normally set to 3. Then once the player reaches the next room, the game checks if global.interact is set to 3 and if it is, the game runs the code that places the player at the appropriate door marker. However, if global.interact is not 3, the player is not moved from the default location in the room. This default location is manually assigned per room by the game developer and is often closer to the middle of the room than the door marker is. There are several methods of triggering a wrong warp, all of which achieve the same result: setting global.interact to 0 (the value for full player control) while transitioning to the next room.
Text Corruption
Text corruption is a glitch which allows changing cutscene text in some, but not all cutscenes that have multiple sets of textboxes. Certain text boxes, such as dropping an item, use a variable called global.msc. When a textbox is created, the object creating the textbox assigns a value to global.msc, which is then used to lookup which set of text to display. By creating such a textbox between the cutscene's sets of textboxes, global.msc is changed to something unexpected, and so the following sets of textboxes will display the textbox that corresponds to the current global.msc value instead of the cutscene text that is meant to play.
Text Storage/Overflow
Text storage (also called overflow) is a type of glitch where the player regains movement while text is on the screen, often by using the Punch Card's 1 frame of full control to interact with a sign or NPC. This can be useful in different ways, as some text can be used to set global.interact to 0 upon closing the textbox. A special type of overflow is the recently-found Indyflow, which can be done on text with only one textbox. The Punch Card can only be cleared at least 6 frames after it was opened, so during the time the Punch Card is open, there is just enough time to close the textbox (setting global.interact to 0 for one frame) and then interacting with the sign or NPC again. This allows us to move for one additional frame while the Punch Card is up and also causes the text to begin scrolling a few frames later than with a regular overflow, both of which can be useful.
Choicer Overflow
Choicer overflow in the context of Undertale speedrunning refers to a glitch that involves using multiple choicers at once to advance text beyond its normal limits. Choicers are types of textboxes that give the player a choice between two different options. These choicers also use the variable global.msc. If the set of text that is playing includes a choicer, global.msc is incremented by 1 once the choice is selected. This next text entry normally contains the post-choicer text, if any, as well as potentially other code that accompanies the selected choice. If another choicer is then activated, the value global.msc is incremented a second time and the corresponding set of text is displayed. This can be done repeatedly to advance global.msc to a particular value, as long as there are enough choicers available.
Persistence Glitch
Rooms have a property called persistence, which saves the state of each object in the room. This property is set when entering a battle and then unset once the player returns. However, by leaving the room on the frame after a battle ends, the room persistence is never unset. The next time the room is entered, it will be exactly as it was left when entering the battle, instead of being re-initialized as normal.
Choicer Storage
Choicer storage is the act of leaving a persistent room with a choicer up. The next time the room is entered, the choicer can be used to increment global.msc from whatever it is currently set to, i.e. triggering choicer overflow.
Blcon Storage
blcon is the name internally given to the exclamation mark that appears above the player's head when enough steps have been reached to trigger a random encounter. When the blcon appears, the variable global.battlegroup is assigned a number based on random encounter logic, and then after a transition cutscene lasting between 46 and 51 frames, the game enters room_battle, where the battle takes place. There, it checks global.battlegroup and loads the corresponding battle. Blcon storage is the act of leaving a persistent room and getting a random encounter at the same time. The next time the room is entered, the transition to room_battle will play out without changing global.battlegroup, entering whatever the previous battle was.
RNG Manipulation
Undertale's RNG is determined by a seed that advances each time RNG is called. By calling RNG a different number of times, different outcomes can be achieved. Text calls RNG twice per character per frame and so changing how many frames text is displayed is the most common method of RNG manipulation. RNG is manipulated for various reasons such as getting particular monsters in random encounters and determining which step count random encounters will occur on. One thing to note is that the function randomize() is called upon loading into the game and this function sets the RNG seed based on the system time. However, after this initial seed, RNG is no longer affected by system time until the save file is reloaded or the game is restarted. RNG manipulation is used throughout the run and for the most part this is accomplished by delaying clearing text by a few frames. Statistically, the unlikelier an event is, the more frames it costs to manipulate RNG. While this does lose a small amount of time each time it's done, the various timesaves afforded by manipulating RNG more than make up for the few frames lost in the process.
RNG manipulation starts before the run even starts, by chosing a specific system time to start the TAS at to get a specific RNG seed. The first thing we manipulate for is a certain "fun value". This value is randomly assigned at the start of every run, and determines what special events can occur during the run, such as special phone calls, NPCs, or other secrets. We want a fun value in the range 40-45, as this corresponds to the phone call from Sans in Snowdin asking if your refrigerator is running. This phone call is useful because it has a choicer, and will be used later to aid in getting the Punch Card. The next thing to manipulate for is the speed of the leftmost friendliness pellet in the first Flowey encounter, which should be as fast as possible. We chose a start time such that the RNG seed gives the correct RNG for these two situations without manipulating any RNG in-game.
Ruins
Ruins is the first section of the game. A few rooms in, the first glitch in the run is performed, fittingly named TAS (Toriel Ass Skip). In the dummy room, by interacting with Toriel from the left, she turns to the left, which makes her hitbox smaller by one pixel. If we close the text and immediately talk to her again, she stays turned to the left, but we have one frame of movement availible to move into the freed pixel, which is close enough to enter the door behind Toriel. By moving into the door and talking to Toriel a third time, then closing the text, we wrong warp into the next room, where the default position is placed near the end. This allows us to completely skip the dummy battle, the First Froggit battle, and the handhold cutscene.
The kill requirement for the Ruins is 20. We start by reaching LV 2 by killing single Whimsuns in the first few rooms of the game, then advance to the triple rock room, where the step count required to get an encounter is lowest. Here, we kill Froggit/Whimsun pairs until 20 kills are reached. We manipulate Froggit's attack to one that can be skipped by damaging into it. To avoid dying, we heal with a Monster Candy. Additionally, we exit and reenter the room every time, because the step count to get a random encounter is much lower upon first entering the room.
In the triple rock room during the last kill grind, we execute a glitch known as Rock Skip. By frame-perfectly turning around as the rock moves off the pressure plate, we can reach it and interact with it before it stops moving, giving text storage. We use this to regain movement during the battle transition to the final encounter, during which we start the transition into the next room. After the battle ends, global.interact is set to 0, resulting in a wrong warp.
Napstablook disappears after 20 kills. For some of the "But nobody came" encounters, skipping it via menu-buffering is slightly faster than sitting through it. Toriel is a one-shot.
Snowdin
Near the start of Snowdin, there's a movement optimization known as "gamer pixel" where you slide across the wall collision on the top or bottom side of the small bridge to stop a pixel further to the left than normal. This causes Sans to stop his walking animation earlier, saving 4 frames.
The kill requirement for Snowdin is 16, but there are also 4 enemies that are required to keep Genocide mode active even though the game doesn’t track them for the kill count; Doggo, Greater Dog and Dogi (Dogamy + Dogaressa). Snowdrake is also a required kill, but the game counts him.
In the first half of Snowdin, the first encounter is always Snowdrake, the second always Icecap, the third always Lesser Dog, and then randomly Icecap or Snowdrake. This is determined when the blcon appears, so by exiting the room on the same frame, we avoid fighting Snowdrake (who is slower to kill than Icecap), saving 2 seconds. We will fight Snowdrake later anyways, so skipping him here is not a problem for the Genocide requirements.
With the first Icecap encounter, we do a glitch called Box Storage. By interacting with the box on the same frame the step count to get a random encounter is reached, the battle transition will start once we close the text, which also opens the box. By closing the box, we regain movement during the battle transition. As the soul starts flashing, the game locks movement a second time for some reason, but equipping the Tough Glove just beforehand causes the game to lock movement while we can't move in the menu anyways, bypassing the issue. We can then use this encounter to get persistence glitch, to be used later. From the box we get the Tough Glove, a more powerful weapon than the Stick (the default weapon).
Directly afterwards, we trigger the second Snowdin cutscene on the same frame as an encounter, causing both to start at the same time. Doing this allows the player to retain movement during the cutscene after killing Ice Cap. An invisible wall blocks you from getting close to Sans and Papyrus, so we can't just skip the cutscene. It's possible to grind out encounters during this cutscene, which saves time due to overlapping grinding time with cutscene time. At the end of the cutscene, we use the stick again, which gives us text storage. This allows us to skip the fun-value dependent Sans phone call at the end of the room. This keeps it active for later, as its trigger only disappears once you've completely mashed through it.
Next, we do a trick known as Electricity Maze Skip. In the room after the Doggo fight, we slide onto the ice on the same frame we get an encounter, which gives movement when exiting the ice. By using the Stick from the menu just before the battle starts, we get text storage afterwards and use it to wrong warp into the next room. We open the menu during the room transition, hold right, and menu to Use on the stick. This moves us right one pixel upon entering the next room, and on the same frame we hit Use. This causes both the cutscene to start and the stick to be used from the menu, which allows us to regain movement once the text is closed and walk out the exit on the right, skipping most of the cutscene.
We go through the rest of Snowdin, making sure to keep Genocide active by killing all the scripted dog enemies. Killing Dogaressa first saves a turn due to reducing Dogamy’s defense, this does not occur if you kill Dogamy first. For Greater Dog we can manipulate an attack that can be cancelled early.
The next sections revolve around a flag known as the "redemption flag", which when set aborts Genocide. This flag is set if you exit certain battles without having killed the enemies in it, which (normally) means you spared or fled from the enemy.
Due to not having exhausted the Snowdin kill count, the Papyrus fight occurs in its Neutral form instead of its Genocide form. The Genocide requirements only require that Papyrus is killed, not that he is killed in his Genocide form, so we just kill Papyrus in his Neutral form. This technicality is only present on version 1.0 and is the only reason we are playing on this version; on all other versions, triggering the Neutral Papyrus battle will set redemption flag (even if you kill him).
Directly before the Papyrus fight, we do a recently discovered trick known as slopecell. By holding Up+Left into the sloped wall directly next to the Papyrus trigger, the trigger fails to detect collision until Up+Left is released or the menu is opened. Additionally, the trigger only locks movement 1 frame after it detects collision. These 2 frames of delay are just enough time to open the menu and call Toriel, which allows us to regain movement during the cutscene once we close the dialogue. We use this movement to scroll the camera to the left manually, skipping the automatic camera scrolling that would otherwise happen after the Papyrus battle is completed, saving 1 second.
Waterfall
Near the beginning of Waterfall, we execute a glitch called Sea-Grass Skip (SGS). This skip is performed by opening text from the menu after triggering the cutscene where Undyne sees the player moving in the grass. Then by closing this text, we regain movement and exit the room on the right. This is the only cutscene that can be skipped this way, because for some reason it locks movement 4 frames after triggering it instead of immediately.
The kill requirement for Waterfall is 18, with the only required enemies being Shyren and Glad Dummy (both count for the kill counter).
The base steps counter is extremely high in the first possible room (340), but is only 20 upon entering for the first time (This changes after the first encounter, Aaron). Since Aaron requires at least two turns to kill, we skip this fight by triggering a room transition on the same frame as the encounter. The same is done with Woshua for the same reason in the next room.
Right before the first spears chase with Undyne, we walk on the plank across the water, which triggers an autosave. Autosaves are created at certain points throughout the game, but don't actually affect the save file you load from the main menu. Rather, they are more a safety save in case you die and didn't have a recent save file, in which case you'll reload to the autosave. It's important to note that at the point of this autosave, we're still on the Genocide route, with the redemption flag not being set.
After completing Spears 1, we advance past Onionsans and flee from Shyren. This sets redemption flag and aborts Genocide, which causes the Nice Cream Guy in Waterfall to respawn. Here are the conditions for Nice Cream Guy to despawn and/or respawn, in this order:
- If Doggo has been killed while on the Genocide route, Nice Cream Guy despawns.
- If redemption flag is set, Nice Cream Guy respawns.
- If the Snowdin kill count is exhausted, Nice Cream Guy despawns.
Since we never exhausted the Snowdin kill count, Nice Cream Guy is back. Buying a Nice Cream from him allows us to get a Punch Card from the box.
Back in Snowdin
We now head all the way back to the beginning of Snowdin. On the way, we set up persistence glitch in the petals room in Waterfall and the ice room in Snowdin, to be used for blcon storage later. We enter the already persistent Box Road and do choicer storage using the box choicer, to be used later for choicer overflow. At the same time, we do blcon storage.
The next trick is extremely precise, involving several blind frame-perfect RNG-dependent inputs, so currently very much TAS-only. In the next room, we PCE the Sans phone call and leave the room on the right and re-enter it. The reason is that the trigger is several pixels wide, and if we PCE it from the right we can PCE it multiple precious pixels closer to the sentry station. Next we overflow the camera behind the sentry station and use the text to regain movement during a random encounter. Then we PCE the Sans call trigger and close the punch card on the frame the soul starts flashing, since that locks movement. We walk to the sentry station and overflow it, then interact with the camera as soon as we can reach it, which happens be on the last frame before the battle starts. After fleeing the battle, we have movement and 3 different textboxes (the Sans phone call, the sentry station text, and the camera text), all of which are necessary in the next steps.
We then grind out another random encounter. We use the camera text to regain movement during the battle transition, and would like to wrong warp out of the room with the punch card. However, opening the punch card here would not trigger a PCE due to all the text up; it would cause a PCA instead, which is not useful here. We solve this by opening the punch card and using the Z press used to open the punch card to close the sentry station text. Doing so allows us to regain movement for 1 frame while the punch card is up, which we use to move into the room transition and get persistence glitch while the punch card and the Sans call are still up. Because the Sans call has a choicer, we've just set up a second choicer storage.
We then die to the encounter. This reloads the autosave made before the first Undyne spears chase, where the redemption flag wasn't set and Genocide was not yet aborted. However, since persistent rooms stay persistent so long as the game is not closed, the 2 choicers stored in the Sans call room and in Box Road are both still there.
We head to the Old Tutu, which sets global.msc to a certain value corresponding to the tutu. It just so happens that the global.msc values directly after the Old Tutu correspond to the punch card box next to Nice Cream Guy. The first global.msc value checks if there are punch cards in the box. If there are, it prompts a choier which can be used to get a punch card from the next global.msc value. Otherwise, it just shows text that there are no punch cards in the box, without a choicer. The second global.msc value simply shows text that you got the punch card and puts a punch card in your inventory. It does this without checking if there are actually punch cards in the box, trusting that the check was done by the previous textbox.
We now head all the way back to the beginning of Snowdin (again), getting blcon storage in the persistent petals and ice rooms on the way. The step counter is only reset upon entering a non-persistent room that can spawn random encounters, so because we persisted those rooms, we avoid having to do all the grinding in a single room. This way we overlap walking time from previous rooms with grinding time for the blcon storages. We cannot actually fight the encounters at this point, since the text within the battle would reset global.msc.
Once at the Sans call room, we close the stored punch card sprite to regain movement and activate the choicer, which increments global.msc to the value corresponding to the punch card box. Because the box is empty, it doesn't prompt its own choicer. We also get blcon storage at the end of the room. It's important that we regain movement and exit the room while the Sans call is still playing and without mashing all the way to the "Click" text at the end of the phone call. The reason is that the Sans call is technically divided up into 3 sets of textboxes: the "Ring..." text, the Sans dialogue including the choicer, and the "Click" text. All three textboxes set global.msc to a different value, and only the last textbox gives us movement. This means that if we were to completely mash through the phone call to regain movement instead of using the stored punch card sprite, global.msc would be set to the punch card box by the choicer and then to a different value by the "Click" text, ruining the trick.
In Box Road, we use the choicer stored there to increment global.msc again, from the value corresponding to the punch card box to the next value after it. As explained above, this value simply shows the "You got the Punch Card" text and gives us a punch card. This is what the entire setup ever since Box Storage has been leading up to.
Next, we complete the Snowdin kill requirements. With all the blcon storages, combined with persistent rooms not resetting the step counter, we are able to get 4 Icecap encounters in quick succession, leaving us with 4 kills remaining. We grind out an Icecap-Jerry-Snowdrake encounter in the precarious bridge room and kill Icecap and Snowdrake, sparing Jerry because he takes too long to kill.
We head to the petals room where a blcon is stored, which loads into another Icecap-Jerry-Snowdrake encounter, where we again only kill Icecap and Snowdrake. Despite the fact that we are in a Waterfall room, these kills still count towards the Snowdin kill count. This is because the game only updates the area it counts kills towards when entering a non-persistent room that can spawn random encounters, and when creating a blcon, neither of which has happened here. This blcon storage in particular saves a huge chunk of time, as we have avoided grinding out an encounter at 14 kills in Snowdin, which takes at least 30 seconds of grinding time.
The Rest of Watefall
Immediately after completing the last Snowdin encounter, we get another encounter due to the step counter not resetting in persistent rooms. Because this creates a blcon, this encounter will count towards Waterfall.
Since the autosave we reloaded to was made before the first Undyne spears chase, we have to do it again. When we get on the plank across the water, a new autosave is created.
Because the spears cutscene disables the menu once Undyne starts throwing spears, we can't just skip the long cutscene in the next room. We solve this by using menu text to regain movement after getting hit by a spear at the end of the first room and triggering persistence glitch. By dying to the mini-battle and reloading the new autosave, we have the menu back and the persistence allows us to skip to the end of the first chase room. This allows us to then skip the cutscene in the next room, saving 10 seconds over watching the cutscene normally.
Next, we get the Ballet Shoes, a better weapon than the Tough Glove. We proceed quickly through Waterfall and kill Shyren and Glad Dummy in the process. At Glad Dummy, we get 2 Astronaut Foods from the cooler and drop one of them during the cutscene to shorten the cutscene text via text corruption. We grind the remaining kills in the rooms after Glad Dummy. Aaron takes 2 turns to kill, so we flee his battle.
In the Undyne the Undying fight, it is barely not possible to finish the fight in fewer turns than the RTA fight, so we can only save time by completing our attacks faster on some of the hits. Finding the optimal RNG and sequence of attack for this battle is quite complicated due to random damage rolls as well as random lengths of the Ballet Shoes's attack patterns. A simulator and brute forcer for this battle was made by
hyasynthesized to greatly simplify the TASing process.
Hotland and Core
Watching the entire cutscene in Alphys's Lab is required as this sets flags to enable the Genocide version of Hotland and Core, with disabled puzzles and no phone calls from Alphys. We drop an item to trigger text corruption on the second half of the cutscene, shortening the dialogue. Using choicer overflow on the fridge textbox, we obtain both the Instant Noodles and the Burnt Pan, since the Burnt Pan follows directly behind the Instant Noodles in the global.msc lookup table. We will not actually need the Burnt Pan as a weapon, it is only used for text corruption later.
The kill requirement for Hotland/Core is 40, with the Royal Guards and Muffet being required kills (all of which count towards the kill goal). We re-equip the Tough Glove for the Hotland enemies to take advantage of its more powerful mash hit.
In the first vent room, we PCE the vents to regain movement during the vent jumps, which not only saves time on its own, but also allows us to leave the room before encountering Tsundereplane, a kill we do not need in this route.
A few rooms later, we PCE the Royal Guards cutscene and start the transition to the previous room at a specific point during the battle transition. We time it such that we exit the room just 2 frames after completing the battle. The cutscene waits a few extra frames after the battle finishes to mark itself as complete, so by skipping that, the cutscene remains availible to be triggered again. We use this to repeat the battle 18 more times, killing 19 pairs of Royal Guards total for 38 kills. This strategy is named "homophobia", because the Royal Guards are gay in the game's story and the glitch was discovered on June 1st.
We proceed through Hotland and kill Muffet as our last kill. The elevator riding cutscenes can be skipped by overflowing the elevator panel with the Punch Card; the location the elevator exit takes us to is set as soon as we select the option, instead of after the cutscene. We re-equip the Ballet Shoes for Mettaton NEO, because he is always a one-shot and the Ballet Shoes have a faster attack animation. We do text corruption in the Mettaton cutscene by dropping an item.
New Home
In New Home, we can completely skip the first story encounter by doing a very precise trick known as OCGBS, a variation on Geo-Bagel Skip (GBS) that works in Genocide. By doing an Indyflow on the fireplace, we have just enough time to move into the 1 pixel wide space between Toriel's chair and the encounter trigger before the text finishes scrolling. We interact with the chair, move into the trigger, and close the fireplace textbox to unlock movement again. We begin moving towards the room transition. Once the heart starts flashing, the game locks movement a second time, so we close the chair text to regain movement again. This leaves us with just enough time to exit the room before the battle transition finishes, skipping the encounter. Regaining movement with menu text is too slow; we would not reach the room transition on time, so doing it in this fashion is required.
A wrong warp into the second room in the basement skips one more story encounter because the wrong warp point is behind the trigger. No other story encounters can be skipped, so we simply regain movement during the battle transitions using the Punch Card and/or menu text, to overlap the battle transitions with walking time.
Sans is not a requirement to get the Genocide ending, and can be completely skipped via a PCE. His battle takes about 8 minutes to complete, and he is the main reason we went to such lengths to get the Punch Card. The rest of the run involves mashing through dialogue as the player kills Asgore and Flowey, and finally the Fallen Human destroys the world.
Potential Improvements
This TAS was made by adding RNG manipulation onto a TAS in which the game was modded to give perfect RNG, which achieves 56:24. An older version that misses a 1 second timesave in Waterfall can be found
here. As such, the only known timesave in the TAS is better RNG manipulation. In total, we lose about 11 seconds to RNG manipulation and/or suboptimal RNG.
Credits
- colinator27, iamanissue, duuuuude5, OceanBagel, Jean Poilu for finding a working route to obtain the Punch Card in Genocide
- hyasynthesized for the Undyne the Undying fight, as well coming up with several tricks such as the blcon storages and homophobia, without which this route involving the Punch Card is slower than the standard Genocide route without the Punch Card.
- indythevulkin for finding Indyflows, Snowdrake skip, and Electricity Maze Skip.
- duuuuude5 for kills routing and TASing work
Screenshots