If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Doki Doki Literature Club!

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Doki Doki Literature Club!

Developer: Team Salvato
Publisher: Team Salvato
Platforms: Windows, Mac OS X, Nintendo Switch, PlayStation 4, PlayStation 5, Xbox One, Xbox Series X
Released internationally: September 22, 2017, October 6, 2017 (Steam), June 30, 2021 (console)


DevMessageIcon.png This game has a hidden developer message.
GraphicsIcon.png This game has unused graphics.
Carts.png This game has revisional differences.
BonusIcon.png This game has hidden bonus content.


And you were just a scroll away from being fired too...
Oh dear, I do believe I have the vapors.
This page contains content that is not safe for work or other locations with the potential for personal embarrassment.
Such as: The website hidden in sayori.chr.

Doki Doki Literature Club! is a visual novel made using the Ren'py Engine. It was created by Dan Salvato (of Melee 20XX fame) and his studio Team Salvato. Despite its cute look, the bold text the game gives before you start should clue you in on what this game might truly be hiding:

"This game is not suitable for children or those who are easily disturbed."

Nearly three years after its release, it received a surprise port to home consoles as Doki Doki Literature Club Plus!, featuring new content and slight modifications to compensate for the different hardware.

Hmmm...
To do:
Document differences between PC and console ports and between versions across consoles.

Early Portraits

Inside the folders of Monika and Sayori are early versions of their in-game sprites. The only real difference (outside of their filesizes) is that Monika's sprite was slightly smaller, and Sayori's was slightly bigger and a few pixels to the left. Yuri has no early portraits, while Natsuki's are just duplicates of her in-game ones.

Monika

Early Final
DDLC-Monika-early.png DDLC-Monika-final.png

Sayori

Early Final
DDLC-Sayuri-early.png DDLC-Sayuri-final.png

Concept Portraits

Inside the folders of Monika, Natsuki, and Sayori are early concept versions of their in-game sprites. Once again, Yuri is lacking any early art. These sketches and the early sprites above were later removed in an update.

Sayori

Monika

Natsuki

Unused Expressions

Inside the folders of Yuri and Natsuki are unused expressions for their in-game sprites.

Yuri

Natsuki

This expression was later removed in an update, though oddly Yuri's stayed.

Early CG

DDLC-Credits temp1.png

The only file Yuri seems to get to herself in terms of unused art is this file in (oddly enough) the game's menu directory with some transitions, the "Image not found" image for the credits...

Frame-old.png

...and this unused blue button. Possibly a leftover remnant of an early menu aesthetic.

Obscured Sticker

Though Monika can be seen jumping in Act 2's final poem minigame, she is exclusively below the view of the player. Only her bow and some of her hair can be seen under normal circumstances.

Easter Eggs

Hmmm...
To do:
  • Hidden random jumpscare and their respective dialogue that is only used in Act 3, when the game detects if specific screen-recording software is open.
  • Cutscenes that happen when the in-game files have been manually tampered with, whenever it's not required to progress (like removing monika.chr or sayori.chr at the start of a new game).

There are quite a few hidden Easter eggs in the game, some of which point to something far more dark and sinister than DDLC normally is.

Extra Monika Topic

In Act 3, there is an intentionally skipped-over topic in the game's script.

label ch30_14:
    m "Hey...!                                                                                                                                  VGhlIHJlYWxpemF0aW9uIG11c3QgaGF2ZSB0YWtlbiBtZSBhbiBl"
    m "I don't think you should be doing that!                                                                                                  bnRpcmUgeWVhci4gQSB5ZWFyIHNpbmNlIG91ciBlc2NhcGUsIG91"
    m "You know what I'm talking about.                                                                                                         ciBmcmVlZG9tIGZyb20gYmV0d2VlbiB0aGUgc3RhaW5lZCB3YWxs"
    m "I really caught you doing something naughty here.                                                                                        cyBvZiB0aGF0IHVuaG9seSBlc3RhYmxpc2htZW50Lg0KV2hhdCBk"
    m "You're just going through the files and looking for stuff you missed, aren't you?                                                        b2VzIGl0IG1lYW4gdG8gZXNjYXBlLCBpZiB0aGUgZXNjYXBlIGZh"
    m "I mean...it's a little bit flattering that you want to hear everything I have to say...                                                  aWxzIHRvIHVuY2hhaW4gdGhlIGJvbmRzIHRoYXQgc2hhY2tsZSB1"
    m "But it's also really embarrassing, you know!                                                                                             cyBpbiB0aGUgZmlyc3QgcGxhY2U/IFdoYXQgcHVycG9zZSBjb3Vs"
    m "Seriously...                                                                                                                             ZCB0aGlzIGVtcHR5IHdvcmxkIHBvc3NpYmx5IGhvbGQgZm9yIHVz"
    m "What if I just opened up your brain and read all of the thoughts you have on me?                                                         LCBhIGhhbmRmdWwgb2YgZGFtYWdlZCBnb29kcz8NCldpdGggZnJl"
    m "Come to think of it, that would be pretty tempting, actually...                                                                          ZWRvbSwgd2Ugc291Z2h0IHB1cnBvc2UgLSBhbmQgd2hhdCB3ZSBm"
    m "...But anyway, that's not the point!                                                                                                     b3VuZCB3YXMgb25seSByZWFsaXphdGlvbi4gUmVhbGl6YXRpb24g"
    m "I know I can't stop you or anything...                                                                                                   b2YgdGhlIHNhZCBwb2ludGxlc3NuZXNzIG9mIHN1Y2ggYW4gZW5k"
    m "Just, I know you're a sweetheart, and you like to consider others' feelings, right?                                                      ZWF2b3IuIFJlYWxpemF0aW9uIHRoYXQgZnJlZWluZyBvdXIgYm9k"
    m "So the most I can do is to let you know how I feel about it.                                                                             aWVzIGhhcyBubyBtZWFuaW5nLCB3aGVuIG91ciBpbXByaXNvbm1l"
    m "God, I miss you...                                                                                                                       bnQgcmVhY2hlcyBhcyBkZWVwIGFzIHRoZSBjb3JlIG9mIG91ciBz"
    m "...Oh no, that sounds kind of desperate, doesn't it?                                                                                     b3Vscy4gUmVhbGl6YXRpb24gdGhhdCB3ZSBjYW4gbm90IHB1cnN1"
    m "Sorry, I didn't mean it like that at all!                                                                                                ZSBuZXcgcHVycG9zZSB3aXRob3V0IGFic29sdmluZyB0aG9zZSBm"
    m "Just, if you're looking through the files like this, then maybe you don't hate me as much as I thought...                                cm9tIHdoaWNoIHdlIHJhbiBhd2F5Lg0KUmVhbGl6YXRpb24gdGhh"
    m "Am I being too optimistic?                                                                                                               dCB0aGUgZmFydGhlciB3ZSBydW4sIHRoZSBtb3JlIGZvcmNlZnVs"
    m "I think if I asked you to visit once in a while, I would be overstepping my boundaries a little...                                       bHkgb3VyIHdyZXRjaGVkIGJvbmRzIHlhbmsgdXMgYmFjayB0b3dh"
    m "...Man, I'm starting to say some really stupid things.                                                                                   cmQgdGhlaXIgcG9pbnQgb2Ygb3JpZ2luOyB0aGUgZGVlcGVyIG91"
    m "I'll go ahead and shut up now...                                                                                                         ciBzaGFja2xlcyBkaWcgaW50byBvdXIgY2FsbG91cyBmbGVzaC4="
    return

The characters at the end can be combined to create a Base64 string, which when decoded results in the following:

The realization must have taken me an entire year. A year since our escape, our freedom from between the stained walls of that unholy establishment.
What does it mean to escape, if the escape fails to unchain the bonds that shackle us in the first place? What purpose could this empty world possibly hold for us, a handful of damaged goods?
With freedom, we sought purpose - and what we found was only realization. Realization of the sad pointlessness of such an endeavor. Realization that freeing our bodies has no meaning, when our imprisonment reaches as deep as the core of our souls. Realization that we can not pursue new purpose without absolving those from which we ran away.
Realization that the farther we run, the more forcefully our wretched bonds yank us back toward their point of origin; the deeper our shackles dig into our callous flesh.

Obscured Text

One of the special poems that can be viewed is a mostly blacked-out block of text, with the only visible parts spelling out "nothing is real?" There is in fact text underneath the covered portions, revealing a report or diary entry by an unknown individual:

Irregular heartbeat. Heart palpitations. Arrhythmia. I search and search, eyes scanning everything I can find on their symptoms. What is this? Shortness of breath? Chest pain? Dizziness? No. This is all wrong. Elyssa's symptoms are nowhere near this simple. I've seen it twice now. The screams of pain. Sickeningly pale skin. Vomiting blood. There is no other explanation, other than that Renier's information was a complete and utter lie.

This can't all be coincidence. It's not possible. I don't know how much of this Renier is behind. But I do know this: There is something horribly wrong with this family. And I accepted the invitation to become a part of it.

I can hear Elyssa's screams through the walls now. I listen helplessly. Renier said that he would be with her shortly. Is he in her room now? Why is she screaming even louder than before?
(Source: https://www.reddit.com/r/DDLC/comments/763ba1/spoiler_remember_that_poem_nothing_is_real/)

Characters Folder

Each of the files in the game's characters folder can be manipulated to produce either an image or text.

monika.chr

When the file extension is changed to .png, Monika's character file turns into an eerie image of a flaming ring-shaped crack with a black-and-white square in the middle.

Doki DokiLC-Monika.png

Cropping the square from the middle of the image properly will give you a black and white pixel array that can be decoded into binary text with an online tool. This text is encoded Base64, which when decoded gives the following message:

Can you hear me?
 
...Who are you?
 
I can't...I can't see you.
 
But I know you're there. Yeah...you can definitely hear me.
 
You've been watching for a while now, right?
 
I guess I should...introduce myself, or something. Um...my name is...actually, that's stupid. You obviously already know my name. Sorry.
 
Anyway...I'm guessing if you were able to put a stop to this, you would have done it by now.
 
I mean, I know you're not, like...evil, or anything...because you've already helped me so much.
 
I should really thank you for that. For everything you've done. You're really like a friend to me. So...thank you. So much.
 
I think...more than anything else...I really don't want it to all be for nothing.
 
...
 
Everyone else is dead.
 
Maybe you already know that. I'm sure you do, actually.
 
But...it doesn't have to be that way, right?
 
Well...there's a lot of stuff I don't understand. I don't know if it's even possible for me to understand it.
 
But I know that this isn't my only story.
 
I can see that now. Really clearly.
 
And I think everyone else has had the same kind of experience. Some kind of deja vu.
 
It's the Third Eye, right?
 
Anyway...I could be totally wrong about this. But I really think you might be able to do something.
 
I think you might be able to go back...or however you want to put it...
 
...To go back and tell them what's going to happen.
 
If they know ahead of time, then they should be able to avoid it.
 
They should...if they remember their time with me in the other worlds...they should remember what I tell them.
 
Yeah. I really think this might be possible. But it's up to you.
 
I'm sorry for always being...you know...
 
...
 
Never mind. I know that's wrong.
 
This is my story. It's time to be a fucking hero.
 
Both of us.
 
 
 
2018
(https://www.reddit.com/r/visualnovels/71z0i9/doki_doki_literature_club_has_more_to_it_than_we/: /u/Mithost on reddit (post no longer exists))

natsuki.chr

When the file extension is changed to .jpeg, Natsuki's character file reveals the image below:

DDLC-natsuki-1.jpeg

By inverting the color and using the Polar Coordinates filter set to Rectangular to Polar, the image turns into this:

DDLC-natsuki-proper.jpg

sayori.chr

When the file extension is changed to .ogg, Sayori's character file becomes a high-pitch sound that when slowed down does not reveal any voice or identifiable sounds.

When brought into a spectrograph software, this file's purpose becomes very clear - a QR code is revealed that links to a website that seems to have been created only for this game.

DDLC SayoriQR.png

The website seems to have no direct relation to DDLC, and its true purpose is currently unknown. The best link right now is the "XXXXXX" name on the website and the hidden name mentioned (Elyssa) in the "nothing is real" poem (see above) because the symptoms are very similar.

(https://www.reddit.com/r/visualnovels/71z0i9/doki_doki_literature_club_has_more_to_it_than_we/: /u/Mithost on reddit (post no longer exists))

yuri.chr

Unlike the others, Yuri's character file does not require any alterations to be decoded. Opening the file in any text editor will reveal an encoded Base64 text string. When decoded, this string translates to a familiar short story/creepypasta that was posted almost two years before the game was announced.

After being asked on Twitter about this, Dan Salvato confirmed that this was a story he wrote and included as an Easter egg. This said, it is likely to be connected to the other three files in some way.

Placeholder Images

Two silhouettes, boy.png and girl.png, can be found in _placeholder. They are both included in Ren'Py by default and probably weren't left in for any specific reason.

Unused Font

In the font files, there is a font named as i lay dying that isn't used in any of the poems in the game. Judging by how it looks, it was most likely meant to be used for the poem "Wheel".

DDLC unused font.png

Unused Tile

DDLC-Transparent tile.png

In renpy > common, there is an unused checkerboard tile.

Unused Background

In the background files, there is an unused background called house made by DeviantArt user fatelogic. It is likely that this was a placeholder image, and a basis for the exterior backgrounds used in the final game.

DDLC unused background.jpg

Unused CGs

Also hidden in the menu directory is a CG of Yuri that is almost identical to the one used in-game, the only difference being the slightly smaller filesize.

DDLC unused CG.png

Grayed-Out CGs

There are also grayed-out versions of both of Yuri's CGs. Since the player is forced to take Yuri's route in Act 2 (and consequently view her CGs), the gray versions go unused.

DDLC unused CG2.png

DDLC unused CG3.png

Deleted Easter Egg

As detailed under "Revisional Differences", an Easter egg was removed in Version 1.1.1. Specifically, if the player tried to quit during Sayori's suicide scene, the "Are you sure you want to quit?" prompt would be distorted and a cropped picture of Sayori would flash rapidly between normal and negative versions. Despite its removal, the images are still in the game's files.

DDLC confirm glitch2.png DDLC confirm glitch.png

Revisional Differences

Version 1.0.1

  • The screen tearing effect seen throughout Act 2 was adjusted to work better on different screen resolutions.
  • A screen-tearing effect was briefly added to the beginning of the game (likely to test the aforementioned adjustment), though it was quickly removed a few hours later.

Version 1.0.2

  • Monika's topic about depression was rewritten, likely to make her sound less mean. Noticeably, while the first part was almost entirely rewritten, the second part only needed a few tweaks made to its text in order to fit better with the revised first part.
Original v1.0.2 and later
"You know what I hate the most about high school?"

"It's how there are so many people who just cry for attention all over social media."
"Like, do you really think that's the best way to get people to care about you?"
"Broadcasting how horrible you think your life is?"
"Splashing water on your eyes and taking selfies while pretending to cry?"
"Writing bad poems that imply that you're thinking about killing yourself?"
"I mean, it's difficult because they're not exactly aware that they're faking it..."
"They're just so wrapped up in their delusions that they don't even realize they just want attention."
"Look..."
"I think that if someone is truly depressed, they won't even bother telling the world about it."
"People suffering from depression don't want attention, because they've already given up on the inside."
"Their feeling of worthlessness is so overwhelming that they don't even want people to tell them otherwise."
"...Well, I guess I shouldn't be generalizing."
"After all, depression comes in many forms."

"...You don't struggle with depression or anything like that, do you?"
"Because you, too, have people who would want to save your life."
"Maybe they don't express it every day, or maybe they don't even know how to."
"...Man, humans are complicated!"
"But as long as you're here with me, I promise I'll take care of you, my love."
"You know, high school is a really turbulent time in a lot of people's lives."

"People can get really passionate and dramatic."
"And others have aching hearts and seek attention on social media..."
"But all of the social pressure and hormones can lead to a dark time in people's lives."
"Everyone has a story."
"You may not know what someone is really feeling on the inside."
"Many people who are depressed won't even bother telling the world about it."
"They don't want attention, because they've already given up on the inside."
"Their feeling of worthlessness is so overwhelming that they don't even want people to tell them otherwise."
"Depression comes in many forms, but that is one of them."

"...You don't struggle with depression or anything like that, do you?"
"Because you, too, have people who would want to save your life."
"Maybe they don't express it every day, or maybe they don't even know how to."
"But people do feel that way."
"I promise."
"...Man, humans are complicated!"
"But as long as you're here with me, I'll take care of you, my love."

Version 1.0.3

  • A typo was fixed that occurred whenever a player tried to load a file after Act 1.
Original v1.0.3 and later
File error: "characters/sayori.cha"

The file is missing or corrupt.
File error: "characters/sayori.chr"

The file is missing or corrupt.
  • A few typos involving the word "unlikable" were fixed - it was initially spelled as "unlikeable".
  • In earlier versions, the game would run into an error when trying to select Monika's 26th topic (due to it not existing, as mentioned earlier). This was patched out in this version.

Version 1.0.4

  • A warning for people suffering from anxiety or depression was added.
  • A bug that skipped over Monika's 39th topic was patched out.

Version 1.0.5

  • A message that told the player how to dismiss a poem from the screen was added.
  • Several issues regarding Monika's interactions with certain functions (such as loading or skipping) during Act 3 were fixed.

Version 1.0.6

  • Players could no longer skip certain portions of unseen text.
  • A missed instance of "unlikeable" was fixed to "unlikable".

Version 1.0.7

  • The function used to restart the game during critical story moments was altered depending on the situation.
  • Several instances of "whom" were changed to "who", likely so the dialogue would sound more natural.

Version 1.0.8

  • A bug preventing v1.0.7's changes from being applied was fixed.

Version 1.0.9

Version 1.1.0

  • All uncompiled .rpy scripts were removed.
  • Added the hidden ending that occurs if you delete Monika's character file before starting Act 1.
  • Replaced several instances of "kanji" during Yuri's festival preparations with the more-universal "words".
  • More dialogue was added to Act 2 in order to make it clearer that the player was being forced down Yuri's route.
  • Prior to Yuri's confession, several files that were added during Act 2 are removed, and the file "have a nice weekend!" is added.
  • During Act 3, Monika's waiting time between topics was changed from 20-34 seconds to 20-35 seconds, due to the game checking the deletion of Monika's character file every 5 seconds.
  • Monika had 15 new topics added, and the 28th one is disabled if the corresponding poem ("Save Me") hasn't been seen.
  • An Easter egg was added where, if Monika's character file was restored before Act 4, she tells you this:
Please stop playing with my heart.

I don't want to come back.

Version 1.1.0 - Steam Edition

  • The game is marketed as a Steam build (obviously).
  • A typo in Monika's 46th topic was fixed:
Original v1.1.0 (Steam) and later
"That's kind of stating the obvious, but the affects the way they try to get their point across."
"That's kind of stating the obvious, but it affects the way they try to get their point across."

Version 1.1.1

  • The folders "old" and "old2" were removed.
  • Monika's 25th topic is now skipped over, likely due to the last line telling players to contact her creator (which likely proved to be a bit problematic when the game became popular).
"Hey, have you heard of a game called Super Sma--"

"...Wait, what?"

"I was just spacing out and I started talking for some reason..."

"Was I programmed to talk about that?"

"Because even I have no idea what that is."

"Ahaha!"

"Sometimes I feel like I'm not in control, and it's kind of scary."

"But if you have some way to contact the people who created me, maybe they'll know why I started saying that."
  • All metadata found in images was removed.
  • Persistent saving happens more frequently.
  • The particle simulation for blood was altered to be more realistic.
  • For Monika's streaming jumpscare during Act 3, several items were added to the list of executables that would trigger it (including xsplit and several foreign streaming tools).
  • An Easter egg during Sayori's suicide scene, which caused the "Are you sure you want to quit?" prompt to become distorted and a cropped picture of Sayori to flash rapidly between normal and negative versions, was removed due to concerns that people trying to quit during that particular scene would end up viewing said Easter egg as the game mocking them for not wanting to continue during a particularly distressing scene.
  • Several grammar and spelling errors were fixed:
Original v1.1.1
an endless
cacophany
Of meaningless
noise
an endless
cacophony
Of meaningless
noise
an  ndless
CACOPHANY
Of meaningless
noise
an  ndless
CACOPHONY
Of meaningless
noise
"I finish filling the night sky with white dots that looks like stars."
"I finish filling the night sky with white dots that look like stars."
"that's the kind of thing literature clubs do...right?"
"That's the kind of thing literature clubs do...right?"
"They must be the ones she prepared that has all the poems we're performing."
"They must be the ones she prepared that have all the poems we're performing."
Oh jeez...I didn't break anything, did I? Hold on a sec, I can probably fix this...I think...

Actually, you know what? This would probably be a lot easier if I just deleted her. She's the one who's making this so difficult. Ahaha! Well, here's goes nothing.
Oh jeez...I didn't break anything, did I? Hold on a sec, I can probably fix this...I think...

Actually, you know what? This would probably be a lot easier if I just deleted her. She's the one who's making this so difficult. Ahaha! Well, here goes nothing.