Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Additional Mod Features/Better BSODs/extras/bsod.rpy
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2019-2025 Azariel Del Carmen (bronya_rand). All rights reserved.
# Copyright 2019-2026 Azariel Del Carmen (bronya_rand). All rights reserved.
# bsod.rpy
# This file contains the screen code to display a fake Blue Screen of death.

Expand Down
2 changes: 1 addition & 1 deletion Additional Mod Features/Gallery/extras/gallery.rpy
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2019-2025 Azariel Del Carmen (bronya_rand). All rights reserved.
# Copyright 2019-2026 Azariel Del Carmen (bronya_rand). All rights reserved.
# This file contains the screen code for the Gallery Menu.
# The code is designed to work with Ren'Py 8 and uses the `_ren.py` approach for Python code.

Expand Down
2 changes: 1 addition & 1 deletion Additional Mod Features/Gallery/extras/py/gallery_ren.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2019-2025 Azariel Del Carmen (bronya_rand). All rights reserved.
# Copyright 2019-2026 Azariel Del Carmen (bronya_rand). All rights reserved.
# This file contains the Python code for the Gallery Menu.
# The code is designed to work with Ren'Py 8 and uses the `_ren.py` approach for Python code.

Expand Down
Binary file removed Documentation/New Poemgame Guide.pdf
Binary file not shown.
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,6 @@ If you prefer a different approach, you may use one of these alternatives:

- 📱 [Android Mod Guide](./Documentation/Android%20Mod%20Guide.pdf) - Complete guide for Android porting
- 🎮 [Discord RPC Guide](./Documentation/Discord%20RPC%20Guide.pdf) - Set up Discord Rich Presence
- 📝 [New Poem Game Guide](./Documentation/New%20Poemgame%20Guide.pdf) - In-depth poem game documentation

### Community & Support

Expand Down Expand Up @@ -218,5 +217,5 @@ Thanks to the following people for their contributions to the DDLC Mod Template:
---

<p align="center">
<b>Copyright © 2019-2025 Azariel "Bronya Rand" Del Carmen (bronya_rand). All rights reserved. Doki Doki Literature Club, the Doki Doki Literature Club code, is the property of Team Salvato. Copyright © 2017 Team Salvato. All rights reserved.</b>
<b>Copyright © 2019-2026 Azariel "Bronya Rand" Del Carmen (bronya_rand). All rights reserved. Doki Doki Literature Club, the Doki Doki Literature Club code, is the property of Team Salvato. Copyright © 2017 Team Salvato. All rights reserved.</b>
</p>
2 changes: 2 additions & 0 deletions game/act_two/poems_special.rpy
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ label poem_special(poem=1):
$ quick_menu = False
play sound page_turn

$ show_poem_content_warning(poem)

if poem == 7:
show poem_special7a as ps with Dissolve(1.0)
else:
Expand Down
80 changes: 80 additions & 0 deletions game/core/content_warnings.rpy
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# This file contains the content warning popup screen used in the mobile version of DDLC.

# The logic for displaying the content warning is handled in `content_warning_ren.py` in the `py` directory.
# To show a content warning, call the `show_content_warning(warning_text)` function.

default persistent.enable_content_warnings = False
default cw_prev_volume = preferences.get_mixer('music')

image cw_darken:
Solid("#000")
alpha 0.8

image cw_warning_icon = "gui/cwicon.png"

screen content_warning_popup(warning_text):
modal True
zorder 200
style_prefix "cw_popup"

default cw_screen_shown = False

frame at cw_fade:
background "cw_darken"

frame at cw_popup_fade:
padding (50, 30)
xalign 0.5
yalign 0.5

has vbox
xminimum 500
ymaximum 1.0
spacing 20

add "cw_warning_icon" xalign 0.5 zoom 0.3

text "[warning_text!t]"

textbutton _("OK"):
sensitive cw_screen_shown
action [Function(cw_restore_volume), Hide()]

timer 3.0 action SetLocalVariable("cw_screen_shown", True)

style cw_popup_text is default:
xalign 0.5
outlines []
color "#000"
size get_variable_size(24, 32, 1.0)
textalign 0.5

style cw_popup_frame:
background Frame(Transform("gui/cw_frame.png", zoom=1.0), 30, 30)

style cw_popup_button is confirm_button:
xalign 0.5
style cw_popup_button_text is confirm_button_text

transform cw_fade:
on show:
alpha 0.0
linear 0.5 alpha 1.0
on hide:
alpha 1.0
linear 0.5 alpha 0.0

transform cw_popup_fade:
subpixel True
on show:
alpha 0.0
yoffset 40
parallel:
easein_quad 0.4 alpha 1.0
parallel:
easein_quad 1.2 yoffset 0
on hide:
parallel:
easeout_quad 0.4 alpha 0.0
parallel:
easeout_quad 1.2 yoffset 40
62 changes: 62 additions & 0 deletions game/core/py/content_warning_ren.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# This file contains the Python code for the Content Warning system from the mobile version of DDLC.

# The logic for displaying the content warning is handled here,
# while the display code is in `content_warnings.rpy` in the `wip` directory.

## These import is not used when the game is running, but exists so IDEs reports
## one warning than multiple.
from game.definitions.py.core_ren import pause, persistent, store
import renpy # type: ignore

persistent.enable_content_warnings = False

"""renpy
init python:
"""


def show_content_warning(warning_text: str):
"""
Shows a content warning popup with the given warning text.

:param warning_text: The content warning text to display.
:type warning_text: str
"""
if not persistent.enable_content_warnings:
return

store.cw_prev_volume = renpy.store.preferences.get_mixer("music")
if store.cw_prev_volume > 0:
renpy.audio.music.set_volume(store.cw_prev_volume / 2)

renpy.show_screen("content_warning_popup", warning_text=warning_text)
store.mc.add_history(None, "", (_("Content Warning: ") + warning_text))

pause(3.0)


def cw_restore_volume():
"""
Restores the volume levels after the content warning screen is dismissed.
"""
renpy.music.set_volume(store.cw_prev_volume, 2)

def show_poem_content_warning(special_poem: int):
"""
Shows a content warning for specific special poems.
Displays a content warning for certain special poems based on their number
or None if no warning is needed.

:param special_poem: The special poem number.
:type special_poem: int
"""
poem_warnings = {
1: "Crude sketch of a stick figure in the likeness of a character hanging from a noose.",
4: "First-person written account glorifying self-harm via cutting, and considering potential suicide. Visual depiction of blood smeared on paper.",
9: "First-person written references to implied neglect and potential parental abuse, including withholding food.",
10: "Brief, first person written account of implied mental health struggles and potential future self harm.",
11: "First-person written account of implied drowning and accompanying panic, physical struggle, and claustrophobia."
}

if special_poem in poem_warnings.keys():
show_content_warning(poem_warnings[special_poem])
2 changes: 1 addition & 1 deletion game/definitions/cgs.rpy
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2019-2025 Azariel Del Carmen (bronya_rand). All rights reserved.
# Copyright 2019-2026 Azariel Del Carmen (bronya_rand). All rights reserved.

# This file defines all the character graphics (CGs) in DDLC such as Yuri's
# Chocolate CG and Natsuki's Manga CG.
Expand Down
10 changes: 9 additions & 1 deletion game/definitions/definitions.rpy
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2019-2025 Azariel Del Carmen (bronya_rand). All rights reserved.
# Copyright 2019-2026 Azariel Del Carmen (bronya_rand). All rights reserved.
# This file defines important stuff for DDLC and your mod!

# This variable declares whether to enable Developer Tools from Ren'Py.
Expand Down Expand Up @@ -1394,6 +1394,14 @@ default chapter = 0
default currentpos = 0
default faint_effect = None

# Variables brough from DDLC Mobile
default hide_quick_skip_and_auto = False

default persistent.reduce_motion = False
default persistent.use_alt_poem_font = False
default persistent.reduce_transparency = False
default persistent.high_contrast = False

# Default Name Variables
# To define a default name make a character name variable like in this example:
# default e_name = "Eileen"
Expand Down
Loading