04

"So first things first, you're going to want to open the file explorer." It was the next morning, and after a short break to get ready, Monika was trying her best to teach Yuri how to code objects into the game. "I'm not entirely sure how I did it; just imagine, like, a desktop computer, and imagine you've just doubleclicked on the game's folder."

As Yuri imagined it, she saw a folder pop up in front of her. "Alright... what now?"

"Since we're writing a script, you're going to want to go into the 'game' folder. You should see a bunch of scripts there already, I made quite a few—"

Yuri opened the "game" folder as instructed and saw what had to be hundreds of individual scripts. "...You wrote all of these?"

"...Well—" Monika seemed to steel herself; almost as if she didn't want to dwell on something for longer than she had to. "Before I realized how to bring everyone back, I didn't really have much else to occupy myself with. Anyways, if you imagine right-clicking, and selecting 'new', then 'script', it should create a new script. Name it something like..." She thought to herself. "'journal.rpy'. We'll make a journal, since there's already a Book class there."

"Okay..." Yuri did as instructed, naming the new script "journal.rpy". "What now?"

"Well, if you right click it again— or imagine right clicking— you know what I mean, you should be able to select Edit."

Sure enough, what seemed to be a text editor filled Yuri's vision. "Alright, I did that..."

"Okay! Next step is to create the journal class. Type 'python' followed by a colon, and then tab in one. That tells Ren'Py you're writing Python code instead of script."

Yuri did as instructed. "Okay...?"

"Now type 'class Journal'— capital J on Journal— and then put 'Book' in parentheses after it. That tells Python that Journal is a subclass of Book. Then put a colon after it and indent again."

"...Like this?" Yuri dutifully typed out "class Journal (Book):" and attempted to show it to Monika, however that would work.

"N— actually, that might work? Usually I don't put a space between 'Journal' and 'Book', but maybe Python will get it anyways..."

"It's alright, I'll remove the space just to be safe." Yuri removed the space.

"Okay, now, normally we'd have to define how to initialize the object, but the Book class already does that for us. The only thing we need to add for the Journal class is a function to define what happens when you write in it, which would be... no, it'd be... damn, I don't remember what it was called. I know I made something else to write on..." Monika pulled a giant black book out of the teacher's desk; it landed on said desk with a respectable thud. She started flipping through it before seemingly finding the page she was looking for. "Aha! The function we need is 'on_construct_write'— there's underscores between those words. It takes the object itself— what we usually call 'self'— as well as a parameter for what part of it we're writing on and what we're writing on or in it. I'd probably call those 'part' and 'written' myself, but the great part about writing the code is that you get to name it yourself. You could even name it 'dan_salvato_is_the_greatest_ever_I_really_mean_it' if you wanted. Sure, people would probably look at you weirdly for doing it, but you could absolutely do it!"

"I'll stick to your suggested names, thank you very much..." Yuri shook it off— rationally, she knew who Dan Salvato was, and why Monika would be calling him the greatest ever, but she was already dealing with the fact that she was literally creating a brand new object that had never before existed in her world, so the less she had to think about it the better. "Alright, so like this?" She typed out "on_construct_write(self,part,written)" and showed it to Monika.

"Oh, silly me, I forgot to teach you how to write functions. First you put 'def'— it's short for 'define'— and then you put the name of the function. Then, after you finish the part in parentheses— say, how did you know to put it in parentheses?"

"I figured there wasn't really another way to group the parameters. Plus, we already used the parentheses to provide an argument to the class definition— we used it to tell the class definition what it was subclassing."

"...Very clever! You're picking up on this quickly!" Monika beamed. "Anyways, the function is a block, like the class, so you put a colon at the end of the line and indent again."

"Alright." Yuri did as instructed.

"Now, we should check to make sure we're writing in the book. We could mess with the title depending on how you wrote on the cover, but that's a little advanced. First, we want to check if the part we're writing on is a page. We're going to do an if statement, so put 'if part.is_page()'— there's an underscore between is and page, and a set of parentheses after it— and then do the colon at the end of the line and indent again."

Yuri simply hummed an acknowledgement as she typed what Monika told her to. "You're quite knowledgeable about the inner workings of this system."

"Not really..." Monika shrugged. "Like I said yesterday, I'm still not entirely sure how you search for an object in the objects table."

"Still, you didn't even need to check that big black book to tell me what the name of that function was."

"Well, I guess pages are a part of more things than you'd think. Besides, I had to look up the name of the function for writing."

"Ah." Yuri simply hummed another acknowledgement, knowing she wasn't going to get much else out of Monika. "What do I put in this block?"

"Well, the Book class already has a function for adding to a page. Type 'self.add_to'— there's an underscore between add and to— and then put part and written in parentheses afterwards."

"Like this?" Yuri typed out "self.add_to(part,written)" and showed it to Monika.

"Exactly!" Monika beamed again. "And that should make it work!"

"Really? That's it?"

"Well, there's some more stuff I could teach you about Python— like, when you exit a block, you go back a level of indentation, so Python knows you've exited that block. But if our goal was to make you a journal, I'd say we succeeded. You can write in it, the writes will persist on the object, it'll just work."

"Okay then..." Yuri paused. "But how do I get one?"

"Oh, I almost forgot. To summon a Journal, now that we've defined the object's code, you just type 'Journal.spawn(0,0,0)` in your console, and a journal will drop into the chair. I placed the chair directly under the origin of the room, so I wouldn't have to mess around with coordinates when I brought everyone back."

"My console... how do I access that?"

Monika paused to think about her answer first. "Well, it's kind of like how you brought up the file manager— you can close that now by the way, we're done with it— where you just imagine a console that you can put commands into and then you do it."

Yuri imagined a console...

...and a console appeared in front of her. "That's... that still feels weird..." She prepared to catch the Journal, as she input the command:

Journal.spawn(0,0,0)

Spawned object "Journal".

Suddenly, a black journal appeared in midair and fell towards the ground. Yuri caught it as it fell, opening it to see a blank book waiting for her input.

"See? And whatever you write in it will stick."

Yuri took a pen from the teacher's desk and wrote her name in the book to test it. Sure enough, it worked.

"Alright, I've got to go." Monika took off with a running leap into the void.

Yuri sat at the desk. What would she even write about?

She supposed she had some time to figure it out.


Alright. What do I put here? I already put my name in this book. I guess I can just start writing.

Hello? What do people usually say when they start a journal entry? Dear Diary? No, this isn't a diary— actually, I guess it kind of is a diary in a way. That's what I'm using it for. Why am I so particular about my words when I'm the only one who should be reading them?

Anyways. Dear Diary,

I'm writing here mainly so I have something to do while Monika goes out in search of Sayori. God, if she's really in that many pieces I can't imagine how that feels.

I guess it feels like nothing, though, since she's not aware of it. I wasn't aware when I was out there— I've tried thinking about that time, but all I can remember is bleeding out on the floor of the club room with Matt standing over me, and then being rudely dumped into the teacher's chair in whatever this is. And then being made aware of what exactly this world is—

God, how is Sayori going to react to that knowledge? How is Natsuki going to react to that knowledge? Sayori would probably just give a weak smile and pretend everything was okay, but Natsuki has quite the temper. She'd probably explode in Monika's face! Regardless, all I can do is hope for the best.

~~~

So, according to the clock on the shelf here, it's 10:00 PM. Monika got back from the void a few hours ago; I helped her into her bed after she collapsed about halfway to the back wall of the clubroom. These trips to the void really seem to be taking their toll on her, but hopefully we'll see the fruits of our labor soon enough with either Sayori or Natsuki coming back. Come to think of it, I did notice a particularly big chunk in her arms when she came back—

Regardless, I guess I'm going to need to address what she's doing now. They're... what's the antonym of affirmations... disavowals? No, that doesn't sound right— even if "disavowal" and "affirmation" are antonyms, which they are, "disavowal" comes with its own baggage. I guess I can come up with a word to describe it? I don't know if anyone else has observed something quite like this, let alone gave it a name, so I guess I get to name it... "anaffirmations"?

Okay, so you know what affirmations are, right? "I will succeed", "I will get that promotion", "I can do this", those kinds of phrases? Well, these are the opposite of that. So far, she's called herself:

...Actually, no, I'm not even going to write that one down. (If it's fully written in when you read it, I didn't lie, I failed...)

It's horribly awful, these terrible things she calls herself at night; she's been doing it for a while, ever since that first day I was here alone. I won't bring it up to her— oh god, I couldn't even begin to imagine what she's been through— but I worry for her mental health.

...They've stopped now. One second...

Alright, she's fallen asleep. I'm going to go to sleep now and hope against hope that we get Natsuki or Sayori back soon. Either of them would be better at helping her than I am...