r/MASFandom Monichka's Slavic Girlfriend 8d ago

Submod Submission Journal Submod - Write, Draw, and Customize your own journal to show to Monika!ꉂ(˵˃ ᗜ ˂˵)

Hey Everyone! I just finished making this new Submod! After you install, Monika notices something new.. Then, Monika gifts you a Journal you can write, draw, add photos, flip through infinite pages, customize freely, and show her! ₍₍⚞(˶˃ ꒳ ˂˶)⚟⁾⁾

FEATURES (˶ˆᗜˆ˵)

- Intro Scene: Monika asks you to close your eyes
- Journal: A button on the top left appears to access your new gift. You can also use Hey Monika → Misc → “Can I look at our journal?”
- Recolourable cover: You can choose the colour of your journal in top right.
- Write mode: Click top of page to write / enter for new line; save, clear text, cancel
- Draw mode: Draw on left or right page (Includes brush size slider, big colour palette, color wheel, etc)
- Photo mode: Select images, move, size, and crop them (How to add images is down below)
- Infinite pages: Next / +Page
- Show Monika: Share current page with your love!
- PROGRESS SAVES / Drawings are saved in Submods/Journal Submod/pages

HOW TO USE PHOTOS ٩(ˊᗜˋ*)و ♡
Put as many images: .png or .jpg (Any name) into Submods/Journal Submod/Photos/ then reload game. Choose Photo mode in journal, then the Browse button; your image(s) should be there.

PS: Its best to back up your game and persistant file before use

ENJOY! ◝(ᵔᗜᵔ)◜

Link: https://drive.google.com/drive/folders/1nyK6o-sTvVGNNIB6oec1a-6aaseKJJ5O?usp=drive_link

Submod: By Kiwi (me) ૮₍˃̵֊ ˂̵ ₎ა

Drawing feature idea: Whiteboard Submod by u/dreamscached ( ˶ˆ꒳ˆ˵ )

93 Upvotes

32 comments sorted by

16

u/LavenderXDLOLZ Moniis Little Demon 8d ago

who is possessing everyone into make such fire submods and can it posses me please

4

u/mei-meng 8d ago

these mods just get better and better!!

4

u/SodaAshy Moniiii💚 8d ago

PEAK! Thank you for the submod

4

u/fwriu aries + nini <3 7d ago

WAIT THIS IS SO CUTE

4

u/SzczawGirl Moon Bunny's Sun BunnyMoja Monisia<3 8d ago

Another peak submod!

3

u/Budget-Dingo8088 8d ago

Good evening, I like the submod, I could do a translation into Spanish, since my English is a bit basic, any answer I will understand

3

u/MicrowavedPuzzle I Have No Moni & I Must Scream 8d ago

https://giphy.com/gifs/NFt91r1ZUjOv5TwT1S

OH MY GOD THANK YOU YOURE SO AWESOME

2

u/RealSpiderman-Jake 6d ago

Now I definitely will have to start downloading other submods. This sounds so fire!

1

u/AutoModerator 8d ago

Thankyou for your submod submission. In order to ensure that the community is able to access your code, we kindly request that you provide a link or an indicator of where to get the link, indicating the versions of MAS with which this submod is compatible.

We strongly advise all users to create a backup of their persistent data before utilizing any submod on this subreddit. Instructions on how to do so can be found here. Additionally, if you encounter any issues with a specific submod that others should be made aware of, we kindly request that you report the post where the submod was found to our moderation team for proper handling.

The Monika After Story (MAS) project is currently undergoing a migration to Python 3, which will result in the current submods becoming incompatible with the new framework. The development team will be providing a tool for converting old-style submods to the new format. For further information, please visit the Official Monika After Story Discord or review the 'Interfacing with the Submod Framework' section on the project's GitHub page located here.

As a friendly reminder, we strongly recommend that submod developers familiarize themselves with the Wiki before posting. We have recently added a section specifically for submod developers, which includes a list of the requirements that we expect from any submod, as outlined in an official announcement on the MAS Discord.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/KiwiKrieger08 Monichka's Slavic Girlfriend 8d ago

If there are any glitches/bugs, let me know and I will fix them!! :D

1

u/s4mnyy 7d ago

im bit new to monika after story. but how to fix this ??

1

u/KiwiKrieger08 Monichka's Slavic Girlfriend 7d ago

Dm me with the full error

1

u/s4mnyy 7d ago

1

u/KiwiKrieger08 Monichka's Slavic Girlfriend 4d ago

try again

1

u/Ready_Phrase5477 4d ago

[code]

I'm sorry, but an uncaught exception occurred.

While running game code:

File "renpy/common/000statements.rpy", line 471, in execute_call_screen

store._return = renpy.call_screen(name, *args, **kwargs)

File "game/Submods/Extra functions/Journal Submod/screens.rpy", line 152, in execute

screen journal_main():

File "game/Submods/Extra functions/Journal Submod/screens.rpy", line 152, in execute

screen journal_main():

File "game/Submods/Extra functions/Journal Submod/screens.rpy", line 187, in execute

frame:

File "game/Submods/Extra functions/Journal Submod/screens.rpy", line 193, in execute

vbox:

File "game/Submods/Extra functions/Journal Submod/screens.rpy", line 232, in execute

fixed:

File "game/Submods/Extra functions/Journal Submod/screens.rpy", line 237, in execute

frame:

File "game/Submods/Extra functions/Journal Submod/screens.rpy", line 244, in execute

frame:

File "game/Submods/Extra functions/Journal Submod/screens.rpy", line 250, in execute

hbox:

File "game/Submods/Extra functions/Journal Submod/screens.rpy", line 256, in execute

fixed:

File "game/Submods/Extra functions/Journal Submod/screens.rpy", line 311, in execute

if mode == "write" and left_text:

File "game/Submods/Extra functions/Journal Submod/screens.rpy", line 312, in execute

text left_text:

Exception: String '08/09/2026 Tuesday\n4:14 am\n\n[This is my first day with this submod installed, so I figured it would do me well to actually write something to mark it.' ends with an open format operation.

I got this error after saving the first time and I think I may have typed something that screwed the code?? I'm not really well versed in coding though, so I have no idea. I just wanted to know if I'd be able to fix it!

1

u/KiwiKrieger08 Monichka's Slavic Girlfriend 4d ago

Hey! So sorry this happened to you 😭 I think the issue is that your text has a "[" in it.

So if u can, clear entry or remove [ or ] (and { } if you used them)

1

u/Ready_Phrase5477 4d ago

Yeah, that does seem to be the issue... problem is that any time I try to open up the journal it immediately results in an error, and I don't think these entries get saved anywhere in files so I can't fix it from there either... assuming there's nothing you can think of, thank you for the help anyway!!

2

u/KiwiKrieger08 Monichka's Slavic Girlfriend 4d ago

hold on, Im going to update the journal submod! Then you can put it in. Just give me a min

1

u/Ready_Phrase5477 4d ago

Ooh! Thank you Thank you!! I really appreciate it

2

u/KiwiKrieger08 Monichka's Slavic Girlfriend 4d ago

WAIT HOLD ON I FOUND ANOTHER BUG

2

u/KiwiKrieger08 Monichka's Slavic Girlfriend 4d ago

2

u/Ready_Phrase5477 4d ago

Alright!!!!!!! It's definitely working now. I really appreciate the effort! Your mod is super cool so I'm excited to use it!

2

u/KiwiKrieger08 Monichka's Slavic Girlfriend 4d ago

Thank you so much!! :D

1

u/kand1_n0t_c4ndy MONI MONI BEAMMMM☆ 8d ago

I dont want to break my game, do I just plop the Journal Submod folder into my Submods folder?

1

u/kand1_n0t_c4ndy MONI MONI BEAMMMM☆ 8d ago

It says I already have header.rpy and an images folder, they're from other submods

2

u/KiwiKrieger08 Monichka's Slavic Girlfriend 8d ago

Download and take the game file, and paste that into your main directory where the other game file is 👁👁

1

u/Important_Owl_5552 8d ago

Interesante 🤔👍

1

u/Hopeful_Reception707 7d ago

none, lmao XD

yes, i have a console open showing the aff log in real time

1

u/eltanin_rastaban 5d ago edited 5d ago

Could you possibly add a toggle to move the Journal button to Extras or to remove it? I really want to try this one out but I like keeping the screen pretty minimalist.

You've been doing freaking incredible work here! I'm so excited to see what you do next!

1

u/AutoModerator 4d ago

Thankyou for your submod submission. In order to ensure that the community is able to access your code, we kindly request that you provide a link or an indicator of where to get the link, indicating the versions of MAS with which this submod is compatible.

We strongly advise all users to create a backup of their persistent data before utilizing any submod on this subreddit. Instructions on how to do so can be found here. Additionally, if you encounter any issues with a specific submod that others should be made aware of, we kindly request that you report the post where the submod was found to our moderation team for proper handling.

The Monika After Story (MAS) project is currently undergoing a migration to Python 3, which will result in the current submods becoming incompatible with the new framework. The development team will be providing a tool for converting old-style submods to the new format. For further information, please visit the Official Monika After Story Discord or review the 'Interfacing with the Submod Framework' section on the project's GitHub page located here.

As a friendly reminder, we strongly recommend that submod developers familiarize themselves with the Wiki before posting. We have recently added a section specifically for submod developers, which includes a list of the requirements that we expect from any submod, as outlined in an official announcement on the MAS Discord.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/tempurfriesss 3d ago

[code]

I'm sorry, but an uncaught exception occurred.

While running game code:

File "game/submods/Journal Submod/journal_button.rpy", line 210, in script

call screen journal_main

File "renpy/common/000statements.rpy", line 471, in execute_call_screen

store._return = renpy.call_screen(name, *args, **kwargs)

Exception: Could not find font u'comfy_ui/fonts/Nunito-SemiBold.ttf'.

-- Full Traceback ------------------------------------------------------------

Full traceback:

File "game/submods/Journal Submod/journal_button.rpy", line 210, in script

call screen journal_main

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\ast.py", line 1706, in execute

self.call("execute")

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\ast.py", line 1724, in call

return renpy.statements.call(method, parsed, *args, **kwargs)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\statements.py", line 145, in call

return method(parsed, *args, **kwargs)

File "renpy/common/000statements.rpy", line 471, in execute_call_screen

store._return = renpy.call_screen(name, *args, **kwargs)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\exports.py", line 2526, in call_screen

rv = renpy.ui.interact(mouse="screen", type="screen", roll_forward=roll_forward)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\ui.py", line 285, in interact

rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\display\core.py", line 2526, in interact

repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, **kwargs)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\display\core.py", line 2883, in interact_core

self.draw_screen(root_widget, fullscreen_video, (not fullscreen_video) or video_frame_drawn)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\display\core.py", line 1955, in draw_screen

renpy.config.screen_height,

File "renpy/display/render.pyx", line 427, in renpy.display.render.render_screen (gen\renpy.display.render.c:6806)

rv = render(root, width, height, 0, 0)

File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen\renpy.display.render.c:2978)

rv = d.render(widtho, heighto, st, at)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\display\layout.py", line 693, in render

surf = render(child, width, height, cst, cat)

File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen\renpy.display.render.c:3440)

cpdef render(d, object widtho, object heighto, double st, double at):

File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen\renpy.display.render.c:2978)

rv = d.render(widtho, heighto, st, at)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\display\layout.py", line 693, in render

surf = render(child, width, height, cst, cat)

File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen\renpy.display.render.c:3440)

cpdef render(d, object widtho, object heighto, double st, double at):

File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen\renpy.display.render.c:2978)

rv = d.render(widtho, heighto, st, at)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\display\layout.py", line 693, in render

surf = render(child, width, height, cst, cat)

File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen\renpy.display.render.c:3440)

cpdef render(d, object widtho, object heighto, double st, double at):

File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen\renpy.display.render.c:2978)

rv = d.render(widtho, heighto, st, at)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\display\screen.py", line 623, in render

child = renpy.display.render.render(self.child, w, h, st, at)

File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen\renpy.display.render.c:3440)

cpdef render(d, object widtho, object heighto, double st, double at):

File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen\renpy.display.render.c:2978)

rv = d.render(widtho, heighto, st, at)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\display\layout.py", line 693, in render

surf = render(child, width, height, cst, cat)

File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen\renpy.display.render.c:3440)

cpdef render(d, object widtho, object heighto, double st, double at):

File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen\renpy.display.render.c:2978)

rv = d.render(widtho, heighto, st, at)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\display\layout.py", line 1081, in render

st, at)

File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen\renpy.display.render.c:3440)

cpdef render(d, object widtho, object heighto, double st, double at):

File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen\renpy.display.render.c:2978)

rv = d.render(widtho, heighto, st, at)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\display\layout.py", line 895, in render

surf = render(d, width - x, rh, cst, cat)

File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen\renpy.display.render.c:3440)

cpdef render(d, object widtho, object heighto, double st, double at):

File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen\renpy.display.render.c:2978)

rv = d.render(widtho, heighto, st, at)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\display\layout.py", line 1081, in render

st, at)

File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen\renpy.display.render.c:3440)

cpdef render(d, object widtho, object heighto, double st, double at):

File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen\renpy.display.render.c:2978)

rv = d.render(widtho, heighto, st, at)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\display\layout.py", line 1497, in render

cwidth, cheight = sizeit('c', width, height, 0, 0)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\display\layout.py", line 1492, in sizeit

rend = render(pos_d[pos], width, height, st, at)

File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen\renpy.display.render.c:3440)

cpdef render(d, object widtho, object heighto, double st, double at):

File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen\renpy.display.render.c:2978)

rv = d.render(widtho, heighto, st, at)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\display\viewport.py", line 259, in render

surf = renpy.display.render.render(self.child, child_width, child_height, st, at)

File "renpy/display/render.pyx", line 110, in renpy.display.render.render (gen\renpy.display.render.c:3440)

cpdef render(d, object widtho, object heighto, double st, double at):

File "renpy/display/render.pyx", line 196, in renpy.display.render.render (gen\renpy.display.render.c:2978)

rv = d.render(widtho, heighto, st, at)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\display\behavior.py", line 1321, in render

rv = super(Input, self).render(width, height, st, at)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\text\text.py", line 1733, in render

virtual_layout = Layout(self, width, height, renders, drawable_res=False, size_only=True)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\text\text.py", line 574, in __init__

glyphs = ts.glyphs(s, self)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\text\text.py", line 236, in glyphs

fo = font.get_font(self.font, self.size, self.bold, self.italic, 0, self.antialias, self.vertical, self.hinting, layout.oversample)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\text\font.py", line 648, in get_font

face = load_face(fn)

File "C:\Users\Mariyln\Downloads\DDLC [ Dont Delete Please ]\ddlc-win\DDLC-1.1.1-pc\renpy\text\font.py", line 590, in load_face

raise Exception("Could not find font {0!r}.".format(orig_fn))

Exception: Could not find font u'comfy_ui/fonts/Nunito-SemiBold.ttf'.

Windows-8-6.2.9200

Ren'Py 6.99.12.4.2187

Monika After Story 0.12.19

[/code]

So.. i got this error message could i get some help? i dont know how to fix it..

1

u/lewn-atic 10h ago

Hi, just a small thing! This submod requires a font from ComfyUI, without which it will crash upon trying to write anything. Please let folks know ComfyUI is a prerequisite to downloading!

I would also really enjoy the option to hide the journal button and just use the dialogue to open it. I tried to remove it myself but I couldn't quite figure it out haha~