The Ultimate Guide to Undertale/Deltarune [ đź“ś ]

Intro: Welp you guys asked and you shall receive. I’ll be doing weekly updates on Fridays.
So if you have never played before, Undertale is a turn-based RPG where you play as Frisk exploring the Underground, which is full of monsters.
Deltarune is a spiritually successor to Undertale[1] In this game you play as Kris, exploring Dark Worlds with your buddies Susie and Ralsei[2]. However here your choices don’t matter. All endings are the same no matter what[3]Hmm, what was that? Okay, phew lets jumps in!

Side Note:
If you see :warning: on a section, that means it’s being worked on by somebody else! Don’t work on these sections or edit somebody else’s work!!! If you see a :stop_sign: on a section, that means it has nothing in it! Feel free to work on this sections AFTER READING THE WIKI RULES!!!


Undertale

⚠️ Environmental Art ⚠️

This section will include terrain/props to make the following areas from Undertale:

Ruins
Floors

The Ruins is the first area encountered in Undertale, and has a Pink-Magenta Color theme.
For the Floors, you need a transparency 0.8 Barrier (COLLISION OFF, BORDER OFF), with the color [R: 255 G: 0 B: 255]. Under said barrier put Stone (Light) floors.
Your Floor should look like this:
image


Walls

Now for the Walls!
The same method will be applied as the floor, except the barrier has collision on, the colors are [R: 86 G: 0 B: 97]
The floor under the barrier should be Stone (Dark)
The wall should like like this:
Screenshot 2024-10-07 10.37.27 AM


Traps

Now that the walls and floor are done, we get to move onto my favorite part of the ruins.
TRAPS!
The ruins are full of puzzles which block off doors with spike traps, and here’s how to make that spike trap

  1. First, you need a barrier, with transparency 1, [R: 171 G: 171 B: 171], that is about the size of a tile.
    image

  2. You then need to take 2 dark wooden poles, scale them down, make them jet black, and position them to look like spikes. Repeat this 4 times.
    image

  3. Finally, take the spikes and put them on top of the barrier. You now have a spike trap.
    image


Minor Art

Now that all the major art is done, the minor details need to be taken care of.
For the pillars in the ruins, you can use the Gray Stone Column prop, specifically the one that isn’t broken down at all.
For the paths, you can take the normal floor barrier, and make it lighter.
For rocks, you can use a rock prop (revolutionary)
That should be all the minor art.
Here is an image of a small model of what the ruins could look like!
Screenshot 2024-10-07 10.05.31 AM


🛑Snowdin🛑
🛑Waterfall🛑
🛑Hotlands🛑
🛑Hotel🛑
🛑Core🛑
🛑Palace & Barrier🛑
⚠️ Enemies ⚠️

In this section you will make a enemy encounter randomizer, the turn-based attack system, and bosses.

Enemy Encounter

I’m not Toby Fox, so I have no idea how he made his random encounter work, but this will work pretty well for this Undertale remake.


Devices

  • 1x Trigger per Encounter Location

Trigger

First, choose the area in your game where this trigger will go (each area should have 8-10 triggers, depending on size). I’m going to choose Snowdin. Now after you place this trigger, you need to decide what kinds of creatures you want to attack in this area. Choose at between 3-8 creatures. I chose:

  • Snowdrake
  • Ice Cap
  • Jerry
  • Greater Dog

Now we can finally move onto settings:

Settings:
Set visible in-game to no. Make it deactivate when receiving on enemy[#]killed. The # will whichever number trigger this is (if this is the first encounter trigger in your game then it will be enemy1ki<m>lled, if it is the second then it will be enemy2ki<m>lled, etc. Finally, run some blockcode when triggered.
image

Explanation:
When a player unknowing runs over this trigger, they have 75% chance of having an encounter with a monster. The highest chance is Snowdrake/Ice Cap, followed by Greater Dog, the finally Jerry. No matter who they fight it will broadcast on enemyApproaching. If they kill the enemy it will deactivate the trigger because this enemy is dead and call no longer be encountered.

Side Note:
Minibosses are monsters that are slightly more powerful, but not enough to be considered bosses. They can only be encountered once. For these set RNG to 100% and make them the only possible encounter. Their triggered should deactivate after the fight because they can only be encountered once.

⚠️ Turn-based Encounter System ⚠️

This is the meat of the game, where the characters actually fight enemies and to help me explain things I brought my good pal, Napstablook! Say hello Napstablook.
hi
Tell us a bit about yourself.
i like to lay on the floor
Okaaaaaay. Uhhhhh. Are you excited?
no
Well I’m just gonna get started…
okay


Devices

  • 14x Barriers
  • 36x Zones
  • 36x Trigger
  • 4x Property
  • 2x Teleporters
  • 1x Camera Point
  • 1x Camera View
  • 4x Buttons
  • 8x Text

sometimes i watch mettaton
Now’s not really the time…
oh. okay


Barriers 1-6 (The Framework)

The first part is really simple. Simply line up the framework of the encounter arena like this:


The horizontal barriers are about 11 gims tall and the vertical barriers are about 8 gims wide. You want to make sure to leave some room up to for the battle sprite art!
is that where they will see me at
Yes.
oh. that's unfortunate
I set my barriers to Alpha 1, Border Off, and Color Black


Zones 1 - 36

Place the zones in a 6x6 grid inside of the biggest box like so:
image

Settings:
Make the enter zone when receiving on zone[#]. The # should be the number that is displayed in this chart:
Screenshot 2024-09-24 9.55.51 AM

thats too complicated i would rather lay down

Explanation:
When a player enters a zone it will transmit on the channel.


Triggers 1-36

Settings:
The trigger should trigger when receiving on zone[#]. Make sure to have trigger by player collision and visible in-game set to no. Finally add this blockcode when triggered:
image
(The blank number block should be the same number as [#])

Explanation:
When the players enters a zone, it will trigger this trigger to set a property to hold the players location.

Side Note:
You may be wondering why I didn’t just put the triggers instead of the zones in box. I did that so on the off chance I player manages to run in between the triggers the game doesn’t glitch and damage then when it shouldn’t have. Zones cover a whole area, which avoids this. I didn’t use the player coordinates device because it would complicate things that we would do later.

...


Property

This property will contain all the players location on that zone grid we made.

Settings:
The property name should be Player Area, property type should be number, default value should be 21, and finally property scope should be player.

Explanation:
This property will track the player’s location when dodging attacks, it will help later when we make attacks


Teleporter 1 (Dodging)

Settings
Set visible in-game to no and teleport here when receiving on soul.

Explanation:
After the player selects their action, they will enter the be teleported into the Soul Box so they can dodge the monsters attack


Teleporter 2 (Options)

Settings
Set visible in-game to no and teleport here when receiving on options.

Explanation:
After the player dodges attacks, they will enter the be teleported into the Options Box (Bottom small box) so they can choose their action


Camera Point

Settings:
This camera point should activate when receiving on action and deactivate when receiving on soul. When placing the camera point, I found this as the ideal location:

Because when used in the game it all lines up very nicely:

Explanation:
After a player does their action, the monster they are fighting generally responds like this:
image

Instead of having a player block that fabulous sprite art that I’ll make eventually, I just used a camera point.


Camera View

Settings:
This camera view is added simply so that way the player can’t see monster reponses while they are dodging. This isn’t really required, just mostly something to make it look nice.


Barriers 7 - 14 (The Choices)

On your turn, you have four options: fight, act, item, and mercy.

Settings:
Add four barriers like this:


I set their color to black, their alpha to 1.00, border to off, and collision enabled to no.
Now add four barriers like this:

I set their color to #CC7700, their alpha to 1.00, border to off, and collision enabled to no. Using Layers, I moved them behind the black barriers

Explanation:
Eventually we will be text on these barriers and make them into clickable options for the player on their turn.

Side Note:
Make sure all 8 of these barriers are on Below Layer!!!


Text 1-4 (The Choices)

Settings:
Using 4 text boxes I added this text:


I set the font to Outfit and the color to *#CC7700. Here are the emojis if you need them:

⚔️FIGHT
🔊ACT
đź’°ITEM
✖️MERCY

Explanation:
These text boxes just add a bit of flavor to the buttons!


Buttons 1 (Attack)

i just woke up please dont attack
Oh no not you Napstabook… Probably Jerry though…
okay. can i watch?
Sure!
okay.

Settings:
Set the button message to :crossed_swords: Fight[4] and it when button pressed, transmit on fight. It should deactivate when receiving on fight and activate when receiving on soul.

Explanation:
By clicking this button the player chooses to fight the monster. When clicked, it deactivates (so it can’t be abused) and then reactivates when the player is teleported into the Soul Box.


Button 2 (Act)

Settings:
Set the button message to :loud_sound: Act and it when button pressed, transmit on act. It should deactivate when receiving on act and activate when receiving on soul.

Explanation:
By clicking this button the player chooses to act. When clicked, it deactivates (so it can’t be abused) and then reactivates when the player is teleported into the Soul Box.


Button 3 (Item)

Settings:
Set the button message to :moneybag: Item and it when button pressed, transmit on item. It should deactivate when receiving on item and activate when receiving on soul.

Explanation:
By clicking this button the player chooses to use an item. When clicked, it deactivates (so it can’t be abused) and then reactivates when the player is teleported into the Soul Box.


Button 4 (Mercy)

Settings:
Set the button message to :heavy_multiplication_x:MERCY and it when button pressed, transmit on mercy. It should deactivate when receiving on mercy and activate when receiving on mercyConfirmerd.

Explanation:
By clicking this button the player chooses to try and spare the monster. When clicked, it deactivates (so it can’t be abused) and then reactivates at a later time.


Text 5 (Stats)

In Undertale, under your name you have several stats displayed, and that is what we will be displaying here

Settings:
I set the font to Staatliches, the color to black, and font size to 30. I set the base text to: Player Name | LV: 0 | HP: 20/20. Finally add some blocks when receiving on statsEdit:
image


Text 6-8 (Dialogue)

This is what we are trying to create:

Settings:
Create 3 textboxes with the font to Staatliches, the color to black, and font size to 30. The base text should be -. Add three of them in a column like this:


The only things that should be different are the blockcode in the textboxes.
Textbox 1:

Textbox 2: (They are different! Pay close attention!!!)

Textbox 3:

Explanation:
Okay. Pfffff. Here we go. The property “Dialouge”[5] will hold the entire dialogue. YOU SHOULD NOT EDIT THE OTHER PROPERTIES!!! When the first textbox code is run, it will first find the length of the dialogue. If this is more than 54 characters, which would make it run out of the box, it uses some text blocks to keep 54 of the characters here and transfer the rest of the characters to “dialogue 2”. Then it adds the text. This repeats for the second line of dialogue. For the third, I cap it off so all I need to do is set the text. With this system I can hold 162 characters of text, which I feel is more then enough.


Properties 2 - 4

Settings:
The property type should be text, broadcast on game start should be yes and finally property scope should be player.

Property Setting Value
1 Name Dialouge
2 Name dialogue 2
3 Name Dialogue 3
1 Default Value Use a trigger to set this to dialogue base
2 Default Value Blank
3 Default Value Blank
1 When value changed, transmit on… newDialouge
2 When value changed, transmit on… newDialouge2
3 When value changed, transmit on… newDialouge3

Explanation:
These are the properties used in the text boxes from before.


Monster & Player Actions

Damaging the Player

why is there this little room inside of a big room inside of a small room inside this "guide"
Well the last part go really full so I added this make it neater
this is too much. it makes me sad. im always sad
It’s okay buddy.
do you like my hat?


Yes, I do. I gotta finish this now okay?
ill watch mettaton
Okay.


So guys! It’s time for everyone’s favorite pseudo-health! I know I use it a lot but in most game recreations, I find setting up a pseudo health system easier.


Devices

  • Pseudo-Health
    • 2x Property
    • 1x Trigger
  • Damaging
    • 36x Barriers
    • 1x Trigger
    • 37x Property
    • 10x Lasers

all these devices make my head spin

Property 1 (HP)

Settings:
The property name should be hitPoints. It’s property type should be number, its default value should be 20, and property scope should be player. Finally, when property changes, transmit on statsEdit.

Explanation:
This property will hold the value of the player’s health.


Property 2 (Max HP)

Settings:
The property name should be maxHP. It’s property type should be number, its default value should be 20, and property scope should be player.

Explanation:
This is the value of the Player’s maximum hit point.


Trigger 1 (Healed)

Settings:
Set trigger by player collision and visible in-game to off. This trigger should trigger when receiving on save. Finally add this blockcode when triggered…
image

why is that block yellow?
Because I was too lazy to click off of it.
oh.

Explanation:
When a player saves their HP is fully restored. So we set hit points to max HP.



Barriers 1-36 (Attacks)

Make these barriers black, with no border or collision, alpha 1.00. It should appear when when receiving on attacked[#] and disappear when receiving on newAttack. Make each barrier about the size of the zones and line each one up with own respective zone. These will show which areas will damage players.


Trigger 1 (Damage)

Settings:
Set trigger by player collision and visible in-game to off. This trigger should trigger when receiving on damage. Finally add this blockcode when triggered…
image

Explanation:
When the player gets damaged it will damage the player’s hit points. It will decrease the damage done based off the players DF (defense). If the player is 0 or below on hit points it will respawn them.


Properties 1-36

Settings:
Each property should be named Area [#] and it’s property type should be Number. It’s default value should be 0. When property updates… zone[#].

Explanation:
Eventually this property will store whether or not that this area has an attack (something that could damage the player) in it.


Triggers from Earlier x36 (The ones that set Player Area)

Now we need to add this block code into those triggers:
image

Explanation:
When an area has an attack its value will be set to its location number. So if there is an attack in Zone 36, its property will be set 36. If the character enters Zone 36, it will set the Player Area to 36 and then the Player Area will be = Area [#] it will damage them.


Lasers 1-6 (Warning)

Settings:
The laser damage should be 0, it should activate when receiving on… laser[#]Warning. It should deactivate when receiving on… warningOver. They should be deactivated on game start. Finally arrange them like this:
image

Explanation:
These lasers deal no damage, they serve as a warning that an attack will appear there shortly.

Lasers 7 - 12 (Damage)

Settings:
Now copy and paste those 6 lasers and make the following changes to them:
Their color should be white and when player hit, transmit on… damage. It should activate when receiving on… laser[#]. It should deactivate when receiving on… newAttack.
image
(It’s hard to tell, but I layered the white lasers right on top of the red ones.)


Making an Attack

Now I’m going to show you how to design your own attack.

  1. Choose the zones/lasers you what to use. I choose lasers 2 (the middle vertical one) and 6 (the bottom horizontal one), and zones and 32-36.

  2. Add a trigger, it should trigger when receiving on attack1. With this blockcode:
    image

  3. Add another trigger, it should trigger on attack1 and have a delay of 3. In this trigger:


    Oops wrong image…
    image

  4. Add another trigger with a 10 second delay this time. When triggered transmit on… newAttack.

Now when there is an attack, it will give the warning before letting loose the attack! Use multiple triggers for the attack if necessary. Have fun!

🛑 ⚔️ Fighting 🛑
🛑 🔊 Acting 🛑
🛑 💰 Using Items 🛑
🛑 ✖️ Giving Mercy 🛑

🛑 Bosses 🛑

🛑 Inventory & Levels 🛑
⚠️ Sprite Art ⚠️

In this section you will be making the character sprites with barrier art!

Asriel Dreammur (1st Form)


Memory Usage: Estimated Memory: 1.25-1.75%

Ketchup

First, place a long barrier, like this


Then, turn it red.
Add a cone and turn it red(you can hide the base if you want)

Finally, add text and write ketchup or something having to do with it.(optianal)

And you’re done! Now drink it or prank Frisk with it! (By @Dark_Hydra)

Muffet (In-Battle. Only Reference, no Tutorial)

I do not have a tutorial, sorry, but, here ya go:
image
(if only there was an “ellipse” barrier…)
Tips: Colors, colors, colors. Part of Muffet’s charm is her color palette. Try to replicate it the best you can. I used rotated and flipped arena flags for the mouth, remember she has fangs.

Thanks for looking! -@th3_ca1tsune




Deltarune

🛑 Environmental Art 🛑

This section will include terrain/props to make the following areas from Deltarune:

Chapter 1: Cliffs
Chapter 1: Fields
Chapter 1: Forests
Chapter 1: The Great Chess Board
Chapter 1: Castle
Chapter 2: Cyber Field
Chapter 2: Trash Zone
Chapter 2: Cyber City
Chapter 2: Mansion
Castle Town
Hometown
🛑 Enemies 🛑

In this section you will make a enemy encounter randomizer, the turn-based attack system, and bosses.

Enemy Encounter
Turn-based Encounter System
Bosses
⚠️ Sprite Art ⚠️

Ralsei from DELTARUNE
image
~By @Kat_aronii ~




Wiki Editing Rules

  • Please do not edit if:
    • The checkbox is checked
    • Your name is not in the credits
    • You have not asked in replies
  • When you edit please:
    • Keep it clean, we can see what you add!
    • Add your name to credits (if it is not there already)
    • Add what you did in the update log!
    • Only edit your section, if you would like to work on a different section please ask!
    • Don’t edit other work!
  • When you are done editing:
    • Either add warning signs (if it is a wip) or remove emojis (if it is done)
    • Add what section you are working on in the credits!


If this is checked that means someone is editing! Do not edit when this is checked, that includes checking and unchecking the box!

đź“ť Update Log
  • 9/26/24: Original post released, including sections: Undertale Enemies wip!
  • 9/29/24: - Asriel Dreemur 1st Form Sprite Art by NotYoyo
  • 9/30/24 - Ketchup Art by Dark_Hydra
  • 9/30/24- Ralsei sprite art by Kat_aronii (Kat_Mac)
  • 10/7/24- Ruins Art by PhoenixWander
  • 10/10/24 - Mini-update; added “Damaging Player”
Credits

@harharharhar83 - Undertale Enemies Section
@Kat_aronii - Requested to do Sprite Art!
@NotYoyo - Sprite Art
@Dark_Hydra ketchup section.
@PhoenixWander - Ruins Art Section
@th3_ca1tsune - Sprite and Environmental Art (soon)


Outro: WIP


  1. This means that it is not a direct sequel, but instead has some of the same characters but, does not exist in the same universe ↩︎

  2. We all love Ralsei here! *The power of fluffy boys shines within you ↩︎

  3. HUG RALSEI ↩︎

  4. litte wolf, fight! Wanna entertain me? Bite, little wolf bite Let’s see how you take this Strike, little wolf, strike Wanna be a man? Then Fight, little wolf, fight, little wolf, fight ↩︎

  5. Yes I know I spelled Dialogue wrong but I’m not going back and changing my whole code ↩︎

14 Likes

I will be posting updates every Friday!

3 Likes

oh no its the thing i know the most about

1 Like

Yay! Woohoo! it is finally here!
I am a fast reader

just kidding, I didn’t read the whole thing yet :D

UNDERTALE/DELTARUNE IS THE BEST GUYS!
IT IS SO INTERESTING!
IT IS SO AMAZING!
IT IS BETTER THAN OMORI!
YAY!

Also, Undyne The Undying is harder than sans

Time to make my precious Sheep
watch me cook

6 Likes

THANKS!!!
I was worried about posting it early, I wanted to post it on friday and get a bit more work done. But our school got closed.
You can cook

2 Likes

so for the sprite art,
I do it as terrain or barriers? (or how-)

@harharharhar83
just so I know before I start on the sprites

2 Likes

this is so cool :slight_smile:
Might use this in the future!
also would it be fine if I tried to help out with levels and inventory @harharharhar83 ?

yes! It’s here! SANS!
sans is harder

1 Like

Hiding stuff? You think i cannot easily read it? Well I CAN! But i never played Omori but i heard about it on YouTube

I like this guide, even though it is technically incomplete; WIP.

kinda off topic but how does one make a TUG? do you have to ask to make one or?

1 Like

IT’s the same, you just do it. TUGs nowadays are all wikis, though. Lasting mark of the Blackhole or something. All you really need to make it official is a lot of quality info (with pictures) covering a large topic, a scroll emoji, and the tug tag.

what ever you prefer!

1 Like

Thanks for trying to help but next time ask please!

ok but when tracking murd3r level so i can fight sans-

Ok. I was just formatting the titles.

haha soon. I will do updates every Friday.

starting ralsei!!
image

(when you first meet him, I might do chapter 2 versions also-)

3 Likes

I LOVE IT!!!
We all love ralsei here.
When your done just add it. I think blackhole made it a wiki now

1 Like

I got lazy- on the feet, but here’s ralsei!
image
forgot to put the heart, but wtv- I’ll do it later or tmrw

2 Likes