Notes:Proto:Deltarune/Chapter 1 & 2 Demo (2021)
This page contains notes for the game Proto:Deltarune/Chapter 1 & 2 Demo (2021).
To do: Add more info about reading ch2 cutscene code. |
Hacking the Game
While datamining the game you may occasionally need to edit the game in order to restore stuff, so here's some notes. I assume you're editing data.win with UndertaleModTool in this section.
Code
Usually what you need to edit is the code. There are 3 tabs in the editor for a code entry:
- Decompiled - GML code that UMT's decompiler converted from the opcodes. The GM manual has a GML reference that can help you read the code. You can edit the code in the editor, and click the space outside of the editor or press Ctrl+K to compile it.
- Disassembly - VM assembly that UMT's disassembler converted from the opcodes. This reference by Space Core may help while reading this. You can also edit it.
- Graph view - Flow chart graph view generated from the opcodes. It's currently broken, and will be removed.
Note that editing code from the Decompiled tab may be unstable; always back your data.win up.
To do: Maybe remove this section. It doesn't seem useful. |
Chapter 2 Cutscene System Stuff
Chapter 2 added a new cutscene system.
Cutscene Commands
Here's a basic documentation of the cutscene commands for this system.
To do: Complete this. Also document the script aliases. |
Based on the order in scr_cutscene_commands:
delaycmd
Wait for arg1
frames, then execute command arg2
with parameter arg3
.
If instant mode is enabled, the command is run immediately.
walk
Makes an actor walk to direction arg1
with speed arg2
for arg3
frames. If instant mode is enabled, move the actor to the point the actor will end up in immediately.
walkdirect
This needs some investigation. Discuss ideas and findings on the talk page. Specifically: Is arg3 actually the speed? |
Makes an actor walk to point arg1, arg2
(if both parameters are 0, the actor will move to itself) at speed arg3
. If instant mode is enabled, move the actor to point arg1, arg2
immediately.
msgset, msgnext
Calls script msgset or msgnext with the parameters the commands received.
talk
If not in instant mode, spawns a obj_dialoguer with the side
and zurasu
settings previously set with msgside.
msgface, msgfacenext
Calls scr_anyface or scr_anyface_next with the parameters the commands received.
msgside
Sets side
or zurasu
variables for later use. Possible arg1
values include:
- any - Makes dialoguers decide where it should appear at
- top - Makes dialoguer show up at the top of the screen
- bottom - Makes dialoguer show up at the bottom of the screen
- zurasuon - Turns on zurasu (which means "move" or "shift" in Japanese), makes the writer objects attached to dialoguers move with the dialoguer
- zurasuoff - Turns off zurasu
emote
If not in instant mode, changes the emote of an actor by calling scr_emote on it with the parameters the command received (arg3 is ignored if it is 0).
speaker
Calls scr_speaker with arg1
.
fe
Sets global.fe to arg1
, also sets global.fc to arg2
if arg2
is not -2.
msc
Sets global.msc (message code) to arg1
, then initializes the message by calling scr_text.
instancecreate
Creates a object (arg3
) at arg1, arg2
, and sets cutscene_instance in the master object to it.
This needs some investigation. Discuss ideas and findings on the talk page. Specifically: cutscene_instance??? |