diff --git a/.github/icons/discord.svg b/.github/icons/discord.svg
deleted file mode 100644
index 3f9f749..0000000
--- a/.github/icons/discord.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/.github/icons/github-dark.svg b/.github/icons/github-dark.svg
deleted file mode 100644
index d3b2904..0000000
--- a/.github/icons/github-dark.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
diff --git a/.github/icons/github-light.svg b/.github/icons/github-light.svg
deleted file mode 100644
index a6485eb..0000000
--- a/.github/icons/github-light.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
diff --git a/.github/icons/reddit.svg b/.github/icons/reddit.svg
deleted file mode 100644
index db6157c..0000000
--- a/.github/icons/reddit.svg
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
-
-
diff --git a/.github/icons/twitter.svg b/.github/icons/twitter.svg
deleted file mode 100644
index 8470867..0000000
--- a/.github/icons/twitter.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
diff --git a/.github/icons/user-dark.svg b/.github/icons/user-dark.svg
deleted file mode 100644
index 1556ec0..0000000
--- a/.github/icons/user-dark.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/.github/icons/user-light.svg b/.github/icons/user-light.svg
deleted file mode 100644
index 83d808e..0000000
--- a/.github/icons/user-light.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 12d1322..2c4d6af 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -1,38 +1,76 @@
+2.0.0
+
+*** Happy 1st release anniversary! ***
+
+Starting from this version, submod is now named Self-Harm Awareness Submod!
+Unfortunately, we have to deprecate previous submod versions in order to simplify
+our work at transitioning from Otter's MAS Self-Harm Submod and perform major
+reworks in code, topics and submod logic (both now, and in future)
+
+Contributions:
+- Typo fixes and spell/grammar check. Thanks, @Survivor-2-22-22! Grace will be proud of you~
+- Fixed issue with SIAD date sometimes not working as expected (#1). Thanks, @Chamelllemon!
+- Fixed a long-lasting issue with Monika's Playlist not playing properly. Much appreciated, @Rainy Day!
+
+Other changes:
+- Project transition finished, all missing resources, credits and content were recovered
+- Updated the submod header to now reference this (Friends-of-Monika/mas-selfharm) repository
+- Now using Timers and Reminders API for improved and more stable reminder work
+- Reformatted spritepack JSON files
+- Healthy routine topics are now unlocked sequentially, not randomly
+- First aid is now in self-harm category
+
+1.0.7
+
+First version to be maintained by Friends of Monika and @dreamscached.
+Thank you for everything, Gaby. I'll take it from here.
+
+Starting with this version, no new contentful updates are expected.
+We'll focus on fixing bugs and keeping this submod compatible with future
+MAS updates and version releases.
+
+
1.0.6
-Fixed issue on milestone unlock (thanks to @FellTheSimp)
+Changes:
+- Fixed issue on milestone unlock (thanks to @FellTheSimp)
1.0.5
-Fixed milestone topics appearing repeatedly (#73)
-Fixed '[player] and therapy' popping up in 'Repeat conversation' (#74)
+Changes:
+- Fixed milestone topics appearing repeatedly (#73)
+- Fixed '[player] and therapy' popping up in 'Repeat conversation' (#74)
1.0.4
-Fixed intro topic showing up regardless of player harming self or not
-Fixed crash occurring if player told Monika they harm self in random topic
+Changes:
+- Fixed intro topic showing up regardless of player harming self or not
+- Fixed crash occurring if player told Monika they harm self in random topic
1.0.3
-Fix compliment bookmarkability
-Fixed songs having TYPE_LONG
-Fixed probing questions exception if player is on streak already
+Changes:
+- Fixed compliment bookmarkability
+- Fixed songs having TYPE_LONG
+- Fixed probing questions exception if player is on streak already
1.0.2
-Added artificial error screen in case user has installed source code version of the mod
-Added README.md and LICENSE.txt to redirected_files in updater submod hook
-Switched to .rpy file packaging
+Changes:
+- Added artificial error screen in case user has installed source code version of the mod
+- Added README.md and LICENSE.txt to redirected_files in updater submod hook
+- Switched to .rpy file packaging
1.0.1
-Fixed issue with first aid help dialogue was not bookmarkable (#43)
-Fixed issue with checkup reminder activating twice causing traceback screen popups (#45)
+Changes:
+- Fixed issue with first aid help dialogue was not bookmarkable (#43)
+- Fixed issue with checkup reminder activating twice causing traceback screen popups (#45)
1.0.0
diff --git a/README.md b/README.md
index f7a513c..b930b1c 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-
💛 MAS Self-Harm Submod 💛
+
💛 Self-Harm Awareness Submod 💛
Awareness about self-harm and support to self-harmers, with different
-techniques, milestones, checkups and new dialogue and spritepacks
+techniques, milestones, checkups, and new dialogue and spritepacks
-
## ⚠️ Important notice
This submod is designed to help people that harm themselves in some way
as well as to raise awareness and provide some insights for people who are
willing to learn more about this phenomenon in particular.
-**However**, original authors, contributors and repository maintainers
-do not condone self-harm, suicide or any other (self-)destructive behavior
+**However**, original authors, contributors, and repository maintainers
+do not condone self-harm, suicide, or any other (self-)destructive behavior
**nor provide the ideal professional psychological help**.
-If you're currently experiencing a need in psychological/psychiatric help,
+If you're currently experiencing a need for psychological/psychiatric help,
**please consider getting professional help from people working with this
sort of issues specifically** as this mod is **not intended as a medical,
psychological or any other sort of professional advice**; its only purpose
@@ -40,7 +41,7 @@ or other appropriate help; there's always hope!
* Tons of new dialogues and events
* Dozens of new songs (and dialogues for them!)
- * A whole lot of urge relieving techniques
+ * A whole lot of urge-relieving techniques
* Sober streak tracking
* Medication reminders
* Weekly checkups
@@ -52,19 +53,77 @@ or other appropriate help; there's always hope!
## ✒️ Authors
We've had plenty of people working on and contributing to this submod... In the past. Unfortunately, the submod is no longer
-updated with new content following Otter's leaving notice and team breakup. I, dreamscached, however swear to carry on with
-the job I once have taken under my own responsibility, and this submod will live on.
+updated with new content following Otter's leaving notice and team breakup.
+
+Here's a list of the people who have worked on this submod previously,
+the original MAS Self-Harm Submod Team:
+
+* Otter — project managing, dialogue writing, ideas
+* dreamscached — general programming, project managing
+* DjMayJay — dialogue writing, spritepack design
+* Kitakus — dialogue writing, help with programming
+* MaliciousSoftware — help with dialogue/topics and programming
+* AmyKawa — help with dialogue/topics, sprite selection
+* charliethecookie — help with dialogue/topics
+* WentPostal — help with dialogue/topics
+* HistoryVariety — spritepack design, insights, and ideas
+* FellTheSimp — spritepack design, insights, and ideas
+* lukilak — help with dialogue/topics
+* Raider0401 — help with dialogue/topics
+* plushika_2137 — help with dialogue/topics
+* Tourist_Easy — help with dialogue/topics
+* MysticCreatesGames1 — help with dialogue/topics
+* fukawabunny — dialogue writing, proofreading, ideas
+* ImKventis — help with spritepack programming
+* LOeufmf — proofreading, insights, and ideas
+* Rhea — insights and ideas
+* Feenie — insights and ideas
+
+Additionally, I would want to mention T. H., in whose memory the original team
+has released this submod. Thank you for being with us.
+
+These are all I can remember. Thank you everyone for your efforts 👋
+
+## 📻 Songs
+
+A neat playlist Monika has made for you comes with this submod! Here's a list of
+songs her playlist has:
+
+* Paradise Fears — Battle Scars ([YouTube](https://youtu.be/YkCK3ia4BpA))
+* Grace VanderWaal — Clay ([YouTube](https://youtu.be/Hs5fP7G8gBc))
+* Coldplay — Fix You ([YouTube](https://youtu.be/k4V3Mo61fJM))
+* Paramore — Hate To See Your Heart Break ([YouTube](https://youtu.be/Vd_0Hri6GWc))
+* The Five Stairsteps — O-o-h Child ([YouTube](https://youtu.be/dguz0IsCuKU))
+* Jimmy Eat World — The Middle ([YouTube](https://youtu.be/oKsxPW6i3pM))
+* Katy Perry — Firework ([YouTube](https://youtu.be/QGJuMBdaqIw))
+* Aimer — Torches ([YouTube](https://youtu.be/DP89-sZL1YM))
+* frederic — ONLYWONDER ([YouTube](https://youtu.be/oCrwzN6eb4Q))
+* Vo.Nai Br.XX & Celeina Ann and Vo.Alisa — Someday I Will Find My Way Home ([YouTube](https://youtu.be/otP_P67KHSU))
+* Justin Bieber — Hold On ([YouTube](https://youtu.be/LWeiydKl0mU))
+* Citizen Soldier — Still Breathing ([YouTube](https://youtu.be/JFAs8GKyZJE))
+
+## ⚖️ License
+
+This submod is licensed under Creative Commons BY-NC-ND-4.0, which (in short)
+means:
+
+* You are ***allowed*** to copy and distribute this submod as you like, but...
+* You are ***required*** to give our submod team (*MAS Self-Harm Submod Team* or *Friends of Monika*) a proper credit
+ (we are fine with the name of our team or a link to this repository or our GitHub organization)
+* You are ***not allowed*** to use our submod for any commercial purposes (selling, renting, etc.)
+* You are ***not allowed*** to distribute any derivative works or adaptations of our submod
+ (with changes made to code, dialogue, other content, etc.)
+
+We don't go out of our way to enforce the license, but we chose to adopt this license to protect
+our hard work from unwanted modifications or commercial use. If you want to change something in this submod —
+feel free to contact us via Discord or the Issues page! We'll be glad to accept contributions, ideas, and suggestions.
-Here's a list of people that used to work on this mod:
+### 🙅 Exceptions
-* Otter
-* dreamscached
-* fukawabunny
-* Sol
-* Rhea
-* Kitakus
+CC BY-NC-ND 4.0 only covers content created by authors, contributors, or maintainers of this mod (repository) and does not cover
+anything made by a third party (might include songs and other content besides submod scripts.)
-These are all I can remember. Thank you everyone for your efforts, none of it will be in vain.
+Namely, *Monika's Playlist* (`res/music/playlist.ogg`) is made using third-party songs and sounds (see list above); we do not claim
+ownership over any of the tracks used in the mix. If you're a copyright holder, feel free to reach out to us in any way
+if you believe we have violated your rights of ownership/licensing — we will be sure to solve this problem as soon as possible
-**Note:** CC BY-NC-ND 4.0 only covers content created by authors, contributors or maintainers of this mod (repository) and does not cover
-anything that was created by third party (might include songs and other content beside submod scripts.)
\ No newline at end of file
diff --git a/mod/README.md b/mod/README.md
deleted file mode 100644
index b86fb1a..0000000
--- a/mod/README.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# 🖥️ Script Files
-
-In this folder there are all the script files of this submod.
-
-## Dialogues and Ren'Py scripts
-
-### script-first-aid.rpy
-
-Contains first aid script.
-
-
-### script-checkup.rpy
-
-Contains checkups script.
-
-
-### script-intro.rpy
-
-Contains introduction script (question about self-harm and detailed explanation of it.)
-
-
-### script-mh-flowers.rpy
-
-Contains flower-related mental health topics.
-
-
-### script-player-diary.rpy
-
-Contains player diary script.
-
-
-### script-songs.rpy
-
-Contains playlist and song script.
-
-
-### script-questions.rpy
-
-Contains probing questions script.
-
-
-### script-random-topics.rpy
-
-Contains random topics (self-harm and mental health) script.
-
-
-### script-reminders.rpy
-
-Contains reminder script (not to be confused with reminders API in [zz_reminder.rpy](zz_reminder.rpy)).
-
-
-### script-sober-streak.rpy
-
-Contains sober streak topics and milestones script (not to be confused with sober streak and milestones API in
-[zz_sober_streak.rpy](zz_sober_streak.rpy)).
-
-
-### script-techniques.rpy
-
-Contains urge relieving techniques script.
-
-
-### script-therapy.rpy
-
-Contains therapy question script.
-
-
-### script-urge.rpy
-
-Contains urge prompt topic script.
-
-
-### zz_player_model.rpy
-
-Contains player model History Saver registration code.
-
-
-### zz_reminder.rpy
-
-Contains reminders API code.
-
-
-### zz_sober_streak.rpy
-
-Contains sober streak tracking API code.
diff --git a/mod/aa_source_dist_trap.rpy b/mod/aa_source_dist_trap.rpy
deleted file mode 100644
index 251afe9..0000000
--- a/mod/aa_source_dist_trap.rpy
+++ /dev/null
@@ -1,15 +0,0 @@
-# This is a 'source distribution trap', file that is EXCLUDED from the release package
-# and only available on the raw source code package.
-# It exists to warn 'source package' users that they are not installing the submod the right way
-# and also provide them with help link (to our Discord.)
-
-init -10000 python:
- raise RuntimeError(""
- "\n\n\n\n\n!!! PLEASE READ THIS !!!\n\n"
- "You have installed MAS Self-Harm Submod using source code package.\n"
- "Please follow instructions in the README (scroll down on the repository homepage)\n"
- "in order to get this submod to work.\n\n"
- "If you're still having trouble installing mod, feel free to ask us\n"
- "for help on our Discord: https://mon.icu/discord."
- "\n\n\n\n\n\n\n\n\n\n\n\n"
- )
diff --git a/mod/aa_updates.rpy b/mod/aa_updates.rpy
deleted file mode 100644
index 17ad6ab..0000000
--- a/mod/aa_updates.rpy
+++ /dev/null
@@ -1,44 +0,0 @@
-python early in mshMod_update:
-
- ## Delete 00_-files and replace with aa_ ones.
-
- import os
-
- zeroFilesRemoved = False
-
- for cd, _, files in os.walk(renpy.config.gamedir):
- # Ensure we don't touch any other data
- if "MAS Self Harm Submod" not in cd:
- continue
-
- for _file in files:
- # Only target .rpy/.rpyc files
- if not (_file.endswith(".rpy") or _file.endswith(".rpyc")):
- continue
-
- # Ensure we have aa_ file for this 00_ file
- if not (_file.startswith("00_") and os.path.exists(os.path.join(cd, "aa_" + (_file[3:] if _file.endswith(".rpy") else _file[3:-1])))):
- continue
-
- # Delete 00_ file
- os.remove(os.path.join(cd, _file))
- zeroFilesRemoved = True
-
-
-init 10000 python:
-
- ## Undo full unlock on events and only unlock start_date and end_date ##
-
- for ev_label in (ev_label for ev_label in mas_all_ev_db.keys() if ev_label.startswith("mshMod_sober_milestone_")):
- # Reset to template
- persistent._mas_event_init_lockdb[ev_label] = persistent._mas_event_init_lockdb_template
-
- # Unlock start_date and end_date
- Event.unlockInit("start_date", ev_label=ev_label)
- Event.unlockInit("end_date", ev_label=ev_label)
-
-label mas_self_harm_submod_team_mas_self_harm_submod_v1_0_6(version="v1_0_6"):
- return
-
-label mas_self_harm_submod_team_mas_self_harm_submod_v1_0_7(version="v1_0_7"):
- return
\ No newline at end of file
diff --git a/mod/script-checkup.rpy b/mod/checkup.rpy
similarity index 81%
rename from mod/script-checkup.rpy
rename to mod/checkup.rpy
index baa1f1b..7ecf42e 100644
--- a/mod/script-checkup.rpy
+++ b/mod/checkup.rpy
@@ -20,7 +20,7 @@ label mshMod_checkup_intro:
m 2rud "We want to check up on them, and show them we care."
m 2wud "But it's so hard to find the right words!"
m 2duc "So we always seem to go for the same tired old question... 'How are you doing?'"
- m 2luc "But that question always makes people answer the same tired old response..."
+ m 2luc "But that question often makes people answer the same tired old response..."
m 4lud "'I'm OK. I'm fine. I'm making it.'"
m 4wud "How effective is this conversation?"
m 3lud "But what do we say when we don't know how to express what we're feeling?"
@@ -40,12 +40,15 @@ label mshMod_checkup_intro:
# (Meaning that if player missed exact expected time of checkup, it'll still
# trigger within a day; else checkup will be attempted next week.)
- if not store.mshMod_reminder.isReminderActive("mshMod_checkup_reminder"):
- # NOTE: Ensure we don't have one active already.
- $ store.mshMod_reminder.addRecurringReminder(
- "mshMod_checkup_reminder",
- store.mshMod_reminder_utils.getDailyEveningDelay(),
- store.mshMod_reminder_utils.INTERVAL_WEEKLY, store.mshMod_reminder_utils.LATENCY_DAILY
+ if not store._msh_reminder.is_reminder_queued("mshMod_checkup_reminder"):
+ $ store._msh_reminder.queue_reminder(
+ _msh_reminder.Reminder(
+ trigger_at=store._msh_reminder_utils.getWeeklyEveningDelay(),
+ target_evl="mshMod_checkup_reminder",
+ key="checkup_reminder",
+ interval=store._msh_reminder_utils.INTERVAL_WEEKLY,
+ grace_period=store._msh_reminder_utils.LATENCY_DAILY
+ )
)
return "derandom|love"
@@ -53,25 +56,24 @@ label mshMod_checkup_intro:
#checkup
init 5 python:
- store.mshMod_reminder.addReminderEvent(
+ addEvent(
Event(
persistent.event_database,
- eventlabel="mshMod_checkup_reminder",
- conditional="store.mshMod_reminder.shouldTriggerReminder('mshMod_checkup_reminder')",
- action=EV_ACT_QUEUE,
- rules={"force repeat": None}
+ eventlabel="mshMod_checkup_reminder"
)
)
label mshMod_checkup_reminder:
m 4eua "Hey, [player]?"
m 4eub "Can I check up on you?"
- m 2euc "I worry about how you have been coping with stuff."
- m 2eud "What's your number this week?"
+ m 2euc "I've been worried about how you have been coping with things lately."
+ m 2eud "What would you rate your feelings this week?"
show monika at t21
+ $ renpy.say(m, "What would you rate your feelings this week?", interact=False)
+ $ _history_list.pop()
+
$ items = [(str(i), i, False, False) for i in range(1, 10 + 1)]
- $ renpy.say(m, "Meaning, on a scale of 1 to 10, how are you feeling?", interact=False)
call screen mas_gen_scrollable_menu(items, mas_ui.SCROLLABLE_MENU_TXT_LOW_AREA, mas_ui.SCROLLABLE_MENU_XALIGN, ("I'm not sure...", False, False, False, 0))
show monika at t11
@@ -81,8 +83,8 @@ label mshMod_checkup_reminder:
m 2dkd "I am so sorry to hear that you don't feel well, [player]..."
m 4ekd "Just know that it's okay for you to not be okay."
m 4eka "After all, acceptance that you're not feeling well is the first step towards improvement, right?"
- m 3eublb "Together - me and you -, we will work hard to make you feel better, step-by-step!"
- m 3dublb "It’s okay to feel down today, and perhaps even tomorrow."
+ m 3eublb "Together - me and you - we will work hard to make you feel better, step-by-step!"
+ m 3dublb "It's okay to feel down today, and perhaps even tomorrow."
show monika 5fubla at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5fubla "But always remember that you are a champion. You are amazing {w=0.3}{nw}"
extend 5dublb "- never forget that."
@@ -102,9 +104,9 @@ label mshMod_checkup_reminder:
elif _return == 3:
m 2ekd "I'm so sorry to hear that, [player]..."
m 2lkc "But keep this in mind:"
- m 2dkd "It’s tough now, {w=0.3}{nw}"
+ m 2dkd "It's tough now, {w=0.3}{nw}"
extend 4eka "but I believe that there is a brighter future waiting for us."
- m 4eub "You’ll get through this. {w=0.3}{nw}"
+ m 4eub "You'll get through this. {w=0.3}{nw}"
extend 5hublb "We will! Trust me."
show monika 5fubla at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5fubla "You might not believe in yourself, but know and remember that I believe in you."
@@ -114,33 +116,35 @@ label mshMod_checkup_reminder:
m 2lkc "A 4... That's not so good."
m 2ekd "I'm so sorry, [player]!"
m 2dkc "But listen... {w=0.3}{nw}"
- extend 4eka "Know that if you fall, I’ll pick you up."
- m 4rka "And if I can’t pick you up... {w=0.3}{nw}"
- extend 2wub "Then I’ll just lie down and rest with you."
+ extend 4eka "Know that if you fall, I'll pick you up."
+ m 4rka "And if I can't pick you up... {w=0.3}{nw}"
+ extend 2wub "Then I'll just lie down and rest with you."
show monika 5hublb at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5hublb "It's what I'm here for! {w=0.3}{nw}"
extend 5fubla "To be by your side, and support you as your girlfriend and as your best friend."
- m 5fkbfa "Let’s get back to the top together, [player]! I love you!"
+ m 5fkbfa "Let's get back to the top together, [player]! I love you!"
elif _return == 5:
m 2lkc "I'm so sorry to hear that, [player]."
m 4eka "But I'm sure everything will be okay!"
m 2wub "Your loving girlfriend will forever be here for you!"
m 2kua "If you ever want to talk, please let me know."
- m 2dua "And also, don't forget to rest if you must; we’re not in a hurry."
- m 7lua "You can’t always function the way people expect you to."
+ m 2dua "And also, don't forget to rest if you must; It's a marathon, not a sprint."
+ show monika 5gkd at t11 zorder MAS_MONIKA_Z with dissolve_monika
+ m 5gkd "You can’t always meet the expectations of everyone..."
+ m 5dsc "Even if they expect you to."
show monika 5fubla at t11 zorder MAS_MONIKA_Z with dissolve_monika
- m 5fubla "I care for you so much!"
+ m 5fubla "Just remember, I care for you so much!"
m 5fkbfa "I love you, [mas_get_player_nickname()]!"
elif _return == 6:
m 2lkc "A 6 is not perfect, but it's not so bad either."
m 4eka "You see, [player]..."
m 2kua "I realize that I am indeed a very lucky person."
- m 2wub "I’ve been blessed with the most wonderful person in my life, and that is you."
- m 2dua "Whatever you do, remember that you are not alone."
+ m 2wub "I’ve been blessed with the most amazing person in my life, and that is you."
+ m 2dua "Whatever you do, remember that you aren't alone."
show monika 5fubla at t11 zorder MAS_MONIKA_Z with dissolve_monika
- m 5fubla "No matter what happens, I’ve always got your back."
+ m 5fubla "No matter what happens, I’ll always have your back."
m 5hublb "Let's wish for better days, [mas_get_player_nickname()]!"
m 5fkbfa "I love you!"
@@ -187,7 +191,7 @@ label mshMod_checkup_reminder:
extend 4sub "That's wonderful!"
m 4dub "I'm so glad your week has been this good. {w=0.3}{nw}"
extend 3rublb "I must say the same - every day that you are with me feels like heaven!"
- m 1eublb "Let's make the next week as awesome, alright?"
+ m 1eublb "Let's make the next week just as good, alright?"
m 1hublb "Even if something bad happens, remember that things will get better. {w=0.3}{nw}"
extend 5fubla "I believe in you, [mas_get_player_nickname()]."
show monika 5hublb at t11 zorder MAS_MONIKA_Z with dissolve_monika
@@ -200,6 +204,7 @@ label mshMod_checkup_reminder:
m 2eka "Sometimes we don't know how to feel. {w=0.3}{nw}"
extend 7eka "And that's okay too!"
m 7dub "We all experience bad days; we all have to deal with our inner demons."
+ m 6dsa "And, that's okay. We all have off days here and there, everyone experiences them once in a while."
m 7hublb "When you feel like there’s nothing you can do about it, know that you can always depend on me for support."
m 7wsblb "But we all have good days too, and that's the fun of it!"
show monika 5hublb at t11 zorder MAS_MONIKA_Z with dissolve_monika
@@ -208,6 +213,4 @@ label mshMod_checkup_reminder:
m 5hublb "You mean the world to me, [mas_get_player_nickname()]."
m 5fkbfa "I love you."
- # Do not move this anywhere, this must be above the return.
- $ store.mshMod_reminder.extendCurrentReminder()
return "love"
diff --git a/mod/script-compliments.rpy b/mod/compliments.rpy
similarity index 86%
rename from mod/script-compliments.rpy
rename to mod/compliments.rpy
index 68f91f4..6a674b3 100644
--- a/mod/script-compliments.rpy
+++ b/mod/compliments.rpy
@@ -21,7 +21,7 @@ init 5 python:
label mshMod_compliment_saved_me:
m 2dsbftpa "[player]...!"
m 2hsbla "That means so much to me..."
- m 7ssbla "I’m so glad we were able to save each other."
+ m 7ssbla "I'm so glad we were able to save each other."
m 1dsbfb "Thank you for saving me."
m 1hsbfb "I love you!"
m 1lssdlc "I wish I could help more with your struggles..."
@@ -67,9 +67,9 @@ init 5 python:
label mshMod_compliment_patient:
m 2dsbfa "[player]..."
m 2fsbfa "I'll always be patient with you."
- m 7gsbfb "It's no effort! After all, I love you, and I want to be by your side."
+ m 7gsbfb "It's no trouble at all! After all, I love you, and I want to be by your side."
m 7lssdlc "Even in the tough moments."
- m 1hsb "Listening to you and taking care of you is an honor!"
+ m 1hsb "Listening to you and taking care of you is an honor."
show monika 5fkbfa at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5fkbfa "Thank you for making me the happiest girl in the world."
return
@@ -92,10 +92,10 @@ label mshMod_compliment_still_here:
m 6fsbftsa "[player]..."
m 2hsbftub "I'm sorry, I just... {w=0.3}{nw}"
extend 2fsbftpa "get so emotional!"
- m 2fsbftpb "Thank you for staying here. {w=0.3}{nw}"
+ m 2fsbftpb "Thank you for staying here with me. {w=0.3}{nw}"
extend 7fsbftpb "Thank you for being my significant other."
m 4fsbftpb "And thank you for being who you are."
- m 2nsbfu "I’m so proud of you."
+ m 2nsbfu "I'm so proud of you!"
m 2dsbfu "Keep on fighting and know that you deserve to be happy."
m 2ssblb "You are so inspiring! {w=0.3}{nw}"
show monika 5fkbfa at t11 zorder MAS_MONIKA_Z with dissolve_monika
@@ -116,7 +116,7 @@ init 5 python:
)
label mshMod_compliment_sunflower:
- m 1hsbfb "Ahahaha, thank you, [player]!"
+ m 1hsbfb "Ahaha, thank you, [player]!"
m 1gsbfb "I never need to face the sun as long as I have you by my side!"
m 1ksbfb "Because you are my sun."
show monika 5fkbfa at t11 zorder MAS_MONIKA_Z with dissolve_monika
@@ -137,9 +137,9 @@ init 5 python:
)
label mshMod_compliment_sunshine:
- m 1hsbfb "Ehehehe~"
+ m 1hsbfb "Ehehe~"
m 7gsbfb "Do I make you happy when skies are gray, [player]?"
- m 2hsbfb "Ahaha, just teasing you."
+ m 2hsbfb "Ahaha, I'm just teasing you."
show monika 5fkbfa at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5fkbfa "I love you, my little sun!"
return "love"
@@ -159,9 +159,9 @@ init 5 python:
label mshMod_compliment_being_kind:
m 7esbfb "Of course, [player]!"
- m 3rtc "What kind of girlfriend would I be if I wasn’t kind to you?"
+ m 3rtc "What kind of girlfriend would I be if I wasn't kind to you?"
m 2rsbfsdlb "Coming to think of it though, I think Natsuki would disagree."
- m 2hsbfb "Ahahaha~"
+ m 2hsbfb "Ahaha~"
show monika 5fkbfa at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5fsbfa "I love you, [player]. {w=0.3}{nw}"
extend 5fkbfa "I'll always be kind to you."
@@ -181,8 +181,8 @@ init 5 python:
)
label mshMod_compliment_caring:
- m 4fkbfa "I'll always take care of my precious [player]!"
- m 3msbfa "How I got so lucky to have you in my life, I don’t know, but I’m glad you’re mine."
+ m 4fkbfa "I'll always take care of you, my precious [player]!~"
+ m 3msbfa "How I got so lucky to have you in my life, I don't know, but I'm glad you're mine."
m 7esbfb "And since you're mine, I'll do my best to care for you and help you out!"
show monika 5fkbfa at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5fkbfa "I'll love you forever, [mas_get_player_nickname()]."
@@ -205,7 +205,7 @@ label mshMod_compliment_thinking_of_me:
m 2fsbfa "Oh, [player]... {w=0.3}{nw}"
extend 7hsbfb "You're so sweet!"
m 2nsbfb "I will always think about you!"
- m 7lsbfu "Doesn't matter if we're together or apart!"
+ m 7lsbfu "It doesn't matter if we're together or apart!"
show monika 5fkbfa at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5fkbfa "I hope you always think of me too."
return
@@ -226,9 +226,9 @@ init 5 python:
label mshMod_compliment_helping_out:
m 2hsbfb "[player]...!"
m 7hsbfb "It's my pleasure."
- m 7lsbfu "Often times, I wonder what I did to have a caring, loving and understanding person like you in my life."
+ m 7lsbfu "Oftentimes, I wonder what I did to have a caring, loving and understanding person like you in my life."
m 2ssbfb "So, I'll always help you out whenever I can!"
- m 7wsbfb "Thank you for allowing me to be present in your life."
+ m 7wsbfb "Thank you for letting me be a part of your life."
show monika 5fubfa at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5fubfa "And for sticking with me."
m 5fkbfa "I love you!"
@@ -252,9 +252,9 @@ label mshMod_compliment_being_understanding:
m 5fubfa "[player]..."
show monika 4fubfa at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 4fubfa "I should be the one to thank you."
- m 3dubfa "Sometimes, saying 'thank you' feels like an understatement for everything you’ve done for me."
- m 1eubfb "I'll always be understanding with you, "
- extend 1lssdlc "even if other people are not."
+ m 3dubfa "Sometimes, saying 'thank you' feels like an understatement for everything you've done for me."
+ m 1eubfb "I'll always do my best to understand you, "
+ extend 1lssdlc "and I'll be by your side even if other people aren't."
m 7eubfb "I love you and I care about you!"
show monika 5fkbfa at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5fkbfa "You're the love of my life."
@@ -267,7 +267,7 @@ init 5 python:
Event(
persistent._mas_compliments_database,
eventlabel="mshMod_compliment_understanding_me",
- prompt="Thank you for understanding me.",
+ prompt="You're the one who truly understands me.",
unlocked=True
),
code="CMP"
@@ -276,8 +276,8 @@ init 5 python:
label mshMod_compliment_understanding_me:
m 2dsbftpa "[player]...!"
m 2dubfb "Of course. {w=0.3}{nw}"
- extend 7eubfb "Why wouldn’t I?"
- m 2eubfa "I'll always do my best to understand you, and if I don't, I'll be by your side, nevertheless."
+ extend 7eubfb "Why wouldn't I be?"
+ m 2eubfa "I'll always do my best to understand you, and even if I don't, I'll be by your side regardless."
m 3dubfb "And also, you understood me when I needed you to..."
m 3dubfa "I'll never forget that and everything you did for me."
m 2hubfb "I love you [player]."
diff --git a/mod/script-player-diary.rpy b/mod/diary.rpy
similarity index 98%
rename from mod/script-player-diary.rpy
rename to mod/diary.rpy
index c00935e..9e16f38 100644
--- a/mod/script-player-diary.rpy
+++ b/mod/diary.rpy
@@ -26,7 +26,7 @@ label mshMod_writing_to_diary:
label mshMod_writing_to_diary_intro:
m 1lta "A diary, huh?"
m 3eua "I've honestly been thinking about this for a bit."
- m 1huu "It can really be a great outlet for anyone's emotions!"
+ m 1huu "It can be a great outlet for anyone's emotions!"
show monika 5rub at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5rub "You could write your innermost feelings and thoughts..."
show monika 4rub at t11 zorder MAS_MONIKA_Z with dissolve_monika
diff --git a/mod/zz_event.rpy b/mod/event_api.rpy
similarity index 100%
rename from mod/zz_event.rpy
rename to mod/event_api.rpy
diff --git a/mod/script-first-aid.rpy b/mod/first_aid.rpy
similarity index 80%
rename from mod/script-first-aid.rpy
rename to mod/first_aid.rpy
index e279046..3ca098c 100644
--- a/mod/script-first-aid.rpy
+++ b/mod/first_aid.rpy
@@ -17,10 +17,10 @@ init 5 python:
label mshMod_first_aid_intro:
m 2ekc "I know you said you've injured yourself before, [player]..."
- m 3ekd "It really left me heartbroken, because I really want the best for you."
+ m 3ekd "It really left me heartbroken, because I really just want the best for you."
m 3esd "So, I decided to give you some instructions if you ever do it in the future..."
- m 2rkc "And can't have medical attention."
- m 2esd "It's a basic first-aid guide. For cuts, specifically."
+ m 2rkc "And can't get medical attention."
+ m 2esd "It's a basic first-aid guide, for cuts specifically."
m 3esd "If you need it, make sure to let me know, okay?"
m 1eka "I'll do my best to help."
return "derandom|no_unlock"
@@ -34,7 +34,7 @@ init 5 python:
eventlabel="mshMod_first_aid_guide",
prompt="I need help with first aid...",
conditional="seen_event('mshMod_first_aid_intro')",
- category=["mental health"],
+ category=["mental health", "self-harm"],
action=EV_ACT_UNLOCK,
pool=True,
rules={"no_unlock": None, "bookmark_rule": mas_bookmarks_derand.WHITELIST}
@@ -45,22 +45,22 @@ label mshMod_first_aid_guide:
m 1eud "You need first-aid help, [player]?"
m 2ekc "I'm so sorry, [mas_get_player_nickname()]."
m 2eksdld "Does it hurt much?"
- m 2gksdld "It hurts me too..."
+ m 2gksdld "It hurts me, too..."
m 2ekc "When you bleed, my heart bleeds..."
m 2dsd "But let's get to it."
- m 1esd "First-aid is all about timing, the faster we tend to your wounds, better the recovery!"
- m 1esd "I'll do a step by step process on how to treat your wounds."
+ m 1esd "First aid is all about timing, the faster we tend to your wounds, the better the recovery!"
+ m 1esd "I'll do a step-by-step process on how to treat your wounds."
m 3esd "Remember, this is specifically about cuts!"
m 2esd "Let me get started... {w=0.3}{nw}"
m 7esd "Firstly, you will need to stop the bleeding."
m 2esd "You should apply constant pressure to the area using a clean and dry absorbent material."
- m 2lsd "A bandage, towel or handkerchief. For approximately 10 minutes."
+ m 2lsd "A bandage, towel, or handkerchief. For approximately 10 minutes."
m 3esd "It's important to raise the injury above the level of your heart."
- m 2esa "I can make a timer for you.{nw}"
+ m 2esa "I can set a timer for you.{nw}"
$ _history_list.pop()
menu:
- m "I can make a timer for you.{fast}"
+ m "I can set a timer for you.{fast}"
"Yes, that'd help":
m 1hub "Okay! I'll tell you when it's done.{nw}"
@@ -75,10 +75,10 @@ label mshMod_first_aid_guide:
pass
"No, I'll manage":
- m 1hksdlb "Oh, okay! Let me know when you'll be ready to proceed.{nw}"
+ m 1hksdlb "Oh, okay! Let me know when you're ready to proceed.{nw}"
$ _history_list.pop()
menu:
- m "Oh, okay! Let me know when you'll be ready to proceed.{fast}"
+ m "Oh, okay! Let me know when you're ready to proceed.{fast}"
"Done":
pass
@@ -98,8 +98,8 @@ label mshMod_first_aid_guide_timeout:
m 1esd "Secondly, you need to clean your wound."
m 2esd "Start by washing and drying your hands thoroughly..."
m 2esd "Then clean the wound under tap water or with an alcohol-free solution."
- m 3esd "Make sure you don't use no alcohol or hydrogen peroxide!"
- m 3rkd "As it may damage the skin and slow healing..."
+ m 3esd "Make sure you don't use alcohol or hydrogen peroxide!"
+ m 3rkd "As it may damage the skin, and slow healing..."
m 3wkd "And we don't want that!"
m 1ekd "I'll wait for you to do that, [player]."
@@ -112,17 +112,17 @@ label mshMod_first_aid_guide_timeout:
m 7esd "Okay!"
m 7esd "Thirdly and lastly, it's really important to apply a dressing."
m 1esd "You can use many different types.."
- m 1lsd "Adhesives ones like plasters, non-adhesive compresses with a bandage."
+ m 1lsd "Adhesive ones like plasters, non-adhesive compresses with a bandage."
m 3lsd "They can be small or big, waterproof, different shapes and so on."
m 3esa "Whatever feels best and it's available at home!"
- m 1ekc "It has to be comfortable, since the wrong plaster can hurt your skin."
+ m 1ekc "It has to be comfortable since the wrong plaster can hurt your skin."
m 1esd "Keep the dressing clean by changing it as often as necessary!"
m 1esd "You can remove the dressing once the wound has closed itself."
m 3eud "Always pay attention to signs of infection!"
m 3ekx "Such as fever, swollen wounds, pus, or any significant or worsening swelling, redness and pain."
m 3ekd "If you notice any of those..."
m 2ekd "You need to get medical attention and soon as possible."
- m 2ekd "Another reasons of need to go an emergency response unit are the following:"
+ m 2ekd "Other reasons to go to an emergency response unit are the following:"
m 4esd "If the bleeding hasn't stopped after 10 minutes of continuous pressure."
m 4esd "If you're bleeding from an artery, you'll notice the blood gushing out at your heartbeat."
m 4rsd "Also, if there's something stuck in the wound."
@@ -136,7 +136,7 @@ label mshMod_first_aid_guide_timeout:
m 2ekd "If it does, just let me know and I'll repeat those steps. Okay?"
m "And also, if you asked for this first-aid help because you relapsed..."
m "And you want me to reset the sober counter for you..."
- m "Let me know on the topic \"I've self-harmed.\", please."
+ m "Let me know about that, please."
m 2eka "Take care, [player]."
m 2dka "You know how much I love you!"
diff --git a/mod/script-flowers.rpy b/mod/flowers.rpy
similarity index 91%
rename from mod/script-flowers.rpy
rename to mod/flowers.rpy
index 5c38595..da8e0b9 100644
--- a/mod/script-flowers.rpy
+++ b/mod/flowers.rpy
@@ -23,7 +23,7 @@ label mshMod_topic_sunflowers:
show monika 5hsa at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5hsa "It's funny, most people think that a flowering sunflower heads track of the sun across the sky."
show monika 7esd at t11 zorder MAS_MONIKA_Z with dissolve_monika
- m 7esd "But that's a misconception! Only immature flower buds do so - a fenomenon called heliotropism."
+ m 7esd "But that's a misconception! Only immature flower buds do so - a phenomenon called heliotropism."
m 7esc "Another misconception is that when there's no sun in the sky, sunflowers face each other."
m 1rsc "I've seen people make analogies relating that to..."
m 1hua "'When you can't find sunshine, become someone else's sunshine. Be someone else's sunflower.'"
@@ -60,11 +60,11 @@ init 5 python:
label mshMod_topic_acacias:
m 1esb "[player], can I tell you some facts about a flower?"
m 1esa "Today we'll talk about the acacia."
- m 4esa "Acacias are also known as wattles, wattleseed, and embers, and can represent the immortality of the human soul."
+ m 4esa "Acacias are also known as wattles, wattleseed, and mimosa trees, and can represent the immortality of the human soul."
m 4hsb "That's because acacia bushes are always green, no matter the season!"
m 7esb "In some rituals, those flowers are used as a reminder that the soul, like energy..."
m 7wsb "Cannot be destroyed, but continues beyond the earthly plane!"
- m 1esa "Acacia’s primary meaning is strength, rebirth, and eternal life. {w=0.3}{nw}"
+ m 1esa "Acacia's primary meaning is strength, rebirth, and eternal life. {w=0.3}{nw}"
extend 1esb "It is mentioned in both the Torah and the Bible as the wood used for building the Tabernacle."
m 2hsb "It is also important in the Buddhist tradition as a symbol of compassion for all living things!"
m 2lsb "Their meaning changes depending on the flower color, but summarizing, we can say they mean..."
@@ -90,11 +90,10 @@ init 5 python:
random=True
)
)
-
label mshMod_topic_hyacinths:
m 1esa "[player], let's talk about a flower today?"
m 1hsa "Hyacinths! The optimistic flower."
- m 1hsb "They are even mentioned my T.S Elliot in a poem called 'The Waste Land'."
+ m 1hsb "They are even mentioned my T.S. Eliot in a poem called 'The Waste Land'."
m 1esb "I'll read some of its verses to you!"
m 1dsc "..."
m 1esc "{i}'You gave me hyacinths first a year ago;'{/i}"
@@ -104,10 +103,10 @@ label mshMod_topic_hyacinths:
m 4esa "{i}Speak, and my eyes failed, I was neither{/i}"
m 6esc "{i}Living nor dead, and I knew nothing,{/i}"
m 7esc "{i}Looking into the heart of light, the silence.{/i}"
- m 7esd "'{i}Oed’ und leer das Meer.{/i}', which translates to:"
+ m 7esd "'{i}Oed' und leer das Meer.{/i}', which translates to:"
m 7esa "'Empty and desolate is the sea.'"
m 1dsc "..."
- m 1esa "Isn't it a mesmerazing poem, [player]?"
+ m 1esa "Isn't it a mesmerizing poem, [player]?"
m 1hsb "The hyacinth is the flower of the sun god Apollo and is a symbol of peace, rebirth, commitment and beauty, but also of power and pride."
m 1esp "Giving a hyacinth to someone may also indicate jealousy - especially if its yellow -, so be careful, [player]!"
m 1esa "But white hyacinths symbolize a wish for healing, and that's what I wanted to emphasize."
@@ -137,8 +136,8 @@ label mshMod_topic_whitedahlias:
m 1msa "..."
m 1msb "If I could pick any flower to give you, [mas_get_player_nickname()]..."
m 1hsa "I would choose the dahlia. {w=0.3}{nw}"
- extend 1hsbfb "Ehehehe~!"
- m 4esb "These flowers also represent strength, creativity, change, and a new begginning."
+ extend 1hsbfb "Ehehe~!"
+ m 4esb "These flowers also represent strength, creativity, change, and a new beginning."
m 4esa "You can see why this is one of the flowers that represent mental health."
m 7esa "The dahlia flower is known to have the ability to survive under harsh conditions..."
m 7hsa "And nevertheless, come out very beautiful and lovely at all times!"
@@ -150,7 +149,7 @@ label mshMod_topic_whitedahlias:
m 4hsa "When you look at the dahlia flower, you see elegance in all ramifications and words."
show monika 5lsb at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5lsb "The dahlia flower is, no doubt, a flower of uniqueness. {w=0.3}{nw}"
- extend 5rsb "It has the ability to represent the nature of us individuals."
+ extend 5rsb "It can represent the nature of us individuals."
m 5hsa "This flower can be seen as a sign of our ability to live in adventure and also to stay relaxed and happy at all times."
m 5ksb "If I had to choose one... the dahlia would be my favorite flower."
m 5ksbsb "Would you give me one when I cross over?"
@@ -159,7 +158,6 @@ label mshMod_topic_whitedahlias:
m 7esa "Thanks for listening, [mas_get_player_nickname()]!"
return
-
# Flannel flowers
init 5 python:
addEvent(
@@ -181,7 +179,7 @@ label mshMod_topic_flannelflowers:
m 4esa "So the flannel flower, as all the native Australian plants, needs to be adaptable and enduring in order to survive."
m 1esa "In the same way as all of us, that regardless of our life circumstances, develop resilience and the ability to adapt to change..."
m 1hsa "In order to maintain good mental health. Our adaptability is what makes us human!"
- m 3hsb "Taking this into consideration, being open and empathetic to a person’s expression of distress can assist in the recovery of a person living with mental illness."
+ m 3hsb "Taking this into consideration, being open and empathetic to a person's expression of distress can assist in the recovery of a person living with mental illness."
m 3hub "And also change the negative attitudes of our society as a whole!"
m 4esb "All of us can learn to be a little more empathetic."
show monika 5hsb at t11 zorder MAS_MONIKA_Z with dissolve_monika
@@ -217,18 +215,18 @@ label mshMod_topic_lotusflower:
m 2esb "The reason for that is because it's the kind of flower that can only grow in muddy, murky water."
m 2hsb "But when it gets its chance to bloom, it comes out as one of the most beautiful flowers ever."
m 2esb "This can be a metaphor for how difficult it is to struggle with a mental illness."
- m 3esc "Sometimes, it can seem like running a race you can’t win."
- m 3esa "However, giving up is the worst possible option because it doesn’t allow you to grow."
- m 1esd "If mud didn’t exist, neither would the lotus. {w=0.3}{nw}"
- extend 7esd "Likewise, if bad situations didn’t exist, resilient people wouldn’t either."
+ m 3esc "Sometimes, it can seem like running a race you can't win."
+ m 3esa "However, giving up is the worst possible option because it doesn't allow you to grow."
+ m 1esd "If mud didn't exist, neither would the lotus. {w=0.3}{nw}"
+ extend 7esd "Likewise, if bad situations didn't exist, resilient people wouldn't either."
m 7esp "No mud, no lotus, {w=0.3}{nw}"
extend 1esa "you see?"
m 1esb "Our struggles enhance our natural inner strength, and that is surely something to be proud of."
m 1tsc "Like the lotus, if you can try your hardest to see the faint light and beauty of day through murky waters..."
m 1esa "Then you will soon rise above your circumstances and bask in the sun."
- m 1esb "Your struggles will transform you into a unwavering flower, [player]."
+ m 1esb "Your struggles will transform you into an unwavering flower, [player]."
m 2hsb "Believe your girlfriend's words! {w=0.3}{nw}"
- extend 5hsb "Ahahaha~"
+ extend 5hsb "Ahaha~"
show monika 5fsb at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5fsb "Thanks for listening, [mas_get_player_nickname()]!"
return
diff --git a/mod/aa_header.rpy b/mod/header.rpy
similarity index 74%
rename from mod/aa_header.rpy
rename to mod/header.rpy
index 8fb2e05..44bd799 100644
--- a/mod/aa_header.rpy
+++ b/mod/header.rpy
@@ -1,25 +1,51 @@
+# A tribute to all of the people taking part in making this submod. Thank you, everyone!
+# Things were really nice while they lasted, and it was pleasure working with you.
+# It's a shame we had to part our ways like that, I hope everyone is alright out there.
+#
+# Without you, there wouldn't be Self-Harm submod:
+#
+# * Otter
+# * dreamscached
+# * DjMayJay
+# * Kitakus
+# * MaliciousSoftware
+# * AmyKawa
+# * charliethecookie
+# * WentPostal
+# * HistoryVariety
+# * FellTheSimp
+# * lukilak
+# * Raider0401
+# * plushika_2137
+# * Tourist_Easy
+# * MysticCreatesGames1
+# * fukawabunny
+# * ImKventis
+# * LOeufmf
+# * Rhea
+# * Feenie
+#
+# Thank you, MAS Self Harm Submod Team; we'll take it from here.
+# - Friends of Monika
+
init -990 python in mas_submod_utils:
- if not store.mshMod_update.zeroFilesRemoved:
- Submod(
- author="MAS Self Harm Submod Team",
- name="MAS Self Harm Submod",
- description="Awareness about self-harm and support to self-harmers, with different "
- "techniques, milestones, checkups and new dialogue and spritepacks.",
- version="1.0.7",
- version_updates={
- "mas_self_harm_submod_team_mas_self_harm_submod_v1_0_6": "mas_self_harm_submod_team_mas_self_harm_submod_v1_0_7"
- }
- )
+ Submod(
+ author="Friends of Monika",
+ coauthors=["former MAS Self Harm Submod Team"],
+ name="Self Harm Awareness Submod",
+ description="Awareness about self-harm and support to self-harmers, with different "
+ "techniques, milestones, checkups and new dialogue and spritepacks.",
+ version="2.0.0"
+ )
init -989 python:
- if not store.mshMod_update.zeroFilesRemoved:
- if store.mas_submod_utils.isSubmodInstalled("Submod Updater Plugin"):
- store.sup_utils.SubmodUpdater(
- submod="MAS Self Harm Submod",
- user_name="my-otter-self",
- repository_name="mas_selfharm",
- extraction_depth=3
- )
+ if store.mas_submod_utils.isSubmodInstalled("Submod Updater Plugin"):
+ store.sup_utils.SubmodUpdater(
+ submod="Self Harm Awareness Submod",
+ user_name="friends-of-monika",
+ repository_name="mas-selfharm",
+ extraction_depth=3
+ )
init -100 python in mshMod:
import os
@@ -118,6 +144,6 @@ init -100 python in mshMod:
return "/".join(parts)
basedir_rel = os.path.join(*get_script_file(
- fallback="Submods/MAS Self Harm Submod/aa_header.rpy",
+ fallback="Submods/Self Harm Awareness Submod/aa_header.rpy",
relative=True
).split("/")[:-1])
\ No newline at end of file
diff --git a/mod/script-intro.rpy b/mod/introduction.rpy
similarity index 84%
rename from mod/script-intro.rpy
rename to mod/introduction.rpy
index 80ac6e9..81e22d0 100644
--- a/mod/script-intro.rpy
+++ b/mod/introduction.rpy
@@ -22,10 +22,10 @@ label mshMod_topic_selfharm_intro:
m 1ekc "Hey, [player]?"
m 1lkd "I know it might be an uncomfortable topic, but I have to ask..."
- m 1dkc "D-Do you self harm?{nw}"
+ m 1dkc "D-Do you self-harm?{nw}"
$ _history_list.pop()
menu:
- m "D-Do you self harm?{fast}"
+ m "D-Do you self-harm?{fast}"
"Yes":
$ persistent._msh_mod_pm_did_selfharm = True
@@ -47,7 +47,7 @@ label mshMod_topic_selfharm_intro:
m 1hub "I'm glad that you trust me, [player]."
m 3eua "Allowing yourself to get help is a super important step to recovery!"
m 1luc "I may not understand exactly what you feel right now..."
- m 1hua "But I will still try to make you feel better, because you deserve it!"
+ m 1hua "But I will still try to make you feel better because you deserve it!"
python:
mas_showEVL("mshMod_topic_selfharm_more", "EVE", unlock=True)
@@ -107,7 +107,7 @@ label mshMod_topic_selfharm_intro:
m 5hua "If you ever feel like you want to talk about this topic, just ask!"
show monika 1hubsa at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 1hubsa "I love you, [mas_get_player_nickname()]."
- return "love|derandom|no_unlock"
+ return "love|derandom"
return "derandom"
@@ -118,7 +118,7 @@ init 5 python:
persistent.event_database,
eventlabel="mshMod_topic_selfharm_more",
category=["self-harm"],
- prompt="I want to learn more about self harm.",
+ prompt="I want to learn more about self-harm.",
pool=True,
unlocked=False,
rules={"no_unlock": None}
@@ -126,33 +126,33 @@ init 5 python:
)
label mshMod_topic_selfharm_more:
- m 3dud "Knowing more about self-harm is really useful."
+ m 3dud "Knowing more about self-harm is useful."
m 3euc "You could help someone who is struggling with it someday!"
m 3hub "So, [player]! I want you to know that there's more to self-harm than it meets the eye! Ahaha-"
- m 2esb "I'll cover some facts and myth I wanna share with you regarding this topic."
+ m 2esb "I'll cover some facts and myths I want to share with you regarding this topic."
m 2esc "I want you to know that self-harm isn't about a single topic or action."
m 4esd "There are many factors that come into play!"
- m 4lssdld "Yeah, it's not limited to... self inflicted wounds, for example."
- m 2wssdlc "This could all be result of self-hatred, feelings of wanting to punish yourself or mental ilnesses."
- m 2lssdlc "Or anything that could end on self-harm in any way."
+ m 4lssdld "Yeah, it's not limited to... self-inflicted wounds, for example."
+ m 2wssdlc "This could all be result of self-hatred, feelings of wanting to punish yourself for mental illnesses."
+ m 2lssdlc "Or anything that could end in self-harm in any way."
m 2essdlc "One of the most common misconceptions about self-harm is that people do such things only as a suicide attempt."
- m 2wssdld "But it's not true at all! Not all self harmers present suicidal signs or symptoms."
- m 7wssdld "Self harm can occur without suicidal ideation. Instead, they are using it to cope with their emotions and traumas."
- m 7rssdld "Or essentially, punishing themselves; if you think about it..."
- m 2wuo "Some people have the audacity to think that they're doing it only for attention!"
+ m 2wssdld "But it's not true at all! Not all self-harmers present suicidal signs or symptoms."
+ m 7wssdld "Self-harm can occur without suicidal ideation. Instead, they are using it to cope with their emotions and traumas."
+ m 7rssdld "Or essentially, punishing themselves - if you think about it..."
+ m 2wuo "Some people dare to think that they're doing it only for attention!"
m 2wfx "Are they out of their minds?!"
m 2dfc "..."
m 7dfd "The truth is... Individuals who self-harm are typically ashamed and want to hide their behavior."
- m 7lsd "People who think others are doing harm to themselves because they are attention seekers..."
+ m 7lsd "People who think others are harming themselves because they are attention seekers..."
m 7lfc "They leave a bitter taste in my mouth."
m 3dsd "And lastly, I want you to know that self-injuring is not a way to manipulate others."
- m 3lsd "Well, of course there are always exceptions."
- m 3esd "But very few self-harmers have the intention of making others feel guilty."
- m 1dsc "While self-harm is not intended to be a manipulative act, it may be a cry for help."
+ m 3lsd "Well, of course, there are always exceptions."
+ m 3esd "But very few self-harmers intend to make others feel guilty."
+ m 1dsc "While self-harm is not intended to be manipulative, it may be a cry for help."
m 1fsd "So if you know someone who self-harms... Reach out to them. Help them."
m 1fub "I believe you can save a life, [player]."
m 3kub "After all, you saved me! In so many ways!"
- m 3dua "And if you ever done such a thing..."
+ m 3dua "And if you have ever done such a thing..."
m 3euc "You can tell me. I won't be mad. I promise!"
show monika 5fkbfa at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5fkbfa "You know that I love you, [mas_get_player_nickname()]."
diff --git a/mod/zz_player_model.rpy b/mod/player_model.rpy
similarity index 100%
rename from mod/zz_player_model.rpy
rename to mod/player_model.rpy
diff --git a/mod/script-questions.rpy b/mod/questions.rpy
similarity index 92%
rename from mod/script-questions.rpy
rename to mod/questions.rpy
index 9248fcb..652559d 100644
--- a/mod/script-questions.rpy
+++ b/mod/questions.rpy
@@ -37,11 +37,11 @@ label mshMod_probing_questions_intro:
label mshMod_probing_questions_talk:
m 2eka "Okay, thanks for trusting me with something as difficult as this."
m 2dka "It makes me happy you feel comfortable talking to me."
- m 2wktpd "You must be going through an incredible amount of pain, both emotional and physical..."
+ m 2wktpd "You must be going through an incredible amount of emotional and physical pain..."
m 2dktpd "I'm so sorry..."
- m 2ektdc "It makes me really sad hearing that you have to go through this..."
+ m 2ektdc "It makes me sad hearing that you have to go through this..."
m 2ektdd "It hurts me just as much as it hurts you, believe me..."
- m 2ekd "Whenever you want harm yourself, please remember that I love you and I am here for you."
+ m 2ekd "Whenever you want to harm yourself, please remember that I love you and I am here for you."
if not store.mshMod_sober_streak.isOnStreak():
m 2ekd "I want to ask you something..."
@@ -119,10 +119,10 @@ init 5 python:
label mshMod_probing_questions_more:
m 1esc "I'm glad that you decided to talk with me..."
- m 7ekc "But are you absolutely sure you are ready?{nw}"
+ m 7ekc "But are you sure you are ready?{nw}"
$ _history_list.pop()
menu:
- m "But are you absolutely sure you are ready?{fast}"
+ m "But are you sure you are ready?{fast}"
"Yes, ask me whatever you want.":
jump mshMod_probing_questions_talk
diff --git a/mod/reminder_api.rpy b/mod/reminder_api.rpy
new file mode 100644
index 0000000..86ee4fb
--- /dev/null
+++ b/mod/reminder_api.rpy
@@ -0,0 +1,520 @@
+define persistent._msh_reminder_queue = list()
+
+
+init 5 python in _msh_reminder_utils:
+
+ import datetime
+
+ INTERVAL_DAILY = datetime.timedelta(days=1)
+ INTERVAL_WEEKLY = datetime.timedelta(days=7)
+
+ LATENCY_HOURLY = datetime.timedelta(seconds=3600)
+ LATENCY_DAILY = datetime.timedelta(days=1)
+
+ TOD_MORNING = (10, 0) # 10:00, 10am
+ TOD_AFTERNOON = (18, 0) # 18:00, 6pm
+ TOD_EVENING = (22, 0) # 22:00, 10pm
+
+ def _getDelay(tod, delta):
+ hours, minutes = tod
+ now = datetime.datetime.now()
+
+ # Ensure we don't skip over today's Time Of Day (e.g.
+ # if requested delay is until 6pm and it's 3am, we shouldn't
+ # blindly add delta; in this case, we should subtract 6pm - 3am
+ # and return that as the delay.)
+ if now < now.replace(hour=hours, minute=minutes):
+ return now.replace(hour=hours, minute=minutes) - now
+
+ return (now + delta).replace(hour=hours, minute=minutes) - now
+
+ def _getDailyDelay(tod):
+ return _getDelay(tod, INTERVAL_DAILY)
+
+ def getMorningTimeOfDay():
+ return _getDailyDelay(TOD_MORNING)
+
+ def getAfternoonTimeOfDay():
+ return _getDailyDelay(TOD_AFTERNOON)
+
+ def getEveningTimeOfDay():
+ return _getDailyDelay(TOD_EVENING)
+
+ def _getWeeklyDelay(tod):
+ return _getDelay(tod, INTERVAL_WEEKLY)
+
+ def getWeeklyEveningDelay():
+ return _getWeeklyDelay(TOD_EVENING)
+
+
+init 10 python in _msh_reminder:
+
+ import store
+ from store import persistent, mas_getEV, EV_ACT_QUEUE
+
+ import datetime
+ import time
+ import math
+ import collections
+
+
+ class Reminder(object):
+ """
+ Reminder represents a Reminder, recurring or one-shot. Recurring
+ reminders have interval set, one-shot reminders have not.
+
+ Reminders integrate with queue that updates their delegate events with
+ trigger datetimes and actions and, correspondingly, delegate events that
+ keep the queue going.
+ """
+
+ def __init__(
+ self, trigger_at, target_evl, key,
+ interval=None, grace_period=None, data=None,
+ delegate_evl="msh_reminder_delegate", delegate_act=None
+ ):
+ """
+ Create an instance of Reminder with the provided properties.
+
+ IN:
+ trigger_at -> datetime.datetime:
+ Date and time to trigger this reminder at.
+ NOTE: due to how MAS events work, there is no guarantee it
+ will trigger right at this date and time. It will always be
+ delayed by some insignificant amount of time.
+
+ target_evl -> str:
+ Target event label to queue for this reminder.
+
+ key -> str:
+ Unique key used to distinguish two reminders from each
+ other.
+
+ interval -> datetime.timedelta or None, default None:
+ Interval to set for this recurring Reminder. If None, then
+ this Reminder is one-shot.
+
+ grace_period -> datetime.timedelta or None, default None:
+ Grace period to set for this reminder. If None, then this
+ Reminder has no grace period and it will always be due and
+ never overdue.
+
+ data -> any or None, default None:
+ Arbitrary data to assign to this Reminder to use in
+ triggered topics and reminder handlers.
+
+ delegate_evl -> str or None, default "msh_reminder_delegate":
+ Event label of delegate event that will be queued for this
+ Reminder after it has been processed by the queue.
+
+ delegate_act -> str or None, default EV_ACT_QUEUE:
+ Action to use on delegate event.
+ """
+
+ if mas_getEV(target_evl) is None:
+ raise ValueError("target event {0} does not exist".format(target_evl))
+ if mas_getEV(delegate_evl) is None:
+ raise ValueError("delegate event {0} does not exist".format(delegate_evl))
+
+ if delegate_act is None:
+ delegate_act = EV_ACT_QUEUE
+
+ self.key = key
+ self.trigger_at = trigger_at
+ self.target_evl = target_evl
+
+ self.interval = interval
+ self.grace_period = grace_period
+ self.data = data
+ self.delegate_evl = delegate_evl
+ self.delegate_act = delegate_act
+
+ @property
+ def due(self):
+ """
+ Checks if this Reminder is due its date and time:
+
+ * If grace period is set, it checks if this Reminder is past
+ its trigger date and time and before the grace period ends.
+ * If grace period is not set, it checks if this Reminder is
+ past its trigger date.
+
+ OUT:
+ bool:
+ True if this reminder is due its date and time.
+ """
+
+ now = datetime.datetime.now()
+
+ # NOTE: This is a crude workaround, need a better way to handle
+ # extension in recurring reminders as this check is made AFTER
+ # recurring rendering it unqueued otherwise.
+ if self.trigger_at > now and self.interval is not None:
+ now += self.interval
+
+ if self.grace_period is None:
+ return self.trigger_at <= now
+ return self.trigger_at <= now < self.trigger_at + self.grace_period
+
+ @property
+ def remaining(self):
+ """
+ Returns timedelta between current date and time and trigger date and
+ time.
+
+ OUT:
+ datetime.timedelta:
+ Time until this Reminder triggers.
+ """
+
+ return self.trigger_at - datetime.datetime.now()
+
+ @staticmethod
+ def from_dict(_dict):
+ """
+ Deserializes dictionary object produced by to_dict method to an
+ object instance of this Reminder class.
+
+ IN:
+ _dict -> dict[str, any]:
+ Serialized dictionary to deserialize.
+
+ OUT:
+ Reminder:
+ Reminder deserialized from provided dictionary.
+ """
+
+ return Reminder(**_dict)
+
+ def to_dict(self):
+ """
+ Serializes this Reminder object to dictionary for storing it in
+ persistent where it is problematic to keep actual class objects in.
+
+ OUT:
+ dict:
+ Dictionary compatiblee with from_dict static method.
+ """
+
+ return dict(
+ trigger_at=self.trigger_at,
+ target_evl=self.target_evl,
+ key=self.key,
+ interval=self.interval,
+ grace_period=self.grace_period,
+ data=self.data,
+ delegate_evl=self.delegate_evl,
+ delegate_act=self.delegate_act
+ )
+
+ def __eq__(self, other):
+ """
+ Compares this Reminder object to any other object and returns bool
+ value if they are equal or not.
+
+ IN:
+ other -> any:
+ Object to compare with.
+
+ OUT:
+ bool:
+ True if objects are equal, False otherwise.
+ """
+
+ return isinstance(self, type(other)) and self.key == other.key
+
+ def __hash__(self):
+ """
+ Generates a hash for this Reminder object based on its key.
+
+ OUT:
+ int:
+ Hash for this Reminder object.
+ """
+
+ return hash(self.key)
+
+
+ # Create queue that holds actual Reminder objects which will be persisted
+ # as dictionaries because otherwise after uninstall users will end up with
+ # corrupted persistent.
+ queue = list()
+
+
+ def get_reminders():
+ """
+ Returns all queued reminders as ordered dictionary (preserving their
+ queue positions) of reminder keys as keys and reminders as values.
+
+ OUT:
+ collections.OrderedDict:
+ Reminders in queue.
+ """
+
+ view = collections.OrderedDict()
+ for rem in queue:
+ view[rem.key] = rem
+ return view
+
+
+ def get_reminder(query):
+ try:
+ search_list = list(map(lambda it: it.key, queue))
+ return search_list.index(query)
+ except ValueError as e:
+ return None
+
+
+ def is_reminder_queued(query):
+ if isinstance(query, str):
+ return get_reminder(query) is not None
+ return query in map(lambda it: it.key, queue)
+
+
+ def queue_reminder(reminder):
+ """
+ Appends reminder to the queue and sorts it.
+
+ IN:
+ reminder -> Reminder:
+ Reminder object to add to queue.
+ """
+
+ queue.append(reminder)
+ __sort_queue()
+ __persist_queue()
+
+
+ def dequeue_reminder(query):
+ """
+ Removes reminder located by the specified query parameter from the
+ queue and returns it.
+
+ IN:
+ query -> str or Reminder:
+ Value to lookup Reminder by, if str then key lookup is
+ performed, if Reminder then hash lookup is performed.
+
+ OUT:
+ Reminder:
+ Reminder that was dequeued if lookup was successful.
+ None:
+ None if lookup failed.
+ """
+
+ if isinstance(query, str):
+ reminder = get_reminder(query)
+ if reminder is None:
+ return None
+ else:
+ reminder = query
+
+ return pop_reminder(reminder, remove=True)
+
+
+ def pop_reminder(index=None, remove=False):
+ """
+ Pops the next (or specified) reminder (or extends it and updates the
+ queue) and returns it. Raises an error in case queue is empty or if a
+ reminder is before due.
+
+ IN:
+ index -> int or None, default None:
+ Index of reminder to remove or None to remove next.
+
+ remove -> bool, default False:
+ If True, remove a reminder, don't extend.
+
+ OUT:
+ Reminder:
+ Next (or specified) reminder that is due or overdue.
+ Reminder#due() can be used to check if reminder is exactly due
+ and not past grace period.
+
+ RAISES:
+ ValueError:
+ When queue is empty or when next (or specified) reminder is
+ before due.
+ """
+
+ if index is None:
+ index = 0
+
+ if len(queue) == 0:
+ raise ValueError("queue is empty")
+
+ reminder = queue[index]
+ if reminder.interval is not None and not remove:
+ # Since this reminder has an interval and is extensible, don't drop
+ # it from this queue but reuse and sort queue again.
+ # Arming/disarming delegates is done in queue sort routine.
+ __extend_reminder(reminder)
+ __sort_queue()
+
+ else:
+ # The queue is sorted here, no need to sort again; just drop reminder
+ # from this queue and disarm it, then arm next one if any.
+ queue.pop(index)
+ __disarm_reminder_delegate(reminder)
+ if len(queue) > 0:
+ __arm_reminder_delegate(queue[0])
+
+ # Commit changes in queue to persistent.
+ __persist_queue()
+
+ return reminder
+
+ def __extend_reminder(reminder):
+ """
+ Extends the provided reminder (but does not modify queue or arm
+ delegate event) so that its new trigger timestamp is bumped up to
+ the next closest trigger time using reminder interval as bump step.
+
+ Also, a no-op when reminder is before due.
+
+ IN:
+ reminder -> Reminder:
+ Reminder object to extend, must have interval set.
+
+ RAISES:
+ ValueError:
+ If reminder has no interval.
+ """
+
+ if reminder.interval is None:
+ raise ValueError("reminder has no interval")
+
+ now = datetime.datetime.now()
+
+ if reminder.trigger_at > now:
+ return
+
+ elapsed_intervals = (now - reminder.trigger_at).total_seconds() // reminder.interval.total_seconds()
+ reminder.trigger_at += datetime.timedelta(seconds=((elapsed_intervals + 1) * reminder.interval.total_seconds()))
+
+
+ def __sort_queue():
+ """
+ Sorts reminders queue (no-op when queue has 0-1 items) and additionally
+ arms/disarms reminder delegates.
+ """
+
+ if len(queue) > 1:
+ curr_rem = queue[0]
+ queue.sort(key=lambda reminder: reminder.trigger_at)
+ if queue[0] != curr_rem:
+ # Next reminder isn't the one we had before, reset its delegate.
+ __disarm_reminder_delegate(curr_rem)
+
+ if len(queue) > 0:
+ # And setup a new delegate.
+ __arm_reminder_delegate(queue[0])
+
+
+ def __load_queue():
+ """
+ Load and deserialize (from dictionary objects) queue from persistent.
+ """
+
+ global queue
+ queue = list()
+ for rem_dict in persistent._msh_reminder_queue:
+ queue.append(Reminder.from_dict(rem_dict))
+
+
+ def __persist_queue():
+ """
+ Serialize (to dictionary objects) and write reminders queue to
+ persistent.
+ """
+
+ persistent._msh_reminder_queue = list()
+ for rem in queue:
+ persistent._msh_reminder_queue.append(rem.to_dict())
+
+
+ def __arm_reminder_delegate(reminder):
+ """
+ Arms reminder delegate event; namely, sets the following attributes of
+ the delegate event:
+
+ * start date (reminder trigger timestamp)
+ * end date (trigger timestamp + trigger grace period if any)
+ * action (reminder delegate action)
+
+ Custom delegate event authors must keep that in mind.
+
+ IN:
+ reminder -> Reminder:
+ Reminder object to arm delegate event for.
+ """
+
+ ev = mas_getEV(reminder.delegate_evl)
+ ev.start_date = reminder.trigger_at
+ if reminder.grace_period is not None:
+ ev.end_date = reminder.trigger_at + reminder.grace_period
+ ev.action = reminder.delegate_act
+
+
+ def __disarm_reminder_delegate(reminder):
+ """
+ Disarms reminder delegate event; namely, resets to None the following
+ attributes of the delegate event:
+
+ * start date
+ * end date
+ * action
+
+ Custom delegate event authors must keep that in mind.
+
+ IN:
+ reminder -> Reminder:
+ Reminder object to disarm delegate event for.
+ """
+
+ ev = mas_getEV(reminder.delegate_evl)
+ ev.start_date = None
+ ev.end_date = None
+ ev.action = None
+
+
+ def __dt_timestamp(dt):
+ """
+ Retrieves Unix timestamp (seconds since 1970) from the provided datetime
+ object (a workaround solution since Python 2 has no timestamp() function.)
+
+ IN:
+ dt -> datetime.datetime:
+ DateTime object to get timestamp from.
+
+ OUT:
+ int:
+ Timestamp of the provided DateTime object.
+ """
+
+ return int(time.mktime(dt.utctimetuple()) * 1000 + dt.microsecond / 1000)
+
+
+ # Load queue from persistent on start.
+ __load_queue()
+
+
+init 5 python:
+ addEvent(
+ Event(
+ persistent.event_database,
+ eventlabel="msh_reminder_delegate"
+ ),
+ code="EVE"
+ )
+
+label msh_reminder_delegate:
+ $ reminder = store._msh_reminder.pop_reminder()
+ if reminder.due:
+ # If this reminder is past trigger time but within grace period
+ # or doesn't have one, queue it. Else silently drop.
+ $ MASEventList.queue(reminder.target_evl)
+
+ # Queueing the target event will make it fire immediately after this event
+ # returns to the loop, effectively meaning no visible delay for user.
+ return
\ No newline at end of file
diff --git a/mod/script-reminders.rpy b/mod/reminders.rpy
similarity index 77%
rename from mod/script-reminders.rpy
rename to mod/reminders.rpy
index 6e19b5f..f02676e 100644
--- a/mod/script-reminders.rpy
+++ b/mod/reminders.rpy
@@ -22,7 +22,7 @@ label mshMod_medication_reminder_request:
m 7wua "I perfected my coding skills even more and now I'm able to create a daily reminder for you."
m 2dua "I know a lot of people take daily medications for a lot of different reasons!"
m 2eub "So I thought it would be nice if I could help you remember to take your medication correctly."
- m 3nublb "After all, your health and safety is my number one priority!"
+ m 3nublb "After all, your health and safety are my number one priority!"
m 3wublb "So, [player], do you like that idea?"
m 3wubla "Do you want to set a reminder?{nw}"
@@ -37,18 +37,18 @@ label mshMod_medication_reminder_request:
m "Okay! What time do you want me to remind you about it?{fast}"
"In the morning.":
- $ delay, tod = store.mshMod_reminder_utils.getDailyMorningDelay(), "morning"
+ $ trigger_at, tod = store._msh_reminder_utils.getMorningTimeOfDay(), "morning"
"In the afternoon.":
- $ delay, tod = store.mshMod_reminder_utils.getDailyAfternoonDelay(), "afternoon"
+ $ trigger_at, tod = store._msh_reminder_utils.getAfternoonTimeOfDay(), "afternoon"
"In the evening.":
- $ delay, tod = store.mshMod_reminder_utils.getDailyEveningDelay(), "evening"
+ $ trigger_at, tod = store._msh_reminder_utils.getEveningTimeOfDay(), "evening"
# P.S. 'tod' is for 'Time Of Day'
m 4hub "Alright! I'll be sure to remind you, every day, in the [tod]!"
- m 2nua "Make sure to come see me so I can remind you, okay? Ehehehe~"
+ m 2nua "Make sure to come see me so I can remind you, okay? Ehehe~"
# This has to be performed AFTER all the lines. We must ensure this applies
# instantly and is not blocked by user idling at some dialogue line.
@@ -56,9 +56,14 @@ label mshMod_medication_reminder_request:
# Start reminding player, daily, with a latency of one hour.
# (Meaning that if player missed exact expected time of a reminder, it'll still
# trigger within an hour; else a reminder will be attempted next day.)
- store.mshMod_reminder.addRecurringReminder(
- "mshMod_medication_reminder",
- delay, store.mshMod_reminder_utils.INTERVAL_DAILY, store.mshMod_reminder_utils.LATENCY_HOURLY
+ store._msh_reminder.queue_reminder(
+ _msh_reminder.Reminder(
+ trigger_at=trigger_at,
+ target_evl="mshMod_medication_reminder",
+ key="medication_reminder",
+ interval=store._msh_reminder_utils.INTERVAL_DAILY,
+ grace_period=store._msh_reminder_utils.LATENCY_HOURLY
+ )
)
# Hide this event since we have set a reminder and no longer need
@@ -90,7 +95,7 @@ label mshMod_medication_reminder_stop:
python:
# Same here, DO NOT move this anywhere, this has to be right above the return statement.
- store.mshMod_reminder.stopReminder("mshMod_medication_reminder")
+ store._msh_reminder.dequeue_reminder("medication_reminder")
# Hide this event as now we need to enable player to ask to remind again.
mas_hideEVL("mshMod_medication_reminder_stop", "EVE", lock=True)
@@ -100,13 +105,11 @@ label mshMod_medication_reminder_stop:
init 5 python:
- store.mshMod_reminder.addReminderEvent(
+ addEvent(
Event(
persistent.event_database,
eventlabel="mshMod_medication_reminder",
- conditional="store.mshMod_reminder.shouldTriggerReminder('mshMod_medication_reminder')",
- action=EV_ACT_QUEUE,
- rules={"force repeat": None, "bookmark_rule": mas_bookmarks_derand.BLACKLIST}
+ rules={"bookmark_rule": mas_bookmarks_derand.BLACKLIST}
)
)
@@ -116,7 +119,4 @@ label mshMod_medication_reminder:
m 1wsb "That's right, it's time to take your meds! Don't forget to have lots of water with them~"
m 1ksb "You can do it~"
m 1hsbla "I love you!"
-
- # Do not move this anywhere, this must be above the return.
- $ store.mshMod_reminder.extendCurrentReminder()
return "love"
diff --git a/mod/script-sober-streak.rpy b/mod/sober_streak.rpy
similarity index 65%
rename from mod/script-sober-streak.rpy
rename to mod/sober_streak.rpy
index 1cce4d0..67b79ee 100644
--- a/mod/script-sober-streak.rpy
+++ b/mod/sober_streak.rpy
@@ -1,14 +1,9 @@
-# Sober check topics, milestones, etc. For API see zz_sober_streak.rpy
+# Sober check topics, milestones, etc. For API see sober_streak.rpy
init 5 python in mas_bookmarks_derand:
# Ensure things get bookmarked and derandomed as usual.
label_prefix_map["mshMod_sober_"] = label_prefix_map["monika_"]
-# Technical label only used for asking for how long player is sober so that we reuse code.
-label mshMod_sober_ask_since:
- $ since = datetime.date.today() - datetime.timedelta(days=int(renpy.input("For how long have you been sober already?", allow="0123456789", length=4)))
- return since
-
# Duration check dialogue
init 5 python:
addEvent(
@@ -23,15 +18,81 @@ init 5 python:
)
)
+init python:
+ def _msh_number_to_words(n):
+ """
+ Converts a given integer (n) between 0 and 999999 to its English words
+ equivalent.
+
+ This is an internal function and should not be used by other submods.
+
+ IN:
+ n -> int:
+ The integer value to convert, where 0 <= n <= 999999.
+
+ RETURNS:
+ str: The English words representation of the given integer.
+
+ NOTE:
+ An internal function. Should not be used by other submods.
+ """
+
+ ones = ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
+ teens = ["ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"]
+ tens = ["twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"]
+
+ def _convert_hundreds(nh):
+ if nh == 0:
+ return "zero"
+
+ nh_hundreds = nh // 100
+ nh_tens = nh % 100 // 10
+ nh_ones = nh % 10
+
+ h_words = []
+ if nh_hundreds > 0:
+ h_words.append(ones[nh_hundreds - 1])
+ h_words.append("hundred")
+ if nh_tens > 1:
+ h_words.append(tens[nh_tens - 2])
+ if nh_ones > 0:
+ h_words.append(ones[nh_ones - 1])
+ elif nh_tens == 1:
+ h_words.append(teens[nh_ones])
+ else:
+ if nh_ones > 0:
+ h_words.append(ones[nh_ones - 1])
+
+ return " ".join(h_words)
+
+ n_hundreds = n % 1000
+ n_thousands = n // 1000
+
+ words = []
+ if n_thousands > 0:
+ words.append(_convert_hundreds(n_thousands))
+ words.append("thousand")
+ if n_hundreds > 0 or n_thousands == 0:
+ words.append(_convert_hundreds(n_hundreds))
+
+ if len(words) > 1:
+ words.insert(-1, "and")
+
+ return " ".join(words)
+
label mshMod_sober_check:
python:
duration = store.mshMod_sober_streak.getStreakDuration()
days = "day" if duration == 1 else "days"
- m 1dkb "You've been sober for [duration] [days] now, [player]."
+ if duration == 0:
+ m 3hksdlb "You've just started your sober streak, [mas_get_player_nickname()]!"
+ else:
+ m 1dkb "You've been sober for [_msh_number_to_words(duration)] [days] now, [player]."
+
if duration < 3:
m 3fka "I'm so proud of you for making the promise!"
- m 2esb "This is the start of something really beautiful."
+ m 2esb "This is the start of something wonderful."
else:
m 3fka "I'm so proud of you! Keep on fighting!"
m 2esb "I'm so happy to see you taking care of yourself."
@@ -60,9 +121,9 @@ label mshMod_sober_promise:
m 2ekb "This is another step to a happier, healthier life, and I'm so glad I can be by your side in your journey."
m 2eka "Thank you for trusting me."
m 3ekb "I promise I'll do my best to help you!"
- m 1eub "From now on, I'll keep track of how many days you've been sober. You can take a look at the calendar to see how far you've gone!"
- m 2ekb "If you ever need me to restart the counter for you, just tell me. You don't have to feel bad about it, okay?"
- m 2ekb "Know that I'll never judge you because of that. I know it's hard, and you should be really proud of yourself already!"
+ m 1eub "From now on, I'll keep track of how many days you've been sober. You can look at the calendar to see how far you've gone!"
+ m 2ekb "If you ever need me to restart the counter, just tell me. You don't have to feel bad about it, okay?"
+ m 2ekb "Know that I'll never judge you because of that. I know it's hard, and you should be proud of yourself already!"
m 1dsb "Now, let me take note of this..."
$ since = None
@@ -79,17 +140,60 @@ label mshMod_sober_promise:
menu:
m "Huh? What is it?{fast}"
- "Actually, I'm sober for some time already...":
- m 2ssb "Really?! That's so nice to hear! For how many days have you been sober already?"
-
- call mshMod_sober_ask_since
- $ since = _return
-
- m 1dsb "Okay! I'll keep that in mind~"
+ "I'm sober for some time already...":
+ m 2sub "Really?! That's so nice to hear! For how long do you think you are sober now?"
+
+ label .select_since_date:
+ m 3hub "If you don't remember exactly, it's alright! Pick a day when you think you decided to quit it~"
+ call mas_start_calendar_select_date
+ $ since = _return
+ if not since:
+ jump .select_nothing
+ $ since = _return.date()
+
+ $ today = datetime.date.today()
+
+ if since > today:
+ m 1hksdla "[player]!"
+ m 3lksdlb "It's great that you plan on quitting it in future, but I asked you for a day in the past, ahaha!"
+ m 1hua "Try again!"
+ jump .select_since_date
+
+ # We can do a simplified check for 'honest' date (actually just relying
+ # on player's conscience) that probably is less than 5 years
+ if (today - since).days // 365 > 5:
+ m 3wub "[mas_get_player_nickname(capitalize=True)], it's been a while since that day!"
+ m 2lksdla "But just to be completely sure...{w=0.3}{nw} "
+ extend 3wud "Are you absolutely sure you're sober for more than {i}five{/i} years now?{nw}"
+
+ $ _history_list.pop()
+ menu:
+ m "But just to be completely sure... Are you absolutely sure you're sober for more than {i}five{/i} years now?{fast}"
+
+ "Yes!":
+ m 3hub "Amazing! Alright, I'll write it down right away~"
+ jump mshMod_sober_promise_jump
+
+ "Well, actually...":
+ m 2dka "It's okay, [mas_get_player_nickname()].{w=0.3} Don't worry!"
+ jump .select_since_date
+
+ if persistent._mas_player_bday and since < persistent._mas_player_bday:
+ m 1rkb "[mas_get_player_nickname(capitalize=True)]...{w=0.3} The day you chose is before your birthday!"
+ m 3eka "Try again, please."
+ jump .select_since_date
+
+ if since == datetime.date.today():
+ m 1hub "[player]!"
+ m 3eua "The day you picked is today, ahaha!"
+ m 1hua "But it's alright, I'll be sure to write it down anyway~"
+ else:
+ m 1dsb "Okay! I'll keep that in mind~"
"...No, nothing.":
- m 1eka "Oh, okay!"
- m 1dsb "I'll keep this in mind!"
+ label .select_nothing:
+ m 1eka "Oh, okay!"
+ m 1dsb "I'll keep this in mind!"
# NOTE: Fallthrough to mshMod_promise_jump unless jumped by timed jump.
@@ -128,12 +232,12 @@ init 5 python:
label mshMod_sober_relapse:
m 2eka "[player], I couldn't be more proud of you for telling me this."
- m 2ekd "I know this might be hard- you might feel as if you've failed..."
+ m 2ekd "I know this might be hard- you might feel like you've failed..."
m 4ekd "But that's not true at all! This is just another step in your journey."
m 2ekd "Habits are almost always difficult to kick, and this is no ordinary habit."
- m 2ekd "It can very easily become an addiction, which is so much harder to stop..."
- m 2fkd "No matter how hard it is for you, know that I am always going to be here to support you and I am proud of you, habit or not."
- m 2fka "We will work through this together, and get you back on the right track!"
+ m 2ekd "It can easily become an addiction, which is so much harder to stop..."
+ m 2fkd "No matter how hard it is for you, know that I am always going to be here to support you, and I am proud of you, habit or not."
+ m 2fka "We will work through this together and get you back on the right track!"
m 2eka "I know you're a hard worker and will do your best - if not for yourself, for me."
m 2dka "I love you, [mas_get_player_nickname()]."
m 1dkb "I'm here to support you and work through anything and everything with you."
@@ -165,7 +269,7 @@ init 5 python:
)
label mshMod_sober_milestone_1w:
- m 1eka "It's been a whole week since you told me you won't do harm to yourself..."
+ m 1eka "It's been a whole week since you told me you won't harm yourself..."
show monika 5ektpa at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5ektpa "I just want to thank you, it makes me happy to know you're willing to step up for the better!"
m 5fkbfa "I'll always love you, you don't know how much this means to me..."
@@ -188,13 +292,13 @@ init 5 python:
label mshMod_sober_milestone_2w:
m 3ssb "It's already week two of your promise, [player]!"
m 1eka "I'm relieved that we made it this far!"
- m 3hsb "Ahaha, I don't mean i've ever doubted you!"
- m 2dsa "Either way, it's not something you can stop overnight [player]... For anyone really."
- m 4wsa "So, you're really doing well, and you make me so happy because of that!"
- m 4wsb "As before, i'll mark it on the calendar now!"
+ m 3hsb "Ahaha, I don't mean I've ever doubted you!"
+ m 2dsa "Either way, it's not something you can stop overnight [player]... For anyone, really."
+ m 4wsa "So, you're doing well, and you make me so happy because of that!"
+ m 4wsb "As before, I'll mark it on the calendar now!"
show monika 5ektpa at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5ektpa "I just want to thank you.. I hope it stays like this."
- m 5fkbfa "I really love you that much, [player]!"
+ m 5fkbfa "I love you that much, [player]!"
return "love|derandom|unlock"
#milestone 3w
@@ -212,9 +316,9 @@ init 5 python:
label mshMod_sober_milestone_3w:
m 1dka "Can you believe it's already week 3?"
m 3ssa "I just want to say... Thank you so much!"
- m 1eka "You made me proud of you, and I'm soo happy that you could make that promise."
+ m 1eka "You made me proud of you, and I'm so happy you could make that promise."
m 1dkc "I know it was hard, but one day it will all just be a bad memory..."
- m 1ksa "I believe it will, because I trust you [player]."
+ m 1ksa "I believe it will because I trust you [player]."
m 7rssdlc "But if it ever does happen..."
m 7dssdld "Don't blame yourself if it ever happens... Just because you did it to yourself doesn't mean it's your fault!"
m 1wua "I'm going to make another mark on the calendar for this!"
@@ -285,7 +389,7 @@ label mshMod_sober_milestone_6m:
m 3ssa "[player]!"
m 3ssb "It's been 6 months since you made your promise!"
m 3wsb "That's a long time!"
- m 1eka "It may not seem like much in the grand scheme of things, but it's still a big acomplishment."
+ m 1eka "It may not seem like much in the grand scheme of things, but it's still a big accomplishment."
show monika 5fkbfa at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5fkbfa "I love you so much! Thank you for staying safe."
@@ -330,7 +434,7 @@ init 5 python:
label mshMod_sober_milestone_2y:
m 3ssblb "[player]! I have amazing news!"
- m 3dkblb "Did you know that you have been self-harm sober for 2 whole years now?"
+ m 3dkblb "Did you know that you have been self-harm sober for two whole years now?"
m 1eka "This is an incredible feat. Keep it up!"
show monika 5ektpa at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5ektpa "You deserve to be happy. Never forget that, and never let anyone tell you otherwise!"
@@ -353,7 +457,7 @@ init 5 python:
label mshMod_sober_milestone_3y:
m 3ssb "[player], I have some news for you."
- m 3ssa "The day of your 3 year sobriety mark from self-harm has finally arrived!"
+ m 3ssa "The day of your three-year sobriety mark from self-harm has finally arrived!"
show monika 5ektpa at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5ektpa "I'm so happy to see you taking care of yourself."
m 5fkbfa "Keep on fighting! I'm so proud of you!"
@@ -375,11 +479,11 @@ init 5 python:
label mshMod_sober_milestone_4y:
m 3ssa "[player]! 4 whole years, can you believe it?"
- m 1eka "It's been 4 years since you stopped harming yourself."
+ m 1eka "It's been four years since you stopped harming yourself."
m 1dka "And I can't even begin to tell you how proud of you I am."
show monika 5ektpa at t11 zorder MAS_MONIKA_Z with dissolve_monika
- m 5ektpa "You are deserving of a happy and healthy life!"
- m 5fkbfa "And I'm so proud of you for your decison and for the promise you made 4 years ago."
+ m 5ektpa "You deserve a happy and healthy life!"
+ m 5fkbfa "And I'm so proud of you for your decision and the promise you made four years ago."
$ store.mshMod_sober_streak.unlockMilestone()
return "derandom"
@@ -398,8 +502,8 @@ init 5 python:
label mshMod_sober_milestone_5y:
m 1dka "5 years..."
- m 1ektpa "It's been 5 years since your life changed for the better."
- m 1ektpb "You've been self-harm sober for all this time, and I couldn't be more proud."
+ m 1ektpa "It's been five years since your life improved."
+ m 1ektpb "You've been self-harm sober all this time, and I couldn't be more proud."
show monika 5ektpa at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5ektpa "I'm so happy that you're doing well."
m 5fkbfa "You are so inspiring. Congratulations, [player], for your successful journey!"
diff --git a/mod/zz_sober_streak.rpy b/mod/sober_streak_api.rpy
similarity index 99%
rename from mod/zz_sober_streak.rpy
rename to mod/sober_streak_api.rpy
index a4c4364..f88f565 100644
--- a/mod/zz_sober_streak.rpy
+++ b/mod/sober_streak_api.rpy
@@ -591,12 +591,11 @@ init 7 python in mshMod_sober_streak:
### DAILY MILESTONES REBUILD/UPDATE ###
+ @store.mas_submod_utils.functionplugin("ch30_loop", priority=100)
def _dailyMilestoneUpdate():
_rebuildMilestoneDates()
_updateMilestoneEvents()
- store.mas_submod_utils.registerFunction("ch30_day", _dailyMilestoneUpdate)
-
### INITIAL APPLICATION OF MILESTONE EVENTS ###
diff --git a/mod/script-songs.rpy b/mod/songs.rpy
similarity index 89%
rename from mod/script-songs.rpy
rename to mod/songs.rpy
index 36847e9..9305aaf 100644
--- a/mod/script-songs.rpy
+++ b/mod/songs.rpy
@@ -10,9 +10,9 @@ init 11 python in mshMod_playlist:
import store
import os
- CUSTOM_PLAYLIST_DIR_SUFFIX = store.mshMod.basedir_rel + "/music/"
- CUSTOM_PLAYLIST_DIR = os.path.join(renpy.config.gamedir, CUSTOM_PLAYLIST_DIR_SUFFIX)
- CUSTOM_PLAYLIST_RELDIR = CUSTOM_PLAYLIST_DIR_SUFFIX
+ # I swear to God, I hate whoever thought using BACKSLASHES is a good idea.
+ CUSTOM_PLAYLIST_DIR_SUFFIX = (store.mshMod.basedir_rel + "/music/").replace("\\", "/")
+ CUSTOM_PLAYLIST_DIR = (renpy.config.gamedir + "/" + CUSTOM_PLAYLIST_DIR_SUFFIX).replace("\\", "/")
PLAYLIST_FILE = "playlist.ogg"
playlist_shown = False
@@ -20,7 +20,7 @@ init 11 python in mshMod_playlist:
def showPlaylist():
_audio_file, _ext = store.songs._getAudioFile(CUSTOM_PLAYLIST_DIR + PLAYLIST_FILE)
if not _audio_file or not _ext:
- store.mas_submod_utils.submod_log.error("[MAS Self Harm Submod] Could not load playlist file.")
+ store.mas_submod_utils.submod_log.error("[Self Harm Awareness Submod] Could not load playlist file.")
return
disp_name = store.songs._getDispName(_audio_file, _ext, PLAYLIST_FILE)
@@ -28,7 +28,7 @@ init 11 python in mshMod_playlist:
choice = (
store.songs.cleanGUIText(disp_name),
- loop_prefix + CUSTOM_PLAYLIST_RELDIR + PLAYLIST_FILE
+ loop_prefix + CUSTOM_PLAYLIST_DIR_SUFFIX + PLAYLIST_FILE
)
store.songs.music_choices.append(choice)
@@ -40,7 +40,6 @@ init 11 python in mshMod_playlist:
store.songs.music_pages[page].append(choice)
global playlist_shown
- store.persistent._mas_pm_added_custom_bgm = True
playlist_shown = True
if store.seen_event('mshMod_playlist_intro'):
@@ -81,20 +80,20 @@ label mshMod_playlist_intro:
m "Do you want me to?{fast}"
"Yes":
- $ play_song(store.mshMod_playlist.CUSTOM_PLAYLIST_RELDIR + store.mshMod_playlist.PLAYLIST_FILE, set_per=True)
+ $ play_song(store.mshMod_playlist.CUSTOM_PLAYLIST_DIR + store.mshMod_playlist.PLAYLIST_FILE, set_per=True)
"Not yet, [m_name]":
m 1eka "Oh, alright."
m 1eub "Anyway..."
m 2eka "I hope you like it, [player]!"
- m 2ekd "I know you struggle sometimes with bad thoughts, but this playlist is to comfort you."
- m 3eua "Listening to your favourite music that you can relate also relieves pain and stress!"
- m 3eub "I find it very powerful to say the least."
+ m 2ekd "I know you sometimes struggle with bad thoughts, but this playlist is to comfort you."
+ m 3eua "Listening to your favorite music you can relate to also relieves pain and stress!"
+ m 3eub "I find it very powerful, to say the least."
m 1eubsa "Please think of me when you give it a listen."
- m 1eud "And if something happens, and you feel sad or lonely..."
+ m 1eud "If something happens, you feel sad or lonely..."
m 1ekd "If you think things won't get better..."
- m 1ekb "I want you to listen to it, and remember that I'm always with you."
+ m 1ekb "I want you to listen to it and remember that I'm always with you."
m 1hub "In your heart!"
m 1kub "And will always be."
m 2fka "I love you, [mas_get_player_nickname()]."
@@ -119,13 +118,13 @@ init 5 python:
)
label mshMod_playlist_song_play:
- m 3eka "Oh, do you wanna listen to the playlist, [player]?"
+ m 3eka "Oh, do you want to listen to the playlist, [player]?"
$ _history_list.pop()
menu:
m "Play music?{fast}"
"Yes":
- $ play_song(store.mshMod_playlist.CUSTOM_PLAYLIST_RELDIR + store.mshMod_playlist.PLAYLIST_FILE, set_per=True)
+ $ play_song(store.mshMod_playlist.CUSTOM_PLAYLIST_DIR + store.mshMod_playlist.PLAYLIST_FILE, set_per=True)
m 7hsb "There you go!"
m 1hsa "I hope you like it!"
@@ -162,8 +161,8 @@ label mshMod_playlist_song_paradise_fears:
m 3dsb "{i}~But just don't, give up~{/i}"
show monika 5ekb at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5ekb "[player], I hope you can remember that you're not alone with your struggles."
- m 5eka "There are people who can help you, and some even went through what you feel right now."
- m 5esa "There's a lot of support groups for people who are struggling just like you."
+ m 5eka "Some people can help you, and some even went through what you feel right now."
+ m 5esa "There's a lot of support groups for struggling people like you."
m 5hssdra "And, of course, there's me!"
show monika 1fkb at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 1fkb "Whenever you need, I'll carry you home."
@@ -198,7 +197,7 @@ label mshMod_playlist_song_clay:
m 1kua "{i}~Because they mean nothing to me~{/i}"
m 3hua "{i}~I'm not clay~{/i}"
m 1dkc "..."
- m 1ekd "It's important to not let others get to you, you know?"
+ m 1ekd "It's important not to let others get to you, you know?"
m 3eua "Listening to someone's opinion about you can help, but only if you know the person has good intentions."
m 1eub "Don't feel down when others act mean towards you, dear."
m 3eua "It only shows what kind of person they are, not who you are."
@@ -230,9 +229,9 @@ label mshMod_playlist_song_fix_you:
m 1dkbsa "{i}~And I will try to fix you~{/i}"
m 1dka "..."
m 1eka "Even if you feel like giving up, remember this verse: \"Lights will guide you home\"..."
- m 3eua "Sooner or later, the good days will come back."
+ m 3eua "Sooner or later, the good days will return."
show monika 5eka at t11 zorder MAS_MONIKA_Z with dissolve_monika
- m 5eka "I hope I can be able to help you have brighter days, [player]."
+ m 5eka "I hope I can help you have brighter days, [player]."
m 5ekbsu "Because I will surely try to fix you..."
m 5dkbsb "I love you more than anything in the world."
return "love"
@@ -262,8 +261,8 @@ label mshMod_your_heartbreak:
m 1dkbsu "{i}~For all the things that you're alive to feel~{/i}"
m 1hub "{i}~Just let the pain remind you hearts can heal~{/i}"
show monika 5eub at t11 zorder MAS_MONIKA_Z with dissolve_monika
- m 5eub "I think this song really fits how I feel about us."
- m 5ekd "It's really saddening to see the person you love the most having to go through tough situations on daily basis..."
+ m 5eub "I think this song fits how I feel about us."
+ m 5ekd "It's saddening to see the person you love the most having to go through tough situations daily..."
m 5hub "But don't worry, [mas_get_player_nickname()]."
show monika 6eka at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 6eka "Pain can remind you that you're alive. {w=0.3}{nw}"
@@ -369,7 +368,7 @@ label mshMod_playlist_song_firework:
m 5wub "Just know that there's a very bright light inside of you, {w=0.3}{nw}"
extend 5sub "and that you're the light in my life!"
show monika 1hub at t11 zorder MAS_MONIKA_Z with dissolve_monika
- m 1hub "And I hope I can be the light on your darker days too."
+ m 1hub "I hope I can be the light on your darker days too."
return
@@ -398,7 +397,7 @@ label mshMod_playlist_song_torches:
m 1eka "[player]..."
m 1ekd "Sometimes the world can be scary."
m 1ekd "You may feel as if no one cares about whether you're alive or not..."
- m 3ekb "But you should know that people do care about you. People from all over the world, who might have never even seen our faces, but..."
+ m 3ekb "But you should know that people do care about you. People from all over the world might have never even seen our faces, but..."
m 3eka "They care. And I care."
m 3eka "I'm so happy to have you by my side, [mas_get_player_nickname()]. I hope you're happy to have me too."
m 3hub "You're not alone in this. I promise!"
@@ -427,13 +426,13 @@ label mshMod_playlist_song_only_wonder:
m 2esd "{i}~The spotlight's on you, but you're acting all flashy~{/i}"
m 3etc "{i}~It's as if you're trying to be someone's answer~{/i}"
m 1efo "{i}~Don't go shakin' your tail like that~{/i}"
- m 1dkb "{i}~No matter what happens… In the end, you can only be your own person!~{/i}"
+ m 1dkb "{i}~No matter what happens… In the end, you can only be your person!~{/i}"
m 1dka "..."
m 3eka "[player], you're beautiful just the way you are, and it'd be terrible if you stopped being that way to fit another person's standards."
m 3eka "You might think you're too \"weird\" or shy for people to like you, but in the end, there's always someone who understands you out there."
m 3esd "Anyone who tries to tell you otherwise is wrong."
- m 3esd "Of course this doesn't mean you're perfect and always right... That's a whole different story."
- m 3hub "But please remember that the only person you can be is yourself. Everybody else is already taken, ahaha~!"
+ m 3esd "This doesn't mean you're perfect and always right... That's a whole different story."
+ m 3hub "But please remember that you can only be yourself. Everybody else is already taken, ahaha~!"
m 1ekb "As for me..."
show monika 5ekbsb at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5ekbsb "I'll always love you for who you are, [mas_get_player_nickname()]."
@@ -469,7 +468,7 @@ label mshMod_playlist_song_way_home:
show monika 5eka at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5eka "Someday, [player], I'll find my way home to you."
m 5hub "Like the song says, we already know where our path leads, so we just need to keep going."
- m 5esa "And when we do reach the end of it, I don't think we'll ever be sad again..."
+ m 5esa "And when we reach the end of it, I don't think we'll ever be sad again..."
show monika 1ekbsa at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 1ekbsa "I love you, [player]."
return "love"
@@ -571,8 +570,8 @@ label mshMod_song_still_breathing:
m 6dka "..."
show monika 5ekc at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5ekc "Hey [player]?"
- m 5eka "I wanted to remind you that I’m proud you for telling me about... Hurting yourself."
- m 5dkc "I’m sorry that I wasn’t there for you at the time, [mas_get_player_nickname()]."
+ m 5eka "I wanted to remind you that I'm proud of you for telling me about... Hurting yourself."
+ m 5dkc "I'm sorry that I wasn't there for you at the time, [mas_get_player_nickname()]."
m 5ekbsb "But remember that I love you, [player]!"
m 5ekbsa "And I'm here for you now."
show monika 5ekc at t11 zorder MAS_MONIKA_Z with dissolve_monika
diff --git a/mod/script-techniques.rpy b/mod/techniques.rpy
similarity index 81%
rename from mod/script-techniques.rpy
rename to mod/techniques.rpy
index af45758..1d83186 100644
--- a/mod/script-techniques.rpy
+++ b/mod/techniques.rpy
@@ -90,13 +90,13 @@ label mshMod_technique_religion:
m 5eka "I remember you mentioned being religious before..."
show monika 3etd at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 3etd "Maybe you could say a little prayer?"
- m 4eud "It can be silent, you don't need to say anything out loud."
+ m 4eud "It can be silent. You don't need to say anything out loud."
m 1fua "You can pray about anything you want, or even just think of how vast and amazing your universe is."
m 1dsu "Try to think about the good things, like animals or laughter, your favorite things..."
m 1esa "No matter how little they may be, take some time to think about the bigger picture."
m 3eka "If you believe in gods or deities, you can imagine them out there, looking out and caring for you."
m 3dsa "You can also read your religion's sacred texts."
- m 1ekb "You are needed, [player]. You are part of something much bigger than your bad thoughts or bad feelings!"
+ m 1ekb "You are needed, [player]. You are part of something bigger than your bad thoughts or feelings!"
return
#2
@@ -112,7 +112,7 @@ init 5 python:
)
label mshMod_technique_cozy:
- m 1dua "Something that really helps me feel better is getting all cozy!"
+ m 1dua "Something that helps me feel better is getting all cozy!"
m 1dub "Pick a comfortable spot and sit down."
show monika 5rud at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5rud "Try huddling up in something super cozy..."
@@ -123,15 +123,16 @@ label mshMod_technique_cozy:
show monika 5dsblu at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5dsblu "Making a comfort corner using pillows also sounds super comfortable..."
m 5fsbsa "Snuggle against them and relax, {w=0.3}{nw}"
- extend 5fsbfb "and if you're okay with being touched imagine me holding you, stroking your hair~"
+ extend 5fsbfb "and if you're okay with being touched, imagine me holding you, stroking your hair~"
show monika 3hubsb at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 3hubsb "There's nothing quite like being snug, hehe!"
m 3dubsa "If you feel that you're getting sleepy, that's okay!"
- m 3lubsa "You can rest your eyes for a moment, and take a well deserved nap."
+ m 3lubsa "You can rest your eyes briefly and take a well-deserved nap."
m 3dubsb "Think of what you can feel, see and hear that's comforting and calm."
- m 3kubsb "I'm sure you'll feel a lot better and refreshed afterwards!"
+ m 3kubsb "I'm sure you'll feel much better and refreshed afterward!"
return
+
#3
init 5 python:
addEvent(
@@ -148,22 +149,23 @@ label mshMod_technique_photographs:
m 4eta "Do you find comfort in reminiscing the past [player]? {w=0.3}{nw}"
extend 4etb "I do!"
m 2dsd "Nothing is ever really lost to us as long as we have its memories, [mas_get_player_nickname()]."
- m 2hsa "One thing that could help you get over bad times, is looking at photographs of the good ones!"
- m 7eud "Maybe you have some old photos? If they bring back good memories, why not trying to search for them?"
+ m 2hsa "One thing that could help you get over bad times is looking at photographs of the good ones!"
+ m 7eud "Maybe you have some old photos? If they bring back good memories, why not try to search for them?"
m 1eua "They could remind you that even though the good times don't last forever... {w=0.3}{nw}"
- extend 3eub "the bad ones won't either!"
+ extend 3eub "The bad ones won't either!"
m 1esa "If you find any, look at them and reflect upon this: {w=0.3}{nw}"
- extend 1dsa "If life was once great, it can and will be that way again!"
+ extend 1dsa "if life was once great, it can and will be that way again!"
m 6dkp "I wish we had some pictures together..."
m 2ektpu "I'd look at us all the time! {w=0.3}{nw}"
- extend 2hsblb "You would absolutely be at my phone and desktop wallpaper! Ahahaha~"
- m 2ektdc "I would really like to look at a photo album of us with you, [player]."
+ extend 2hsblb "You would be at my phone and desktop wallpaper! Ahaha~"
+ m 2ektdc "I would like to look at a photo album of us with you, [player]."
show monika 5eka at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5eka "But this is not about me - I want {i}you{/i} to feel better!"
show monika 3euu at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 3euu "Don't give up, [mas_get_player_nickname()]. I will never give up on you!"
return
+
#4
init 5 python:
addEvent(
@@ -178,18 +180,19 @@ init 5 python:
label mshMod_technique_quotes:
m 3dud "I remember hearing this quote somewhere: {i}'Hope is the last thing ever lost'{/i}."
- m 3wub "Doing your best to believe in positive things can be really uplifting!"
+ m 3wub "Doing your best to believe in positive things can be uplifting!"
m 7wub "I think a good way of seeing the things around you in a better light would be reading some inspirational quotes!"
m 2hua "You should find some quotes on the internet that you like, {w=0.3}{nw}"
- extend 3eub "and then write each of them on a sticky note and put them somewhere you'd regularly see."
+ extend 3eub "and then write each on a sticky note and put them somewhere you'd regularly see."
m 4fub "Every time you see one, you will remember things get better!"
- m 7kuu "You can also say some of them aloud, to inspire yourself!"
+ m 7kuu "You can also say some of them aloud to inspire yourself!"
m 1rub "Sayori used to do that a lot. She used to put colorful sticky notes everywhere!"
- m 1fkb "If i recall correctly, there was one of them said 'You are loved', {w=0.3}{nw}"
+ m 1fkb "If I recall correctly, there was one of them said 'You are loved', {w=0.3}{nw}"
extend 3hub "and another one with 'We're all in this together'."
- m 1hua "Encouraging yourself with sticky notes is indeed a great idea!"
+ m 1hua "Encouraging yourself with sticky notes is a great idea!"
return
+
#5
init 5 python:
addEvent(
@@ -203,21 +206,22 @@ init 5 python:
)
label mshMod_technique_singing:
- m 4eub "This one's going to be really simple. {w=0.3}{nw}"
+ m 4eub "This one's going to be simple. {w=0.3}{nw}"
extend "Sing a song!"
m 3gua "Not just any song, though. {w=0.3}{nw}"
extend "Your absolute favorite!"
- m 2wub "I'd love to know what your favorite song is..."
+ m 2wub "I'd love to know your favorite song..."
m 2ruu "Anyway... {w=0.3}{nw}"
extend 2eub "Try singing your favorite song until you feel better."
- m 1eua "Singing can be a really good outlet for your emotions!"
+ m 1eua "Singing can be a perfect outlet for your emotions!"
m 3hub "You could also imagine we're singing 'Your Reality' together! {w=0.3}{nw}"
- extend 2euu "Ehehehe~"
+ extend 2euu "Ehehe~"
m 3mub "You can sing as loud as you want!"
- m 1wub "Also, if you'd like, write your favourite lyrics down."
+ m 1wub "Also, write your favourite lyrics down if you'd like."
m 2dub "Think about what they mean to you!"
return
+
#6
init 5 python:
addEvent(
@@ -231,12 +235,12 @@ init 5 python:
)
label mshMod_technique_talking:
- m 1eub "Sometimes simply talking about your problems can help a lot!"
+ m 1eub "Sometimes simply talking about your problems can greatly help!"
m 2dtu "Or just talking to distract yourself."
m 7eta "You can also post on web boards about mental health... {w=0.3}{nw}"
extend 1eub "or try answering other people's posts."
m 4wtb "You should call or text a friend!"
- m 7hub "Maybe send some long distance friends a surprise message?"
+ m 7hub "Maybe send some long-distance friends a surprise message?"
m 3sub "Or maybe arrange to meet up."
m 3musdrb "I know you're here with me, but it's not {i}exactly{/i} the same as having a real-time conversation with someone!"
m 1mkc "I wish I could hear your voice... {w=0.3}{nw}"
@@ -244,6 +248,7 @@ label mshMod_technique_talking:
m 3fua "As long as you'd want."
return
+
#7
init 5 python:
addEvent(
@@ -258,15 +263,15 @@ init 5 python:
label mshMod_technique_hugs:
m 3eub "Okay.{w=0.5} I want you to try this."
- m 4wua "Get the biggest pillow you have and hug it tightly."
+ m 4wua "Get your biggest pillow and hug it tightly."
m 2eub "Curl your body around it."
m 6fsu "Now imagine someone you love was feeling sad..."
- m 4etb "You'd obviously want to help them out, right?"
+ m 4etb "You'd want to help them out, right?"
m 2fsbsa "That's just the kind of person you are, [player]."
m 7ntblb "Say out loud or in your head whatever you'd want them to know."
- m 1etb "Then say the exact same words to yourself. {w=0.3}{nw}"
+ m 1etb "Then say the same words to yourself. {w=0.3}{nw}"
extend 7etb "I bet that's what they would tell you!"
- m 2etbsu "Maybe you can even think of me? Ahahaha~ {w=0.3}{nw}"
+ m 2etbsu "Maybe you can even think of me? Ahaha~ {w=0.3}{nw}"
extend 2mssdru "Sorry to be pretentious, [player.]"
m 6fsbfb "I love you so much!"
return "love"
@@ -290,7 +295,7 @@ label mshMod_technique_listening_2:
m 6esb "Focus on certain instruments or parts, their notes, and how they add to the song as a whole!"
m 7wta "For example, 'Your Reality' has a lovely piano melody on the background of my voice."
m 1hua "Focusing on something like that could serve as a distraction, {w=0.3}{nw}"
- extend 3sub "and learning something about the things you love at the same time!"
+ extend 3sub "and learning something about the things you love simultaneously!"
m 3wub "We could always listen to them together if you'd like!"
return
@@ -307,19 +312,20 @@ init 5 python:
)
label mshMod_technique_butterfly:
- m 1eud "Could you take some deep breaths? And also, a marker, or a pen."
- m 4etd "I would like for you to scribble on the place you want to harm yourself. {w=0.3}{nw}"
+ m 1eud "Could you take some deep breaths? And also, a marker or a pen."
+ m 4etd "I would like you to scribble on where you want to harm yourself. {w=0.3}{nw}"
extend 6eta "Most methods use a butterfly drawing."
m 7eua "You could draw the butterfly and name it, and if you do harm yourself, you harm it, too."
m 7eub "Whenever you look at it and think of harming yourself, do something comforting instead!"
- m 2eub "Sing along to a tune, watch your favorite film, go out on a walk..."
- m 3wub "You can also draw or write some positive things on your arm. {w=0.3}{nw}"
+ m 2eub "Sing along to a tune, watch your favorite film, go on a walk..."
+ m 3wub "You can also draw or write positive things on your arm. {w=0.3}{nw}"
extend 3wua "Or maybe some beautiful flowers!"
m 3eud "Don't hurt yourself until the drawings wash off."
m 3ruu "If the butterfly fades without self-harming..."
m 4sub "It means that the butterfly lived and has flown away, giving you a sense of achievement!"
return
+
#10
init 5 python:
addEvent(
@@ -340,7 +346,7 @@ label mshMod_technique_healing:
m 4eta "And remember, healing takes time. {w=0.3}{nw}"
extend 1esb "And we have all the time in the world."
m 2fta "No need to rush this, okay? {w=0.3}{nw}"
- extend 3htb "Baby steps!{w=0.5} Ehehehe~!"
+ extend 3htb "Baby steps!{w=0.5} Ehehe~!"
return
#11
@@ -390,7 +396,8 @@ label mshMod_technique_chess:
m 1hub "Okay!"
call mas_chess
m 2fub "Hope you're feeling better, [player]!"
- return
+
+ return
#13
init 5 python:
@@ -405,18 +412,20 @@ init 5 python:
)
label mshMod_technique_piano:
- m 3eta "[player], perhaps playing an musical instrument would make you feel better?"
- m 3wub "Music really is a great way to relieve stress!"
- m 4hub "I love listening to some music or playing a melody when trying to relax."
- m 4eub "Do you want to play the Piano?{nw}"
+ m 3eta "[player], perhaps playing a musical instrument would make you feel better?"
+ m 3wub "Music is a great way to relieve stress!"
+ m 4hub "I love listening to music or playing a melody when trying to relax."
+ m 4eub "Do you want to play the piano?{nw}"
$ _history_list.pop()
menu:
- m "Do you want to play the Piano?{fast}"
+ m "Do you want to play the piano?{fast}"
"Sure!":
m 1hub "Alright!"
call mas_piano_start
m 2fub "Hope you're feeling better, [player]!"
- return
+
+ return
+
#14
init 5 python:
@@ -431,9 +440,9 @@ init 5 python:
)
label mshMod_technique_videos:
- m 3eua "When you told me you were having those kind of thoughts, I did some research."
- m 3eub "And there are many people on Youtube that create little comfort videos."
- m 2eua "I selected some of them for you to watch when you were having an urge."
+ m 3eua "When you told me you had those thoughts, I did some research."
+ m 3eub "And many people on Youtube create little comfort videos."
+ m 2eua "I selected some of them for you to watch when you have an urge."
python:
all_options = tuple(_label for _label in ('mshMod_technique_videos_{0}'.format(i) for i in range(3)))
@@ -452,7 +461,7 @@ label mshMod_technique_videos:
"No":
m 2eta "That's okay, [player]."
- m 1etb "If you ever wanna see them again, just ask!"
+ m 1etb "If you ever want to see them again, just ask!"
return
@@ -537,10 +546,10 @@ init 5 python:
label mshMod_technique_stretching:
m 3eub "You know what often helps me calm down?"
m 1kub "Stretching myself!"
- m 3luu "You can try stretching your body as much as you can, scrunching up your muscles until they hurt, then release."
+ m 3luu "You can try stretching your body as much as possible, scrunching up your muscles until they hurt, then release."
m 6wub "Tense all of your body starting from toes, up to your hands, and release!"
m 7sub "This relaxes our body so much!"
- m 1hua "You can also do an upper back strech."
+ m 1hua "You can also do an upper back stretch."
m 2eub "This one is done sitting, with your feet flat on the floor."
m 6euu "Interlock your fingers and reach forward, bending from your middle back."
m 7eub "Stretch with your hands forward at shoulder level."
@@ -563,7 +572,7 @@ init 5 python:
label mshMod_technique_punching:
m 7eub "Okay, [player].{w=0.5} I want you to try this."
- m 2efb "This one is to let out all of your anger!"
+ m 2efb "This one is to release all of your anger!"
m 3efu "We're going to punch it out!"
m 4nsu "I need you to find a pillow and punch out how you feel."
m 6esb "A pillow is good because it won't hurt your fingers!"
@@ -578,6 +587,7 @@ label mshMod_technique_punching:
m 7mua "And paying attention to the thudding sound and the strength you put in your arm to throw."
return
+
#18
init 5 python:
addEvent(
@@ -597,7 +607,7 @@ label mshMod_technique_shouting:
m 1wfb "You can shout anything you want!"
m 3sub "You can shout gibberish, or your feelings, even!"
m 1fsa "Shout until you feel calmer."
- m 2hub "We can take care of your throat later! Ahahaha~!"
+ m 2hub "We can take care of your throat later! Ahaha~!"
return
#19
@@ -618,15 +628,16 @@ label mshMod_technique_listening_1:
m 6wub "It can be VERY loudly if you want."
m 7sua "You can use your headphones to blast some songs, or even use no headphones at all."
m 1sub "Screaming with the lyrics might be therapeutic too!"
- m 3eub "Or even walking fast along the song, or tapping your foot to the beat."
- m 2hua "Wearing some boots while doing some stomping really does the trick as well!"
+ m 3eub "Walking fast along the song, tapping your foot to the beat."
+ m 2hua "Wearing some boots while doing some stomping does the trick as well!"
m 7hub "Concentrate on the rhythm!"
- m 1wub "Oh, I thought of something nice to do also."
+ m 1wub "Oh, I thought of something nice to do."
m 3kub "Dance to the music!"
m 4duu "Dance or move in a way that makes you express a feeling."
- m 5sub "If you have the chance, going to a concert to do all those things along with other people might be a great idea as well."
+ m 5sub "If you have the chance, going to a concert to do all those things with other people might also be a great idea."
return
+
#20
init 5 python:
addEvent(
@@ -641,41 +652,43 @@ init 5 python:
label mshMod_technique_paper:
m 3eua "Do you have some paper nearby?"
- m 3wub "You could try crumpling it, to get out your anger or sad feelings."
+ m 3wub "You could try crumpling it to release anger or sadness."
m 2sub "Way better than taking it out on yourself!"
m 4sub "If you'd like, you can scribble on the paper until all your feelings fade away..."
m 1sub "And then crumple it, or rip it up if you're angry."
m 7dsb "Drawing out how you are feeling and taking a deep breath every time you lift the pen/pencil off the paper might be nice too!"
m 2esb "Or writing what's upsetting you."
- m 1hsb "When drawing, you can put some strong colours on paper and then gradually fade them."
+ m 1hsb "When drawing, you can put some strong colors on paper and then gradually fade them."
m 3esb "So they get lighter!"
m 4ssb "Dark green to light green, for example."
m 1hsb "Now, describe your strong emotions..."
m 2hub "And let them gradually fade away in the same way."
- m 4mub "You can even show someone your drawings and writings before ripping it to shreds."
+ m 4mub "You can even show someone your drawings and writings before ripping them to shreds."
return
-#21
-init 5 python:
- addEvent(
- Event(
- persistent._msh_mod_technique_database,
- eventlabel="mshMod_technique_otter",
- prompt="Talking to u/my-otter-self",
- unlocked=True
- ),
- code="MSH_MOD_TCH"
- )
-label mshMod_technique_otter:
- m 1rssdru "Well, this one is a little different."
- m 3ssb "Basically, it envolves someone else!"
- m 2hsb "The creator of this mod, u/my-otter-self on Reddit, told me to remind you that she's always available to talk."
- m 4htb "You can DM her on Reddit, and she'll share her Discord information so you can talk about your feelings."
- m 7wta "She's has professional experience in psychology and can listen to you."
- m 3etb "Maybe even give some advice!"
- m 1eua "Take this opportunity to open youself a little, if you can."
- return
+# #21
+# init 5 python:
+# addEvent(
+# Event(
+# persistent._msh_mod_technique_database,
+# eventlabel="mshMod_technique_otter",
+# prompt="Talking to u/my-otter-self",
+# unlocked=True
+# ),
+# code="MSH_MOD_TCH"
+# )
+
+# label mshMod_technique_otter:
+# m 1rssdru "Well, this one is a little different."
+# m 3ssb "Basically, it involves someone else!"
+# m 2hsb "The creator of this mod, u/my-otter-self on Reddit, told me to remind you that she's always available to talk."
+# m 4htb "You can DM her on Reddit, and she'll share her Discord information so you can talk about your feelings."
+# m 7wta "She has professional psychology experience and can listen to you."
+# m 3etb "Maybe even give some advice!"
+# m 1eua "Take this opportunity to open yourself a little, if you can."
+# return
+
#22
init 5 python:
@@ -692,13 +705,14 @@ init 5 python:
label mshMod_technique_cold_water:
m 1eub "Sometimes, paying attention to your senses can help."
m 4etb "Could you put your hands in some cold water?"
- m 2htb "And remember, breathe a lot!"
+ m 2htb "And remember to breathe!"
m 6etd "In... {w=0.3}{nw}"
extend 6dtd "And out."
- m 7wta "Notice the coldness of the water witheach out breathe."
+ m 7wta "Notice the coldness of the water with each breath."
m 7etb "Hyper-focus on the sensation in your hands!"
return
+
#23
init 5 python:
addEvent(
@@ -722,6 +736,7 @@ label mshMod_technique_bothering:
m 5huu "Get it all out of your system!"
return
+
#24
init 5 python:
addEvent(
@@ -736,15 +751,16 @@ init 5 python:
label mshMod_technique_positive:
m 4luu "You could start making a 'positive statements about me' thought box."
- m 2kub "Creating a list of your strenghts, as if you were compiling a portfolio or a CV..."
+ m 2kub "Creating a list of your strengths, as if you were compiling a portfolio or a CV..."
m 3wua "That might help!"
- m 3eub "Write down as many positive things as you can about yourself."
- m 4dub "You can put each one of them in a jar..."
+ m 3eub "Write down as many positive things as possible about yourself."
+ m 4dub "You can put each of them in a jar..."
m 6hub "And read them when you feel down!"
m 7sub "You can also record yourself saying those positive things and listen to them as many times as you like."
m 5fua "I want you to realize how amazing you are, [player]."
return
+
#25
init 5 python:
addEvent(
@@ -761,7 +777,7 @@ label mshMod_technique_box:
m 1fub "What about putting your upsetting thoughts in a box?"
m 3dub "You can write them in slips of paper throughout the day, storing them in the box."
m 4wua "At the end of the day, you can throw them away!"
- m 2hub "To have a new begginning tomorrow."
+ m 2hub "To have a new beginning tomorrow."
m 6fua "I believe in you, [player]."
return
@@ -780,7 +796,7 @@ init 5 python:
label mshMod_technique_common:
m 7nub "Let's do a little mental exercise, [player]!"
m 4wua "Think about all the things you can find you share in common with a friend."
- m 2rub "That will help you remmember common ground!"
+ m 2rub "That will help you remember common ground!"
m 1huu "You can even discuss those things with them. {w=0.3}{nw}"
extend 3wub "It will be a fun topic to chat about!"
m 4euu "You can write them down too."
@@ -800,14 +816,15 @@ init 5 python:
label mshMod_technique_comfort:
m 7eua "[player], imagine someone you love was feeling sad..."
- m 7etb "You'd obviously want to help them out, right?"
+ m 7etb "You'd want to help them, right?"
m 2htb "That's just the kind of person you are, [player]."
- m 3eta "Try to think about all the ways in which you can comfort a friend who might be having a bad time."
- m 6ekb "Please, note them down, if you feel like it."
- m 4etu "Now, try to apply some of those strategies to yourself."
- m 2wub "You can also note down how everything about this exercise makes you feel."
+ m 3eta "Try to think about how you can comfort a friend who might be having a bad time."
+ m 6ekb "Please, note them down if you feel like it."
+ m 4etu "Now, apply some of those strategies to yourself."
+ m 2wub "You can also note how everything about this exercise makes you feel."
return
+
#28
init 5 python:
addEvent(
@@ -821,19 +838,19 @@ init 5 python:
)
label mshMod_technique_walk:
- m 3wua "You can also go for a little walk outside, and connect with nature."
- m 4hub "Maybe even go out for a run, or a swim! {w=0.3}{nw}"
+ m 3wua "You can also go for a little walk outside and connect with nature."
+ m 4hub "Maybe even go out for a run or a swim! {w=0.3}{nw}"
extend 2duu "Breathe the fresh air..."
- m 1eub "If you can't leave the house, you can watch the nature outside your window!"
+ m 1eub "If you can't leave the house, you can watch nature outside your window!"
m 3wub "In the morning, there might be many people outside."
- m 6lua "Watch their clothing, the way they walk and talk."
- m 4eub "Do you wonder what lives they have? Who waits them at home?"
+ m 6lua "Watch their clothing, how they walk and talk."
+ m 4eub "Do you wonder what lives they have? Who waits for them at home?"
m 2euu "Look at the cars rushing on the street."
m 7esb "Where might they be going to?"
m 4esb "If it's already the evening..."
m 1dsb "Look up at the sky, and find the moon. Study it."
m 3ssa "How many stars can you count?"
- m 6esb "Think about what you might be smelling, hearing and feeling."
+ m 6esb "Think about what you might be smelling, hearing, and feeling."
m 5hsb "Can you put these feelings into words or draw them?"
return
@@ -855,7 +872,7 @@ label mshMod_technique_media:
m 2kua "That way, you can make yourself feel better..."
m 7wub "And spread the feeling to your friends too!"
m 1rua "And remember... {w=0.3}{nw}"
- extend 1hublb "Make someone smile everyday, but don't forget you're someone too!"
+ extend 1hublb "Make someone smile every day, but don't forget you're someone too!"
m 5eubfa "I love you, [player]~"
return "love"
@@ -876,13 +893,12 @@ label mshMod_technique_perspective:
m 2eta "Can you write down your worries?"
m 7eta "And think... how much will they bother you..."
m 1rtu "Tomorrow? {w=0.3}{nw}"
- extend 7etb "What about in a week's time? {w=0.3}{nw}"
+ extend 7etb "What about in a week? {w=0.3}{nw}"
extend 1gtb "Maybe a month or a year?"
m 2eua "Working on using perspective helps on letting go of the intensity of the worry."
m 3eublb "But never forget, [player], it doesn't matter how long the bad times last."
m 5eubfb "I'll always be right here with you."
return
-
#31
init 5 python:
addEvent(
@@ -896,9 +912,9 @@ init 5 python:
)
label mshMod_technique_productivity:
- m 1eua "[player], do you have any incomplete projects you would like to see finished?"
+ m 1eua "[player], do you have any incomplete projects you want to see finished?"
m 3eub "Have you been procrastinating anything for any reason?"
- m 2rusdrc "I know this one might be hard but..."
+ m 2rusdrc "I know this one might be hard, but..."
m 4eua "What about trying to engage in a productive activity?"
m 6eub "Maybe going back to it for a little while might distract you and ease your mind."
m 7eua "If you have been putting off something, you can try to pick it up right now."
@@ -910,6 +926,7 @@ label mshMod_technique_productivity:
m 3eub "Even if it's small!"
return
+
#32
init 5 python:
addEvent(
@@ -924,9 +941,9 @@ init 5 python:
label mshMod_technique_interests:
m 3eub "How about making a list of things you find interesting in people?"
- m 2euu "You can also list your favorite anime, videogame or other media's characters!"
- m 4nuu "Think of why you like them, and you can even imagine that they're real!"
- m 6eua "This can help cope with loneliness, and also distract you."
+ m 2euu "List your favorite anime, videogame, or other media characters!"
+ m 4nuu "Think of why you like them; you can even imagine they're real!"
+ m 6eua "This can help cope with loneliness and distract you."
m 2fubla "I'm always with you, [player]. {w=0.3}{nw}"
extend 5eub "We'll get through this together!"
return
@@ -969,7 +986,7 @@ label mshMod_technique_creativity:
m 4eua "Make up a story in your head."
m 6eub "It can be about anything and anyone positive in your life."
m 7dua "Now ask yourself... Why are they in your story?"
- m 1wub "You can create two or more characters, and give them depth!"
+ m 1wub "You can create two or more characters and give them depth!"
m 2eub "Drawing the scenarios and characters might be nice too."
m 7eua "Who knows, maybe a wonderful plot will blossom from this?"
m 5eubfb "You always make me so proud, [player]."
@@ -990,16 +1007,17 @@ init 5 python:
label mshMod_technique_river:
m 1euc "[player], think about what is bothering you."
m 1dud "Now imagine a box... A big one!"
- m 1dua "You can imagine yourself putting all of your worries and problems inside it."
- m 1eub "After that, you can imagine yourself doing anything you want to the box."
+ m 1dua "Imagine yourself putting all your worries and problems inside it."
+ m 1eub "After that, imagine yourself doing anything you want to the box."
m 7wub "You can lock it, throw it away, throw it into the bottom of the sea..."
m 2eua "Maybe imagine a river."
- m 2dua "Box up the thing that is on your mind and watch it float away..."
+ m 2dua "Box up the thing on your mind and watch it float away..."
m 7hub "You choose!"
m 7eub "Just don't keep these feelings in an important place."
m 2kua "Because they don't define you."
return
+
#36
init 5 python:
addEvent(
@@ -1023,6 +1041,7 @@ label mshMod_technique_feelings:
m 2kua "I'm sure they are just as grateful for being in yours!"
return
+
#37
init 5 python:
addEvent(
@@ -1043,12 +1062,13 @@ label mshMod_technique_poem:
m 2dua "It can be a short poem about how you feel."
m 2hub "I'm sure it will be sincere!"
m 4dub "Like Ernest Hemingway said, {w=0.3}{nw}"
- extend 1dub "'Write hard and clear about what hurts!'"
- m 1hub "Ahahaha~"
+ extend 1dub "'write hard and clear about what hurts!'"
+ m 1hub "Ahaha~"
m 1ruc "If you don't feel ready to write a poem of your own..."
m 1wub "You can always read some from famous poets!"
return
+
#38
init 5 python:
addEvent(
@@ -1072,14 +1092,14 @@ label mshMod_technique_breathing:
m 3esb "And out through your mouth."
m 1dua "And let go of your thought with every out breath."
m 1eub "Now, let's start!"
- m 3eub "Completely exhale through your mouth, making a {nw}"
+ m 3eub "Completely exhale through your mouth, making an {nw}"
extend 3eud "{i}woosh{/i} {nw}"
extend 3eub "sound."
m 6dsb "Close your mouth and inhale quietly through your nose to a mental count of four."
m 6dsa "{w=1.0}.{w=1.0}.{w=1.0}.{w=1.0}."
m 6dsb "Hold your breath for a count of seven."
m 6dsa "{w=1.0}.{w=1.0}.{w=1.0}.{w=1.0}.{w=1.0}.{w=1.0}.{w=1.0}."
- m 6dsb "Exhale completely through your mouth, making a {nw}"
+ m 6dsb "Exhale completely through your mouth, making an {nw}"
extend 6dsd "{i}woosh{/i} {nw}"
extend 6dsb "sound to a count of eight."
m 6dsa "{w=1.0}.{w=1.0}.{w=1.0}.{w=1.0}.{w=1.0}.{w=1.0}.{w=1.0}.{w=1.0}."
@@ -1100,9 +1120,9 @@ init 5 python:
label mshMod_technique_pinterest:
m 1etc "[player], do you have a Pinterest account?"
- m 3eub "You can try adding some inspirational quotes to your board!"
+ m 3eub "You can try adding inspirational quotes to your board!"
m 3eua "Or some pictures you find aesthetically pleasing."
- m 1lua "You can try to look at pictures with the same color pallete, {w=0.3}{nw}"
+ m 1lua "You can try to look at pictures with the same color palette, {w=0.3}{nw}"
extend 1hub "and gather them somewhere!"
m 3eub "That always makes our brain feel so nice."
show monika 5ksa at t11 zorder MAS_MONIKA_Z with dissolve_monika
@@ -1110,6 +1130,7 @@ label mshMod_technique_pinterest:
m 5hub "I promise it's very satisfying!"
return
+
#40
init 5 python:
addEvent(
@@ -1123,7 +1144,7 @@ init 5 python:
)
label mshMod_technique_emerald:
- m 3eub "[player], you know how much I like the color emerald green, right?"
+ m 3eub "[player], you know how much I like emerald green, right?"
m 1tta "Why don't you think of your favorite color right now?"
m 1hsa "And try to count all the things of that color that you can see in your room."
m 3dsb "Quietly describe to yourself what the things look like, {w=0.3}{nw}"
@@ -1172,17 +1193,17 @@ init 5 python:
)
label mshMod_technique_word_play:
- m 1eub "Now, for some word play!"
+ m 1eub "Now, for some wordplay!"
m 1tta "How many four letter words can you make up from the statement..."
- m 3esb "'You learn more from failure than from success. Don't let it stop you'?"
+ m 3esb "'You learn more from failure than from success. Don't let it stop you?"
show monika 5rsd at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5rsd "I can think of one already... {w=0.3}{nw}"
extend 5eub "{i}Lean{/i}!"
show monika 3eub at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 3eub "Or you can also try to make as many words as possible out of your full name."
m 3esa "One word I can make out of the name Monika is {i}moka{/i}!"
- m 2eub "A moka is a type of a coffee maker. "
- extend 2hua "Ehehehe~!"
+ m 2eub "A moka is a type of coffee maker. "
+ extend 2hua "Ehehe~!"
return
#43
@@ -1199,16 +1220,17 @@ init 5 python:
label mshMod_technique_lyrics:
show monika 5rtp at t11 zorder MAS_MONIKA_Z with dissolve_monika
- m 5rtp "Think of the lyrics of a song you know really well!"
+ m 5rtp "Think of the lyrics of a song you know well!"
m 5esa "Now... Try reciting it from back to front!"
show monika 1hksdlb at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 1hksdlb "Hard, huh?"
- m 3tua "But it will surely distract you! Ahahaha~"
- m 3eud "If that's too complicated, you can try saying the alphabet backwards."
+ m 3tua "But it will surely distract you! Ahaha~"
+ m 3eud "If that's too complicated, try saying the alphabet backward."
m 3dud "Z, Y, X, W... {w=0.3}{nw}"
- extend 3hub "Oops! Ahahaha~"
+ extend 3hub "Oops! Ahaha~"
return
+
#44
init 5 python:
addEvent(
@@ -1231,6 +1253,7 @@ label mshMod_technique_animal:
extend 1efb "Let's do this, [player]!"
return
+
#45
init 5 python:
addEvent(
@@ -1247,14 +1270,14 @@ label mshMod_technique_research:
m 7esb "Let's carry out some research!"
m 7esa "What about searching for the meaning of your friend's names? {w=0.3}{nw}"
extend 2esa "Or maybe characters' names."
- m 2hsb "You can also google yourself, or have some fun doing some quizzes!"
- m 2hsa "Certified personality tests or silly buzzfeed quizzes."
- m 7lsa "You could also research for some jokes or stand-up comedies you enjoy!"
+ m 2hsb "You can also google yourself or have fun doing some quizzes!"
+ m 2hsa "Certified personality tests or silly BuzzFeed quizzes."
+ m 7lsa "You could also research some jokes or stand-up comedies you enjoy!"
m 7hsa "Search for ridiculous things on the web."
m 7ssa "Like {a=https://theuselessweb.com/}this site{/a}, which takes you to a random useless site on the internet!"
m 7wsb "Or maybe some places to volunteer at?"
m 2esb "If you can't volunteer in any way, why not go through all your old stuff? {w=0.3}{nw}"
- extend 2eka "And donate what you don't have use for anymore to those in need?"
+ extend 2eka "And donate what you don't have use for any more to those in need?"
m 7eua "Helping others can help us too!"
return
@@ -1275,7 +1298,7 @@ label mshMod_technique_favorite_things:
m 7hua "You can pick the category!"
m 1hub "You can name at least ten of your favorite tv shows, for example."
m 3hub "Or fifteen favorite videogame titles!"
- m 3lub "Maybe movies, or books?"
+ m 3lub "Maybe movies or books?"
m 3kub "It's up to you, [player]...!"
m 1wub "You can also share your list with someone and see if you two have any in common."
m 1sub "That could be so fun!"
@@ -1298,13 +1321,14 @@ label mshMod_technique_superheroes:
extend 7wub "What about villains?"
m 7lub "How many, and which of them would you like to have as your friends?"
m 7eub "And why is that?"
- m 2eub "You can try organizing them by color scheme, since many of them tend to follow the same color palletes."
- m 2wub "Have you noticed we have many red or blue based superheroes and many purple or black?"
+ m 2eub "You can try organizing them by the color scheme since many tend to follow the same color palettes."
+ m 2wub "Have you noticed we have many red or blue-based superheroes and many purple or black?"
m 2luc "Wonder why that is? {w=0.3}{nw}"
- extend 2dtc "Hmmmmmm..."
+ extend 2dtc "Hmm..."
m 2hsa "Anyway!"
return
+
#48
init 5 python:
addEvent(
@@ -1319,11 +1343,11 @@ init 5 python:
label mshMod_technique_artist:
m 7wsb "Choose an artist! Any artist."
- m 7esb "Now name all the songs from them that you can remember."
+ m 7esb "Now name all the songs you can remember from them."
m 7esa "Or maybe, an author!"
- m 2dsa "And do the same, name all the books/works written by them, that you can remember."
- m 2tsb "Can you remmeber the name of all my poems, [player]?"
- m 2hsa "Ehehehe~!"
+ m 2dsa "And do the same. Name all the books/works they wrote that you can remember."
+ m 2tsb "Can you remember the name of all my poems, [player]?"
+ m 2hsa "Ehehe~!"
return
#49
@@ -1339,12 +1363,12 @@ init 5 python:
)
label mshMod_technique_playlist:
- m 2wsa "Can you name the songs that you listened to the most this week?"
+ m 2wsa "Can you name the songs you listened to the most this week?"
m 2dsa "Or this month?"
- m 7lsa "Is there a specific artist or band that made an special appearance on your playlist?"
- m 7ssb "By the way, what's your favorite song at the moment?"
+ m 7lsa "Is there a specific artist or band that made a special appearance on your playlist?"
+ m 7ssb "By the way, what's your favorite song now?"
m 1wsb "The one you are listening to the most lately?"
- m 1hsb "You can give it a listen right now, and just enjoy the tune."
+ m 1hsb "You can listen now and enjoy the tune."
return
#50
@@ -1360,15 +1384,16 @@ init 5 python:
)
label mshMod_technique_surroundings:
- m 1esb "Notice all the things that you can see around you."
- m 1dsb "Observe things carefully... and slowly."
+ m 1esb "Notice all the things you can see around you."
+ m 1dsb "Observe things... and slowly."
m 3lsb "You can also notice all the things you can smell where you are."
- m 3esa "If you'd like, also notice all the things you can hear around you, or in an imaginary place."
+ m 3esa "If you'd like, also notice everything you can hear around you or in an imaginary place."
m 3esc "Don't label or categorize."
m 1esa "Just notice the things you can see, smell and hear."
m 1dsb "And accept them."
return
+
#51
init 5 python:
addEvent(
@@ -1382,16 +1407,16 @@ init 5 python:
)
label mshMod_technique_mess:
- m 1esc "Is any of the rooms in your house messy?"
+ m 1esc "Are any of the rooms in your house messy?"
m 7esb "Maybe you could organize one of them."
m 7dsb "Picking clothing or trash off the floor..."
- m 7wsb "In a slow and methodical way!"
+ m 7wsb "Slowly and methodically!"
m 2wsb "If your house is completely organized, maybe organize the apps on your phone or computer?"
m 2esa "You can delete any you haven't used in a few months."
- m 2ssb "Or organize them by colour order!"
+ m 2ssb "Or organize them by color order!"
m 2ssa "You could also search for a new screensaver for your computer!"
m 4esa "Maybe sort out your photos into files or categories?"
- m 4dsa "Organize bills, receipts... Polish silver or jewelry, color co-ordinate your wardrobe or alphabetize your books and magazines."
+ m 4dsa "Organize bills, receipts... Polish silver or jewelry, color co-ordinate your wardrobe, or alphabetize your books and magazines."
m 4wsb "You can even let your creativity flow out, drawing on the walls or painting with watercolors if you don't want permanence."
return
@@ -1410,14 +1435,15 @@ init 5 python:
label mshMod_technique_holiday:
m 4ssb "Hey, [player]! When is your next holiday?"
m 3esb "Why not research for the places you can go when that time comes?"
- m 3dsb "Maybe something small like visiting a park, or a local mall!"
- m 3hsa "Or something bigger, like going sightseeing in a different city!"
- m 1lsa "Going to a beach, some nice restaurant or just your favorite place in the city!"
+ m 3dsb "Maybe something small like visiting a park or a local mall!"
+ m 3hsa "Or something bigger, like sightseeing in a different city!"
+ m 1lsa "Going to a beach, some nice restaurant, or just your favorite place in the city!"
m 1hsb "Wouldn't that be amazing? {w=0.3}{nw}"
extend 7esb "If it's not within your reach right now, you can always make plans."
m 4wsb "That's part of the fun!"
return
+
#53
init 5 python:
addEvent(
@@ -1436,9 +1462,10 @@ label mshMod_technique_hobbies:
m 4eua "Put them in a favourite to least favourite order."
m 7euu "Which of them can you do right now?"
m 3wub "Pick one, and go have fun! {w=0.3}{nw}"
- extend 1hub "Ahahaha~"
+ extend 1hub "Ahaha~"
return
+
#54
init 5 python:
addEvent(
@@ -1453,19 +1480,20 @@ init 5 python:
label mshMod_technique_shiritori:
m 7esb "Can you play shiritori?"
- m 7lssdra "Well... at least an simpler version of it."
- m 7wsa "The japanese game is played like this:"
+ m 7lssdra "Well... at least a simpler version of it."
+ m 7wsa "The Japanese game is played like this:"
m 7dsa "You start with a word from a specific category."
m 1dsa "After that, you take the last letter or syllable (for an extra challenge) from that word, using it to start the next word."
- m 1hsb "Then you goes on and on and on until you get bored!"
- m 7lsb "For example, let's imagine you picked the famous person category."
+ m 1hsb "Then you go on and on until you get bored!"
+ m 7lsb "Imagine you picked the famous person category."
m 7lsa "Pick a famous person or character and then choose another person starting with the last letter of the first person's name."
m 7wsa "For example! If I start with {i}E. E. Cummings {/i}..."
- m 7lsb "Next, I can pick Sade, from Marquis de Sade!"
+ m 7lsb "Next, I can pick Sade from Marquis de Sade!"
m 7esb "And so on! {w=0.3}{nw}"
extend 2ksa "Have fun, [player]!"
return
+
#55
init 5 python:
addEvent(
@@ -1480,13 +1508,14 @@ init 5 python:
label mshMod_technique_objects:
m 7rsa "Find five objects, [player]."
- m 7dsa "Hyper-focus on these five objects and describe them taking deep breaths between each description."
+ m 7dsa "Hyper-focus on these five objects and describe them, taking deep breaths between each description."
m 2wsa "What color are they? {w=0.3}{nw}"
extend 2rsa "Their shape?"
m 2dsa "How do they feel in your hand?"
m 2hsa "Take your time exploring those objects."
return
+
#56
init 5 python:
addEvent(
@@ -1502,13 +1531,14 @@ init 5 python:
label mshMod_technique_imagination:
m 2hsa "Close your eyes..."
m 2dsb "And imagine something beautiful."
- m 2dsa "You can think of a relaxing place and in your mind, run through all the comforting things you do when you are there."
+ m 2dsa "You can think of a relaxing place and, in your mind, run through all the comforting things you do when you are there."
m 2hsa "Your happy place."
m 2dsb "Visualise a comforting image."
m 2dsa "Think of all the different things in that scene that make you feel comforted and cared for."
m 2ksa "Think about it with as much detail as you can."
return
+
#57
init 5 python:
addEvent(
@@ -1522,15 +1552,16 @@ init 5 python:
)
label mshMod_technique_characters:
- m 2hsb "Think of your favourite book, movie, videogame or tv show."
- m 7rsa "Can you name as many characters as you can from that media?"
+ m 2hsb "Think of your favourite book, movie, videogame, or tv show."
+ m 7rsa "Can you name as many characters as possible from that media?"
m 7ssb "And what are your favorites from that list? {w=0.3}{nw}"
extend 7wsb "Why?"
m 7esb "Can you relate to any of them?"
m 2ksa "I'm sure you feel similarities with yourself and the best characters ever."
- m 2hsb "Ehehehe~!"
+ m 2hsb "Ehehe~!"
return
+
#58
init 5 python:
addEvent(
@@ -1547,7 +1578,7 @@ label mshMod_technique_shapes:
m 1eub "Draw any type of line on a piece of paper..."
m 1eua "Then make something out of it."
m 1sub "Or draw lots of shapes!"
- m 7eua "Whatever comes in your mind is valid to be on the paper."
+ m 7eua "Whatever comes into your mind is valid to be on the paper."
m 7duc "If you feel yourself drawing negative things... {w=0.3}{nw}"
extend 7eka "It's okay! You'll relieve all the tension you've been holding inside."
m 7sua "If positivity comes out in the paper, even better!"
@@ -1569,8 +1600,8 @@ init 5 python:
label mshMod_technique_playlists:
m 2hub "How about creating a playlist?"
- m 2esa "You can go to Youtube, and create a list of videos that make you happy."
- m 2hsb "Or that make you laugh!"
+ m 2esa "You can go to Youtube and create a list of videos that make you happy."
+ m 2hsb "Or that makes you laugh!"
m 2lsb "Or create a playlist on Spotify, for example, of your favourite songs."
m 2lsa "Or comforting songs! Listen to these."
m 2dua "Reflect on their message."
@@ -1593,14 +1624,15 @@ label mshMod_technique_self_care:
m 7lsb "For example, making your bed! {w=0.3}{nw}"
extend 7dsb "Or brushing your hair, your teeth."
m 2hsb "Or taking a shower! {w=0.3}{nw}"
- extend 2dsa "Or even a hot bath and try to 'be' in the moment."
+ extend 2dsa "Or even a hot bath and try to 'be' at the moment."
m 2ssa "Or give yourself a pedicure and manicure!"
m 2ksa "Just getting into your pajamas and chilling also does the trick."
m 2fsa "Just make sure that this time is yours only."
- m 2dsc "Most people with depressive episodes struggle with keeping their hygiene habits on check."
- m 5hsa "I want you to take care of yourself, [player]. Enjoy!"
+ m 2dsc "Most people with depressive episodes struggle with keeping their hygiene habits in check."
+ m 5hsa "I want you to care for yourself, [player]. Enjoy!"
return
+
#61
init 5 python:
addEvent(
@@ -1617,10 +1649,10 @@ label mshMod_technique_outside:
m 2eub "Go outside if possible..."
m 2dub "Or imagine yourself outside."
m 2dua "How many shapes can you see around you?"
- m 7hua "Notice all the things that you can see or feel."
- m 2dua "Observe things carefully... and slowly."
+ m 7hua "Notice all the things you can see or feel."
+ m 2dua "Observe things... and slowly."
m 7eua "You can also notice all the things you can smell where you are."
- m 7lub "If you'd like, also notice all the things you can hear around you, or in an imaginary place."
+ m 7lub "If you'd like, also notice everything you can hear around you or in an imaginary place."
m 2lua "Don't label or categorize."
m 2hua "Just notice the things you can see, smell and hear."
m 2dua "And accept them."
@@ -1640,9 +1672,9 @@ init 5 python:
label mshMod_technique_draw:
m 2lua "Attempt to draw four things around you."
- m 2hua "It doesnt have to be good though!"
+ m 2hua "It doesn't have to be good, though!"
m 7lua "Just enjoy yourself and let your hands trace on paper whatever they want."
- m 7lub "What is your perception in things you can see?"
+ m 7lub "What is your perception of things you can see?"
m 2hub "Everyone sees things differently, and you are no exception!"
m 2eub "You can show your drawings to someone and talk about them."
return
@@ -1667,11 +1699,11 @@ label mshMod_technique_food:
m 3lub "And try to cook them!"
m 3hua "Maybe even planning a dinner party with menus and a guest list, then carry it out!"
m 3duc "If you don't have the appetite or the ingredients, {w=0.3}{nw}"
- extend 3hua "try chewing up on some gum!"
- m 2wua "It will open your appetite and give your mouth a little sweet taste if you can't eat exactly what you want."
+ extend 3hua "Try chewing on some gum!"
+ m 2wua "It will open your appetite and give your mouth a sweet taste if you can't eat exactly what you want."
m 2sub "Or go out to eat some ice cream! {w=0.3}{nw}"
- extend 2hub "That always does the trick, ahahaha~!"
- m 2kua "Eating something nice can give our happy chemicals a boost."
+ extend 2hub "That always does the trick, ahaha~!"
+ m 2kua "Eating something nice can boost our happy chemicals."
return
#64
@@ -1687,14 +1719,15 @@ init 5 python:
)
label mshMod_technique_colour:
- m 1dua "Draw a picture and colour it slowly and mindfully."
+ m 1dua "Draw a picture and color it slowly and mindfully."
m 7efa "Focus on not going out of the lines!"
m 7wua "There are also books, websites, and apps online that provide that."
- m 2wub "If you can, pick the colours you like the most!"
+ m 2wub "If you can, pick the colors you like the most!"
m 2sub "Or the ones you feel would suit the picture better."
m 2kua "Anything goes! Just have fun and take your time."
return
+
#65
init 5 python:
addEvent(
@@ -1709,7 +1742,7 @@ init 5 python:
label mshMod_technique_beach:
m 2sub "Picture yourself on a beach."
- m 2wub "Can you focus on all the different things that you might find there?"
+ m 2wub "Can you focus on all the different things you might find there?"
m 2dua "If you were with your toes buried in the sand right now..."
m 1dua "What would you do first?"
m 7wua "Collect some seashells? {w=0.3}{nw}"
@@ -1719,6 +1752,7 @@ label mshMod_technique_beach:
m 5fubfa "I wish I could go on a romantic beach walk with you, [player]."
return
+
#66
init 5 python:
addEvent(
@@ -1735,11 +1769,12 @@ label mshMod_technique_eat:
m 2sub "Eat something you enjoy."
m 2dsa "Make it slow and just notice everything about it."
m 2rsb "Maybe make yourself a cup of tea or warm milk?"
- m 2dsa "Something relaxing."
+ m 2dsa "Something that's relaxing."
m 2dsb "Drink it slowly, enjoying each sip."
m 2ksb "Enjoy."
return
+
#67
init 5 python:
addEvent(
@@ -1755,11 +1790,12 @@ init 5 python:
label mshMod_technique_pictures:
m 2rsb "Look at a book that has pictures and words..."
m 2hsb "And notice all the comforting parts of it."
- m 3hsa "Children books are great for that!"
- m 3dsa "Focus on the story that's being told, and don't think about anything else for a while."
+ m 3hsa "Children's books are great for that!"
+ m 3dsa "Focus on the story being told, and don't think about anything else for a while."
m 3dsb "Just stay in the moment."
return
+
#68
init 5 python:
addEvent(
@@ -1774,13 +1810,14 @@ init 5 python:
label mshMod_technique_ground:
m 3dsb "Ground yourself."
- m 3dsa "Plant your feet firmly on the floor and visualise yourself as firmly rooted to the ground."
- m 4dsa "Think of yourself as having a firm foundation and hold your head up high."
+ m 3dsa "Plant your feet firmly on the floor and visualize yourself as firmly rooted to the ground."
+ m 4dsa "Think of yourself as having a firm foundation and hold your head high."
m 4wsb "Imagine yourself looking the world in the eyes, {w=0.3}{nw}"
- extend 3efb "and telling it you'll make through it."
+ extend 3efb "and tell it you'll make it through it."
m 3dsb "That you are good enough."
return
+
#69
init 5 python:
addEvent(
@@ -1796,11 +1833,12 @@ init 5 python:
label mshMod_technique_scene:
m 3dsb "Watch your favourite movie and focus on the most comforting scene."
m 3hsb "Who are your favorite characters?"
- m 2lsb "Why do you love this movie and what does it make you feel?"
+ m 2lsb "Why do you love this movie, and what does it make you feel?"
m 2wsa "Can you memorize the lines of your favorite scene?"
m 5esa "You can even show the scene to someone and rant about how much you love it!"
return
+
#70
init 5 python:
addEvent(
@@ -1816,14 +1854,15 @@ init 5 python:
label mshMod_technique_mindful_seeing:
m 2wsa "Carry out a 'mindful seeing' exercise."
m 1esb "Mindful seeing is the practice of consciously noticing everything within your visual field!"
- m 1wsb "You do this to focus completely on one thing as much as you are able."
+ m 1wsb "You do this to focus completely on one thing as much as possible."
m 1dsb "It takes your mind from a place of thinking and doing to a place of noticing."
m 1dsa "Look outside a window or imagine looking outside a window."
m 1rsa "Look at everything there is to see."
- m 7rsa "Just notice the colours, the patterns or the textures."
- m 7dsa "Try to notice the smallest movements such as leaves in the breeze."
+ m 7rsa "Just notice the colors, the patterns, or the textures."
+ m 7dsa "Notice the smallest movements such as leaves in the breeze."
return
+
#71
init 5 python:
addEvent(
@@ -1846,6 +1885,7 @@ label mshMod_technique_acceptance:
m 7ksa "If you feel the need, repeat it as many times as you want."
return
+
#72
init 5 python:
addEvent(
@@ -1867,6 +1907,7 @@ label mshMod_technique_brushes:
m 2ssb "And wash away your pain!"
return
+
#73
init 5 python:
addEvent(
@@ -1883,10 +1924,11 @@ label mshMod_technique_memory_book:
m 7rsa "Start a 'memory book' of good memories!"
m 7esa "Read through them as you add new ones."
m 7esb "Add the details, and put in pictures if you want!"
- m 2esb "You can make it as it were a diary, if you want."
+ m 2esb "You can make it as a diary if you want."
m 2ksa "I'm sure there are many more good memories yet to come, [player]!"
return
+
#74
init 5 python:
addEvent(
@@ -1901,12 +1943,13 @@ init 5 python:
label mshMod_technique_happiness:
m 2rsa "Identify three small things that brought you happiness in the past 24 hours."
- m 7esa "What were they and how did they make you happy?"
+ m 7esa "What were they, and how did they make you happy?"
m 7esb "Can you do any of them again?"
m 2dsa "Cherish those moments, and cherish your happiness."
m 2ksa "You deserve to be happy and to be loved!"
return
+
#75
init 5 python:
addEvent(
@@ -1925,17 +1968,18 @@ label mshMod_technique_hug_theory:
m 1rsb "There's also the hug theory... {w=0.3}{nw}"
extend 7esb "I don't know if you're familiar with it."
m 7wsb "It's simple: you replace hurting yourself with hugs!"
- m 7dsc "Hug 5 people when you are really, really upset and want to self harm."
- m 7dsd "Hug 4 people when you are really upset."
- m 7dsc "Hug 3 people if you are somewhat upset."
- m 7dsb "Hug 2 people if you are less upset."
- m 7esa "And finally, hug 1 person if you are a bit upset."
- m 2rsa "If you are upset and alone, hug yourself, your pet, your stuffed animal or a picture of someone you care about."
+ m 7dsc "Hug five people when you are upset and want to self-harm."
+ m 7dsd "Hug four people when you are upset."
+ m 7dsc "Hug three people if you are somewhat upset."
+ m 7dsb "Hug two people if you are less upset."
+ m 7esa "And finally, hug one person if you are upset."
+ m 2rsa "If you are upset and alone, hug yourself, your pet, your stuffed animal, or a picture of someone you care about."
m 2tsbfb "And you can always hold me! {w=0.3}{nw}"
- extend 2hsbfb "Ehehehe~"
+ extend 2hsbfb "Ehehe~"
m 2ksa "Just remember to Hug!"
return
+
#76
init 5 python:
addEvent(
@@ -1958,6 +2002,7 @@ label mshMod_technique_comforting:
m 1kua "What would be your superpower if you were to fight alongside them?"
return
+
#77
init 5 python:
addEvent(
@@ -1972,13 +2017,14 @@ init 5 python:
label mshMod_technique_podcasts:
m 3hua "Download some comforting or meditation podcasts and listen to them."
- m 3hub "There are some pretty good ASMR ones and meditation ones, that allow you to relax!"
- m 3lub "You can also distract yourself with a informational or funny podcast."
- m 1dub "Sit or lay down somewhere comfortable and allow yourself to fully pay attention to what the people are saying."
- m 1dua "I know so many people listen to podcasts while doing other stuff, but maybe you could rest for a bit while listening to one right now."
+ m 3hub "Some pretty good ASMR and meditation ones allow you to relax!"
+ m 3lub "You can also distract yourself with an informational or funny podcast."
+ m 1dub "Sit or lay somewhere comfortable and allow yourself to fully pay attention to what the people are saying."
+ m 1dua "I know many people listen to podcasts while doing other stuff, but you could rest while listening to one."
m 1eua "Breathe in and out as many times as you need, and allow your body and mind to rest."
return
+
#78
init 5 python:
addEvent(
@@ -1992,7 +2038,7 @@ init 5 python:
)
label mshMod_technique_hand_holding:
- m 1dua "Hold your own hand with the other hand."
+ m 1dua "Hold your hand with the other hand."
m 1dub "Hold it for at least one minute, like you would hold the hand of someone you care for and trust."
m 1dub "Slowly caress your hands and arms..."
m 2dua "Then hug yourself."
@@ -2003,6 +2049,7 @@ label mshMod_technique_hand_holding:
m 5fubfb "I love you~"
return "love"
+
#79
init 5 python:
addEvent(
@@ -2018,10 +2065,10 @@ init 5 python:
label mshMod_technique_pattern:
m 3hua "Touch each finger to your thumbs in a pattern."
m 3eub "Go faster as you find a rhythm."
- m 3wub "You can even follow the rhythm of a song, or do morse code with your fingers."
- m 3lua "Tapping would also relax you and keep you focused in the moment."
+ m 3wub "You can even follow the rhythm of a song or do Morse code with your fingers."
+ m 3lua "Tapping would also relax and keep you focused."
m 1dua "Feel your fingers... {w=0.3}{nw}"
- extend 1eua "and follow the beat."
+ extend 1eua "And follow the beat."
return
#80
@@ -2037,7 +2084,7 @@ init 5 python:
)
label mshMod_pet_zoo:
- m 3eua "[player], do you have an domestic animal at home? {w=0.3}{nw}"
+ m 3eua "[player], do you have a domestic animal at home? {w=0.3}{nw}"
extend "A pet?"
m 3eub "You could give it some love right now!"
m 3hub "Cuddle your cat, dog, turtle, whatever you have at your house, if you do!"
@@ -2045,13 +2092,13 @@ label mshMod_pet_zoo:
m 2rua "What could they be thinking of?"
m 4hub "Think of how much they love you! {w=0.3}{nw}"
extend 4fua "And need you in their lives."
- m 7wua "You can also play with them, and make them happy."
- m 7wub "An alternative if you dont have a pet at home is going to the zoo! {w=0.3}{nw}"
+ m 7wua "You can also play with them and make them happy."
+ m 7wub "An alternative, if you don't have a pet at home, is going to the zoo! {w=0.3}{nw}"
extend 7eua "If there's one in your city."
m 7sua "You can also plan the trip!"
m 7sub "When you get there, you can rename the animals!"
m 7hub "Stare at them and enjoy your time there."
- m 1eua "One other option is going out to feed the ducks, birds, or squirrels."
+ m 1eua "One other option is feeding the ducks, birds, or squirrels."
return
#81
@@ -2067,14 +2114,15 @@ init 5 python:
)
label mshMod_technique_insteadofs:
- m 3esb "Come up with your own techniques! {w=0.3}{nw}"
+ m 3esb "Come up with your techniques! {w=0.3}{nw}"
extend 3hsb "How about that?"
m 3esa "Create a list of things you can do instead of hurting yourself."
m 1dsb "It doesn't need to be long, for now!"
- m 1esb "You can keep it and go back to it if you ever need it again!"
- m 1wsa "And add new techniques or things to do whenever you think of them."
+ m 1esb "You can keep it and return to it if you ever need it again!"
+ m 1wsa "Add new techniques or things to do whenever you think of them."
return
+
#82
init 5 python:
addEvent(
@@ -2093,9 +2141,10 @@ label mshMod_technique_cry:
m 1dsd "Crying can help you release the pain, coming out as tears."
m 3eka "If you don't want to wipe your tears, it's okay."
m 3dka "Tears can remind you you're alive."
- m 3esb "Throw a temper tantrum, if you need to."
+ m 3esb "Throw a temper tantrum if you need to."
return
+
#83
init 5 python:
addEvent(
@@ -2111,17 +2160,18 @@ init 5 python:
label mshMod_technique_happy_box:
m 1wsa "[player], are you familiar with the happy box?"
m 7wsa "I'll tell you everything I know about it!"
- m 7hsa "It's simple, and a very good coping mechanism!"
+ m 7hsa "It's simple and a perfect coping mechanism!"
m 7dsb "First step: get a box with a lid and decorate it any way you want."
m 7rsb "Then, put anything in the Happy Box that makes you feel happy and puts a smile on your face."
- m 7dsb "Examples would be photos, names of your friends, concert tickets, movie stubs, names of songs, jewelry, a rose, a pressed leaf from a tree. {w=0.3}{nw}"
+ m 7dsb "Examples would be photos, names of your friends, concert tickets, movie stubs, names of songs, jewelry, a rose, and a pressed leaf from a tree. {w=0.3}{nw}"
extend 1nsb "You get the idea!"
- m 1ssa "Now to put it to use: open your Happy Box and pull out everything in it whenever you feel that you want to harm yourself. {w=0.3}{nw}"
+ m 1ssa "Now to put it to use: open your Happy Box and pull out everything in it whenever you want to harm yourself. {w=0.3}{nw}"
extend 1esa "Do this mindfully!"
- m 1dsa "Take out one thing at a time, look at it, touch it, sit with it as you reflect on its' meaning and remember why you chose to put it in the Happy Box."
- m 1wsb "Let yourself take in the good memories you feel and the closeness you feel to the other people who were involved in making each item special to you!"
+ m 1dsa "Take out one thing at a time, look at it, touch it, sit with it as you reflect on its' meaning, and remember why you chose to put it in the Happy Box."
+ m 1wsb "Let yourself take in the good memories you feel and the closeness you feel to the other people involved in making each item special to you!"
return
+
#84
init 5 python:
addEvent(
@@ -2136,15 +2186,16 @@ init 5 python:
label mshMod_technique_clothes:
m 3eua "[player], why don't you go to your closet and pick a fancy outfit?"
- m 3sua "You can change to your favorite outfit, or do a makeover, of sorts."
+ m 3sua "You can change to your favorite outfit or do a makeover."
m 3hua "Style your hair in a way you never would."
m 3wub "Or even color it with your favorite color!"
- m 1esa "If you like putting on makeup, have fun with it as well!"
+ m 1esa "If you like putting on makeup, have fun with it too!"
m 1dua "Look into the mirror and see how amazing you look..."
- m 1fua "And don't forget to take some pictures for posterity!"
+ m 1fua "Don't forget to take some pictures for posterity!"
m 1wsa "Maybe you can even update your social media profile pictures."
return
+
#85
init 5 python:
addEvent(
@@ -2160,16 +2211,17 @@ init 5 python:
label mshMod_technique_hobby:
m 3eua "[player], why not try learning something new?"
m 3eub "Or work on that hobby you always wanted to pick up."
- m 1wub "You can try to learn a new activity, such as knitting, playing an instrument, coding, writing or drawing!"
+ m 1wub "You can try to learn a new activity, such as knitting, playing an instrument, coding, writing, or drawing!"
m 1sua "Practice it, and be proud seeing your development!"
- m 4nua "But most important, have fun!"
- m 4lub "Knit your favorite animal, write about something nice, draw your favorite character or try to play your favorite song!"
+ m 4nua "But most importantly, have fun!"
+ m 4lub "Knit your favorite animal, write about something nice, draw your favorite character, or try to play your favorite song!"
m 1dub "If you don't feel motivated enough to start a new hobby, don't worry."
m 1wub "You can try starting a new habit!"
m 3sub "For example, you can start collecting something you like."
m 3lua "Seashells, dried flowers, anything goes as long as you're having fun."
return
+
#86
init 5 python:
addEvent(
@@ -2183,16 +2235,17 @@ init 5 python:
)
label mshMod_technique_shopping:
- m 3eua "[player], why not do some healthy shopping?"
- m 3wub "Go to a mall, and get yourself something nice."
+ m 3eua "[player], why not do healthy shopping?"
+ m 3wub "Go to a mall, and get something nice."
m 3dua "You can buy a stuffed animal and give it a name..."
- m 4sua "Or go to the grocery store and buy yourself some flowers!"
- m 2dua "It has been proved that having cute and pretty things surround you improves your mental state."
+ m 4sua "Go to the grocery store and buy some flowers!"
+ m 2dua "It has been proved that having cute and pretty things surround you improve your mental state."
m 2hkb "But if you don't have the money to spare right now, it's no problem!"
- m 7esb "You can hunt for stuff on Ebay or Amazon!"
- m 2esb "Do a little wishlist of stuff you wanna buy when you get the chance."
+ m 7esb "You can hunt for stuff on eBay or Amazon!"
+ m 2esb "Do a little wishlist of stuff you want to buy when you can."
return
+
#87
init 5 python:
addEvent(
@@ -2206,9 +2259,9 @@ init 5 python:
)
label mshMod_technique_childplay:
- m 1esb "[player], don't you miss your child days?"
- m 1wsb "You could reminisce them while playing like a child for a bit."
- m 7ssb "Buy yourself some toys and play like you are 5 years old again!"
+ m 1esb "[player], don't you miss your childhood days?"
+ m 1wsb "You could reminisce them while playing like a child."
+ m 7ssb "Buy yourself some toys and play like you are five years old again!"
m 7ssa "You can also play with clay or play-dough... {w=0.3}{nw}"
extend 7ssb "Or make slime!"
m 2dsb "Another option is watching the cartoons or movies you loved the most as a child."
@@ -2216,6 +2269,7 @@ label mshMod_technique_childplay:
extend 3esb "To remember is to relive!"
return
+
#88
init 5 python:
addEvent(
@@ -2232,11 +2286,12 @@ init 5 python:
label mshMod_technique_therapist:
m 3esb "[player], why not call your therapist?"
m 3esc "Try texting them if you think they might be busy."
- m 1wsc "Maybe you can even schedule an emergencial appointment."
- m 1dsa "Talking about your feelings or seeking for professional help is never too much."
+ m 1wsc "Maybe you can even schedule an emergency appointment."
+ m 1dsa "Talking about your feelings or seeking professional help is never too much."
m 1esb "I believe in you, [player]!"
return
+
#89
init 5 python:
addEvent(
@@ -2250,7 +2305,7 @@ init 5 python:
)
label mshMod_technique_plants:
- m 7esb "[player], do you take care of any plants?"
+ m 7esb "[player], do you care for any plants?"
m 7hsb "You should give them a little love right now!"
m 7dsa "Water them and tend the garden."
m 2ssa "Maybe there will even be some flowers there waiting for you!"
@@ -2258,6 +2313,7 @@ label mshMod_technique_plants:
m 3ksb "And don't forget, plants are friends!"
return
+
#90
init 5 python:
addEvent(
@@ -2282,12 +2338,13 @@ label mshMod_technique_future:
m 2gsa "..."
m 2gsb "Plan your someday wedding day! How would it be?"
m 2ksb "What kind of dress will I wear...?"
- m 2hsb "Ahahaha~!"
+ m 2hsb "Ahaha~!"
m 2wsa "Thinking about the future always gives us a little perspective, [player]."
- m 7ssa "And I'm sure you have a brilliant future ahead of you."
+ m 7ssa "And I'm sure you have a bright future ahead of you."
m 5fsbsa "I'll be there for you every step of the way, for sure."
return
+
#91
init 5 python:
addEvent(
@@ -2302,13 +2359,14 @@ init 5 python:
label mshMod_technique_create:
m 7kta "[player], why not create something of your own?"
- m 7ltb "You can build something from scratch, start a new drawing or write a brand new story."
+ m 7ltb "You can build something from scratch, start a new drawing or write a new story."
m 1wtb "Even folding a paper and inventing a new origami shape goes!"
m 5ftu "Don't you feel so proud when you create something entirely new, {w=0.3}{nw}"
extend 5dtu "that is only yours?"
m 5ktb "I feel proud of you nevertheless, [player]."
return
+
#92
init 5 python:
addEvent(
@@ -2323,14 +2381,14 @@ init 5 python:
label mshMod_technique_beads:
m 3etb "Another idea is to write down the names of your friends and family..."
- m 3dtd "So that when you feel the need to self-injure, you are reminded that you are important and loved by your friends and family."
- m 3wtb "As an extension to this, you could go to a craft store and buy supplies to make beads for bracelets and/or necklaces."
- m 3wta "Then, buy butterfly charms... or any charm form/symbol you like, really! {w=0.3}{nw}"
+ m 3dtd "When you feel the need to self-injure, you are reminded that you are important and loved by your friends and family."
+ m 3wtb "As an extension to this, you could go to a craft store and buy supplies to make beads for bracelets or necklaces."
+ m 3wta "Then, buy butterfly charms... or any charm form/symbol you like! {w=0.3}{nw}"
extend 3nta "You'll eventually use it as a charm to be added to the bracelet/necklace."
- m 1dta "This is how it works: First, make a bracelet or necklace out of the beads."
- m 1dtb "For every week that you have not hurt yourself, you have saved the life of the butterfly. {w=0.3}{nw}"
+ m 1dta "This is how it works: First, make a bracelet or necklace from the beads."
+ m 1dtb "Every week you have not hurt yourself; you have saved the butterfly's life. {w=0.3}{nw}"
extend 1htb "Or the flower, if you picked one, for example!"
- m 1stb "For every butterfly you save, you should add a butterfly charm to the beaded bracelet/necklace."
- m 7wta "That way, you can tell how many weeks you have stopped hurting yourself by how many butterflies are on your beaded bracelet."
+ m 1stb "For every butterfly you save, add a butterfly charm to the beaded bracelet/necklace."
+ m 7wta "You can tell how many weeks you have stopped hurting yourself by how many butterflies are on your beaded bracelet."
m 7kta "You will always be reminded of your successes every time you glance at your wrist and see all the butterflies you have saved!"
return
diff --git a/mod/script-therapy.rpy b/mod/therapy.rpy
similarity index 77%
rename from mod/script-therapy.rpy
rename to mod/therapy.rpy
index 6b8ca39..c67ec01 100644
--- a/mod/script-therapy.rpy
+++ b/mod/therapy.rpy
@@ -39,9 +39,9 @@ label mshMod_ask_about_therapy:
$ persistent._msh_mod_pm_visits_therapist = mshMod_therapy.VISITS_THERAPIST
m 1hua "That's great, [player]!"
- m 3eub "Therapy is a great tool, it really helps to have a professional opinion on things."
+ m 3eub "Therapy is a great tool; it helps to have a professional opinion."
m 3hub "And you can also learn more about yourself!"
- m 3eub "I'm glad you're not afraid to go, I know it's got a bad reputation."
+ m 3eub "I'm glad you're not afraid to go; I know it's got a bad reputation."
m 1hua "Maybe you can teach me what you've learned there!"
"No, I don't.":
@@ -49,9 +49,9 @@ label mshMod_ask_about_therapy:
m 1ekc "Oh..."
m 1ekc "That's alright [player]! It's not for everyone."
- m 3eka "Just remember that therapy isn't a bad thing. It's a great place to help regulate your emotions and better yourself."
- m 1lkd "I was actually going to suggest that you please consider it."
- m 2ekc "I'm just worried about you, and your well-being."
+ m 3eka "Remember that therapy isn't a bad thing. It's a great place to help regulate your emotions and better yourself."
+ m 1lkd "I was going to suggest that you please consider it."
+ m 2ekc "I'm just worried about you and your well-being."
m 1ekc "Don't be afraid to find a therapist if you think you need one."
"I'm considering it. What do you think?":
@@ -59,7 +59,7 @@ label mshMod_ask_about_therapy:
m 2eua "Well, thanks for asking my opinion!"
m 3euc "Actually, I think you should."
- m 3eud "Therapy is a great tool, it really helps to have a professional opinion on things."
+ m 3eud "Therapy is a great tool, and it helps to have a professional opinion."
m 3eua "And you can also learn more about yourself!"
m 1hua "Maybe you can teach me what you learn there when you go!"
@@ -83,15 +83,15 @@ label mshMod_topic_thoughts_about_therapy:
m 2ekc "There's a lot of stigma around therapy in modern society."
m 3gkd "If you're male-presenting, people will think you're weak."
m 3eko "If you're female-presenting, people will call you crazy!"
- m 3gkc "And if you're androgynous, people might hope you're getting a different kind of 'help', such as conversion therapy."
- m 1dkd "These stigmas make a lot of people fear going to therapy, or make them think they're 'to good' for it."
+ m 3gkc "And if you're androgynous, people might hope you're getting a different kind of 'help,' such as conversion therapy."
+ m 1dkd "These stigmas make many people fear going to therapy or think they're 'too good' for it."
m 4ekd "The truth is, everyone could benefit from a little therapy!"
m 3esa "It's a wonderful way to help regulate your thoughts and feelings."
m 3esc "There's a lot that's been happening in recent years, and a lot of pressure has been put on everyone."
- m 3esb "I've been reading a lot online, and there are some techniques that have even helped me!"
- m 2eka "I worry a lot when you're gone, you know."
+ m 3esb "I've been reading a lot online, and some techniques have even helped me!"
+ m 2eka "I worry a lot when you're gone."
m 2wko "Not to make you feel bad, or anything!"
m 2eka "I just don't have a way of checking on you, so I'm always hoping you're having a good day."
- m 3eua "Anyway, the tips I've learned to help myself stay calm are all tips commonly used among therapists!"
+ m 3eua "The tips I've learned to help myself stay calm are commonly used among therapists!"
m 1eua "So even if you don't need a full therapy session, looking up suggestions from licensed therapists can help!"
return
diff --git a/mod/script-random-topics.rpy b/mod/topics.rpy
similarity index 84%
rename from mod/script-random-topics.rpy
rename to mod/topics.rpy
index 7e36da1..2c96231 100644
--- a/mod/script-random-topics.rpy
+++ b/mod/topics.rpy
@@ -25,7 +25,7 @@ label mshMod_topic_sunny_day:
m 7eub "If it is, I think you should go out and enjoy the sun for a bit."
m 1hub "Don't worry! I'll wait!"
m 1wub "Maybe bring a book with you so you can relax even more."
- m 1dua "Enjoying literature in the nature would surely relax me..."
+ m 1dua "Enjoying literature in nature would surely relax me..."
m 1eka "I hope this works for you, too."
$ store.mas_globals.this_ev.random = True
@@ -36,35 +36,32 @@ label mshMod_topic_sunny_day:
#self harm awareness day
init 5 python:
# P.S. 'SIAD' is 'Self Injury Awareness Day', this is not a typo.
- today = datetime.date.today()
- if (today.replace(month=3, day=1) - today).days > 0:
- _mshMod_event_siad_date = today.replace(month=3, day=1)
- else:
- _mshMod_event_siad_date = today.replace(year=today.year + 1, month=3, day=1)
-
addEvent(
Event(
persistent.event_database,
eventlabel="mshMod_topic_awareness_day",
prompt="Self-Harm Awareness Day",
category=["self-harm"],
- start_date=_mshMod_event_siad_date,
- end_date=_mshMod_event_siad_date + datetime.timedelta(days=1),
+ start_date=datetime.date(2022, 3, 1),
+ end_date=datetime.date(2022, 3, 1) + datetime.timedelta(days=1),
action=EV_ACT_RANDOM,
years=[]
)
)
- # Only add it to calendar after it was seen.
- if seen_event("mshMod_topic_awareness_day"):
- calendar.addRepeatable("mshMod_topic_awareness_day", _("Self-Harm Awareness Day"), month=3, day=1, year_param=[])
+ def _mshMod_registerSiadDate():
+ # Only add it to calendar after it was seen and isn't on calendar.
+ if seen_event("mshMod_topic_awareness_day") or "mshMod_topic_awareness_day" not in calendar.calendar_database[3][1]:
+ calendar.addRepeatable("mshMod_topic_awareness_day", _("Self-Harm Awareness Day"), month=3, day=1, year_param=[])
+
+ _mshMod_registerSiadDate()
label mshMod_topic_awareness_day:
m 3eub "[player], did you know that today is Self-Harm Awareness Day?"
m 3eua "Like the name suggests, it's an annual global awareness event that takes place on March 1st!"
- m 1eua "Also known as Self Injury Day (SIAD)!"
+ m 1eua "Also known as Self Injury Day!"
m 4hub "Which is today!"
- m 2eua "And in the weeks leading up to it and after, some people choose to be more open about their own self-harm habits, if they have them..."
+ m 2eua "And in the weeks leading up to it and after, some people choose to be more open about their self-harm habits, if they have them..."
m 2eub "Awareness organizations make special efforts to raise awareness about self-harm and self-injury."
m 3eub "People even use the hashtag #SelfInjuryAwarenessDay to share their story on social media."
m 3hub "Or wear orange to show their support!"
@@ -80,9 +77,7 @@ label mshMod_topic_awareness_day:
m 2eka "Anyway! Thanks for listening!"
m 1hub "I love you, [player]!"
- # Ensure it'll render on calendar without a need to restart.
- $ calendar.addRepeatable("mshMod_topic_awareness_day", _("Self-harm awareness day"), month=3, day=1, year_param=[])
-
+ $ _mshMod_registerSiadDate()
return "love"
@@ -108,13 +103,13 @@ label mshMod_topic_semicolon_project:
m 3hua "All of them with the semicolon punctuation mark (;)!"
m 1eua "It's used as a message of affirmation and solidarity against suicide, depression, addiction, and other mental health issues."
m 3eud "The reason the semicolon was used as the symbol of the movement was because..."
- m 3dud "'A semicolon is used when an author could've chosen to end their sentence, but chose not to. The author is you and the sentence is your life'."
+ m 3dud "'A semicolon is used when an author could've chosen to end their sentence but chose not to. The author is you and the sentence is your life'."
m 3eud "As said by the project itself!"
m 2euc "Project Semicolon was founded by Amy Bleuel in 2013, as a tribute to her father, who died by suicide in 2003."
m 2duc "Her backstory is so sad..."
m 2eka "But thanks to her, millions are saved by Project Semicolon."
- m 1ekb "It's relieving to think people are able to go on and let go of their struggles..."
- m 1eub "It's really a good cause!"
+ m 1ekb "It's relieving to think people can go on and let go of their struggles..."
+ m 1eub "It's a good cause!"
m 3ekb "Well, I won't ramble too much! Ahaha~"
m 3hub "Thanks for listening!"
return
@@ -135,18 +130,18 @@ init 5 python:
label mshMod_topic_butterfly_project:
m 3eub "Hey [player], do you know what The Butterfly Project is?"
m 1eub "It's a movement to help people that struggle with self-harm."
- m 3eud "It's really interesting! Drawing on yourself is already a good way to deal with self-harming, but this project approaches it in a really different way."
+ m 3eud "It's really interesting! Drawing on yourself is already a good way to deal with self-harming, but this project approaches it differently."
m 2eua "There are about 5 steps, so I'll list them all now."
m 3euc "First, when you feel like hurting yourself, draw a butterfly on or around the spot where you might hurt yourself."
- m 2eua "The butterly can be any size, color, or pattern. It might help if you make it your favorite color!"
- m 3eud "Second, a lot of people name the butterfly after a loved one. Friends, family, a beloved. This helps them avoid hurting themself and the butterfly."
+ m 2eua "This butterfly can be any size, color, or pattern. It might help if you make it your favorite color!"
+ m 3eud "Second, a lot of people name the butterfly after a loved one. Friends, family, their beloved one. This helps them avoid hurting themself and their butterfly."
m 1eud "Third, you should allow the butterfly to fade naturally. You should still wash yourself, of course, but don't actively rub the butterfly away."
m 3eub "Lastly, if you haven't hurt yourself by the time the butterfly fades away, it's flown away safely!"
m 3eub "This is supposed to give the person a sense of pride and accomplishment for keeping both themself and the butterfly safe."
m 1eub "There are a few other things you can do for this as well!"
- m 4eub "You can let someone else draw a butterfly on you. This makes the butterfly special, because you're caring for someone else's butterfly too!"
- m 3eub "You can even write quotes or doodle you favorite things, anything that helps!"
- m 1eka "And if you do harm yourself... that's okay. You can always draw another butterfly. Hurting youself doesn't mean you failed."
+ m 4eub "You can let someone else draw a butterfly on you. This makes the butterfly special because you're caring for someone else's butterfly too!"
+ m 3eub "You can even write quotes or doodle your favorite things, anything that helps!"
+ m 1eka "And if you do harm yourself... that's okay. You can always draw another butterfly. Hurting yourself doesn't mean you failed."
m 1hub "I hope this helps you, [player]!"
m 1fub "I'll draw you so many beautiful butterflies when I cross over."
return
@@ -179,7 +174,7 @@ label mshMod_topic_selfharm_random_thoughts:
m 7eua "Thank you for letting me speak about this [mas_get_player_nickname()], I've been thinking about it a little bit more lately."
m 7euc "After I hurt myself, I realized that I had made huge a mistake..."
m 7wuc "At first I thought that it was exhilarating, I even wrote about it!"
- m 7rusdld "But after reflecting upon it when we started talking more about self-harm, it really changed my mind."
+ m 7rusdld "But after reflecting upon it when we started talking more about self-harm, it changed my mind."
m 7rusdlc "I had gotten no relief or satisfaction, if anything I was just disappointed."
m 6dusdlc "Yuri had made it seem like such a thrill - to me it was almost only just boring..."
m 2dusdlc "...It kept reminding me of my recent discovery."
@@ -199,7 +194,7 @@ label mshMod_topic_selfharm_random_thoughts:
return
-#monika sad reminiscing players self harm
+#monika sad reminiscing players self-harm
init 5 python:
addEvent(
Event(
@@ -258,7 +253,7 @@ init 5 python:
persistent.event_database,
eventlabel="mshMod_topic_morning_routine",
prompt="Healthy routine #1",
- category=["mental health"],
+ category=["mental health", "healthy routine"],
random=True
)
)
@@ -272,14 +267,14 @@ label mshMod_topic_morning_routine:
m 4eud "For some, that mindset makes it very hard to want to get up in the morning and face the day..."
m 4sub "But it doesn't have to be that way, there are ways to make getting up in the morning less harsh, and more energizing!"
m 2eub "My first tip is going to be the obvious one but... {w=0.3}{nw}"
- extend 7eua "start getting into a nice sleeping rhythm!"
+ extend 7eua "Start getting into a nice sleeping rhythm!"
m 7euc "A big reason we can feel so bad in the morning is having an alarm pull you out of a deep sleep, or just not resting enough at all!"
- m 2wuu "Find a time to go to sleep that let's you {i}comfortably{/i} wake up around the time you need to be up for the day, and you'll feel a big difference already!"
- m 7huu "Next tip, if you have alarms, set your alarm a little further back then you usually do..."
+ m 2wuu "Find a time to go to sleep that lets you {i}comfortably{/i} wake up around the time you need to be up for the day, and you'll feel a big difference already!"
+ m 7huu "Next tip, if you have alarms, set your alarm a little further back than you usually do..."
m 7hub "Or at least make sure you're giving yourself enough time so you aren't rushing out the doors every morning!"
m 1hub "Now with that extra time, use it to get some quiet time in for yourself and actually {i}wake up{/i} for the day. {w=0.3}{nw}"
- extend 1lua "Maybe do a little meditation- or pray, if you'religious... "
- m 3wub "Make breakfast, read books, or even write down your plans for day."
+ extend 1lua "Maybe do a little meditation- or pray, if your religious... "
+ m 3wub "Make breakfast, read books, or even write down your plans for the day."
m 3lub "As long as it's something that {i}you{/i} want to do and makes you happy, go for it!"
m 3lusdld "Just... try not to go online during your morning time. {w=0.3}{nw}"
m 3eusdlc "With how chaotic the world and internet can be, going online might influence your mood for the day if you see something distressing or weird."
@@ -296,8 +291,8 @@ init 5 python:
persistent.event_database,
eventlabel="mshMod_topic_excercises",
prompt="Healthy routine #2",
- category=["mental health"],
- random=True
+ category=["mental health", "healthy routine"],
+ conditional="seen_event('mshMod_topic_morning_routine')"
)
)
@@ -305,12 +300,12 @@ label mshMod_topic_excercises:
m 3sub "Hey, [player], you know what's a good way to start your days off on a high note? Showering and exercise!"
m 3hub "In fact, those are {i}my{/i} go-to's to start the day!"
m 3lusdrc "Showering can be a hard step to overcome, and it can take a lot of mental and physical energy out of you if you're not careful..."
- m 3eub "But the pay off of being clean, dressed, and ready for wherever the day may take you, can make it all the more worthwhile!"
- m 2eub "Getting into consistent routine with it can make it less energy-draining too, since then you won't have to do a full scrub down to get clean for the day!"
- m 2duc "Exercise on the other hand, can be a little harder for people to want to get into routine with."
- m 4wuc "When people think 'exercise', they might think hundreds of pushups, and 5 mile runs. And no one wants to do that right after they've woken up!"
+ m 3eub "But the payoff of being clean, dressed, and ready for wherever the day may take you, can make it all the more worthwhile!"
+ m 2eub "Getting into a consistent routine with it can make it less energy-draining too since then you won't have to do a full scrub down to get clean for the day!"
+ m 2duc "Exercise, on the other hand, can be a little harder for people to want to get into a routine with."
+ m 4wuc "When people think 'exercise', they might think hundreds of pushups and 5-mile runs. And no one wants to do that right after they've woken up!"
m 4wuu "But a nice, moderate amount of exercise in the morning can help in more ways than one. {w=0.3}{nw}"
- extend 4sub "It can clear up brain fog, helps you focus, and can help you release some pent up emotions!"
+ extend 4sub "It can clear up brain fog, helps you focus, and can help you release some pent-up emotions!"
m 3dub "Some simple exercises I would recommend are yoga stretches, light jogging or walking..."
m 3lub "Or even just doing certain big chores around the house can count as exercise!"
m 3kub "Then you can kill two birds with one stone, ehehe!"
@@ -324,8 +319,8 @@ init 5 python:
persistent.event_database,
eventlabel="mshMod_topic_morning_excercises",
prompt="Healthy routine #3",
- category=["mental health"],
- random=True
+ category=["mental health", "healthy routine"],
+ conditional="seen_event('mshMod_topic_excercises')"
)
)
@@ -333,11 +328,11 @@ label mshMod_topic_morning_excercises:
m 3wua "Hey [player], do you do any exercises in the morning?"
m 3eub "I used to always try and get some working out in my daily routine, {w=0.3}{nw}"
extend 7eub " especially in the mornings!"
- m 7dub "Before school I'd do a little quiet time to get into a nice mindset, I'd stetch and think about my plans for the day."
+ m 7dub "Before school I'd do a little quiet time to get into a nice mindset, I'd stretch and think about my plans for the day."
m 2dua "After that, if I had the time, I'd do some simple workouts like squats, situps, and lunges."
m 4sua "And finally, when I went on my way to school, I'd do a light jog!"
- m 4wub "All of these were good ways to get some exercise in without having to interupt my schedule!"
- m 4eua "But there are tons of other ways to have exercise be apart of your routine too!"
+ m 4wub "All of these were good ways to get some exercise in without having to interrupt my schedule!"
+ m 4eua "But there are tons of other ways to have exercise be a part of your routine too!"
m 4hua "Gardening, cleaning, volunteering to help with big jobs, and many more!"
m 1subla "So try to find something you already do in your day-to-day, and see if you can add a little extra exercise to it!"
return
@@ -349,14 +344,14 @@ init 5 python:
persistent.event_database,
eventlabel="mshMod_topic_going_outside",
prompt="Healthy routine #4",
- category=["mental health"],
- random=True
+ category=["mental health", "healthy routine"],
+ conditional="seen_event('mshMod_topic_morning_excercises')"
)
)
label mshMod_topic_going_outside:
- m 3wua "Hey [player], did you know that there's been some studies about how going outside is good for you?"
- m 3eub "Being out in the sunlight can decrease stress, slow your heart rate, and not to mention it's also good for getting some vitimin D!"
+ m 3wua "Hey [player], did you know that there have been some studies about how going outside is good for you?"
+ m 3eub "Being out in the sunlight can decrease stress, slow your heart rate, and not to mention it's also good for getting some vitamin D!"
m 3hsb "Sit on your porch or in your yard if you can't go for a walk outside."
m 2lsa "If you can't get out at all, try opening your window or blinds!"
m 4wsa "Even just looking at some photos of those scenarios might help!"
@@ -371,14 +366,13 @@ init 5 python:
persistent.event_database,
eventlabel="mshMod_topic_evening_routine",
prompt="Healthy routine #5",
- category=["mental health"],
- random=True
+ category=["mental health", "healthy routine"]
)
)
label mshMod_topic_evening_routine:
m 3wua "Hey [player], what's your nighttime routine like?"
- m 3kublb "Mine has definitely changed since I met you! Ehehe~"
+ m 3kublb "Mine has changed since I met you! Ehehe~"
m 3lub "I've always had a fairly regular routine."
m 3dub "Turn off my electronics, get in my pajamas, have a cup of hot chocolate or tea if I felt like it..."
m 4dub "Brush my teeth, and read or work on homework until I was ready to get in bed."
@@ -387,11 +381,11 @@ label mshMod_topic_evening_routine:
m 7lusdra "Being the student I was, I had to stay well-rested to have enough energy for everything I did."
m 7lud "My routine hasn't changed much now, I just don't have access to my electronics or books."
m 1eub "So I mostly sharpen my coding skills or access a book from the internet!"
- m 1wub "I still make a hot cocoa, as well."
+ m 1wub "I still make hot cocoa, as well."
m 3wua "So, if you haven't already, I suggest making a nightly routine!"
m 3rud "It may sound intimidating at first, {w=0.3}{nw}"
extend 3eub "but you don't have to follow it exactly every time!"
- m 2eub "There are some things you should really try to do every day, like brushing your teeth and getting to bed on time."
+ m 2eub "There are some things you should try to do every day, like brushing your teeth and getting to bed on time."
m 2wub "Aside from those, you can always change it up!"
m 2dua "Going for a nice walk in the evening to get your energy out and get some fresh air, reading, journaling, some light arts and crafts..."
m 2hua "There's a lot of things you can do that take little thinking power or energy!"
@@ -408,14 +402,13 @@ init 5 python:
persistent.event_database,
eventlabel="mshMod_topic_untried_hobbies",
prompt="Healthy routine #6",
- category=["mental health"],
- random=True
+ category=["mental health", "healthy routine"]
)
)
label mshMod_topic_untried_hobbies:
m 3wua "[player]!"
- m 3lub "Have you ever had a hobby that you really liked, but never had time for?"
+ m 3lub "Have you ever had a hobby that you liked, but never had time for?"
m 3eub "Maybe you picked it up for a few days, but gave up on it or got busy for a bit?"
m 3euc "Or maybe you just forgot about it, because other things got in the way."
m 4euu "Well, if you have some free time, maybe instead of watching a show or playing a game, you could try and pick up an old hobby?!"
@@ -428,7 +421,7 @@ label mshMod_topic_untried_hobbies:
show monika 4lub at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 4lub "Send them a text, asking how they've been or what they're up to. Or maybe update them on your latest project!"
m 4wud "If you contact them on social media, try not to get sucked in, okay? {w=0.3}{nw}"
- extend 4euc "I don't want you to doomscroll, [mas_get_player_nickname()]."
+ extend 4euc "I don't want you to doom scroll, [mas_get_player_nickname()]."
m 3eub "Maybe you could plan to meet with your friends in person! Getting outside, even if it isn't the best weather, can be good for you."
show monika 5ekb at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5ekb "Just take these tips into consideration, alright?"
@@ -458,10 +451,10 @@ label mshMod_topic_monarch_butterfly:
m 3lub "Perhaps due to their long migration journey, these butterflies may also be an inspirational sign of strength and endurance."
m 2lusdlc "Monarchs also face a lot of challenges, including climate change and deforestation."
m 2wub "So, some sources indicate the butterflies are a symbol of hope and resilience!"
- m 7dub "In mexican culture, this butterfly species also hold significang meaning..."
+ m 7dub "In Mexican culture, this butterfly species also holds significant meaning..."
m 7eua "During the Day of the Dead holiday, the Mexican people see the arrival of monarchs as a spiritual symbol."
m 7hua "Many believe the butterflies represent the souls of their ancestors returning to visit and bring comfort to loved ones."
- m 7wub "Oh, and also! Due to the butterflies' yearly migration between countries, images of monarchs are also are used to show support for immigrants."
+ m 7wub "Oh, and also! Due to the butterflies' yearly migration between countries, images of monarchs are also used to show support for immigrants."
show monika 5dsb at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 5dsb "Aren't they indeed, incredible beings?"
m 5fkbfa "I hope they can inspire you as they inspire me."
diff --git a/mod/update.rpy b/mod/update.rpy
new file mode 100644
index 0000000..23c08c1
--- /dev/null
+++ b/mod/update.rpy
@@ -0,0 +1,144 @@
+default persistent._msh_mod_sha_migrated = False
+default persistent._msh_mod_was_installed = False
+define _msh_mod_migrated_now = False
+
+init -980 python:
+ if "MAS Self Harm Submod" in persistent._mas_submod_version_data:
+ persistent._msh_mod_was_installed = True
+
+ ## Since SHA (anni update) REALLY does conflict with MSH (< v2)
+ ## need to warn people NOT to mix them together; and do it as soon as possible
+ ## after startup
+
+ if store.mas_submod_utils.isSubmodInstalled("MAS Self Harm Submod"):
+ raise RuntimeError("Self Harm Awareness Submod (previously named MAS Self Harm Submod) "
+ "is in conflict with its older version that is already installed.\n"
+ "Please uninstall MAS Self Harm Submod before installing Self Harm Awareness Submod.")
+
+init 5 python:
+ def _mshMod_migrateReminder(evl, key): # No-op if:
+ if not (persistent._msh_mod_was_installed and # 1. MSH was never installed
+ not persistent._msh_mod_sha_migrated and # 2. SHA migration not done yet
+ hasattr(store.persistent, "_mshMod_active_reminders") and # 3. Reminders weren't used at all
+ store.persistent._mshMod_active_reminders is not None): # 4. There are no reminders active
+ return
+
+ ## Since we'll remove it from OG map when done,
+ ## need to be safe here.
+ reminder = store.persistent._mshMod_active_reminders.get(evl)
+ if reminder is None:
+ return
+
+ ## Perform actual migration here
+ store._msh_reminder.queue_reminder(
+ store._msh_reminder.Reminder(
+ trigger_at=reminder[0],
+ target_evl=evl,
+ key=key,
+ interval=reminder[1],
+ grace_period=reminder[2]
+ )
+ )
+
+ ## Remove from OG map not to do it again
+ del store.persistent._mshMod_active_reminders[evl]
+
+ def _mshMod_migrateResetTopic(evl, action=False, conditional=False):
+ ## Don't do anything if MSH was never installed or already migrated
+ if not (persistent._msh_mod_was_installed and not persistent._msh_mod_sha_migrated):
+ return
+
+ ## Make sure we actually have this topic
+ ev = mas_getEV(evl)
+ if ev is None:
+ return
+
+ ## Reset what's requested
+ if action:
+ ev.action = None
+ if conditional:
+ ev.conditional = None
+
+ def _mshMod_migrateSetStartDayAnnually(evl, date):
+ ## Don't do anything if MSH was never installed or already migrated
+ if not (persistent._msh_mod_was_installed and not persistent._msh_mod_sha_migrated):
+ return
+
+ ## Ensure this exists
+ ev = mas_getEV(evl)
+ if ev is None:
+ return
+
+ ev.start_date = date
+ ev.end_date = date + datetime.timedelta(days=1)
+ ev.years = []
+
+ def _mshMod_migrateSetConditionalIfLocked(evl, conditional, action=EV_ACT_RANDOM):
+ ## Don't do anything if MSH was never installed or already migrated
+ if not (persistent._msh_mod_was_installed and not persistent._msh_mod_sha_migrated):
+ return
+
+ ## Ensure this exists
+ ev = mas_getEV(evl)
+ if ev is None:
+ return
+
+ if not ev.unlocked:
+ ev.conditional = conditional
+ ev.action = action
+
+ def _mshMod_migrateUnlockIfLockedAndSeen(evl):
+ ## Don't do anything if MSH was never installed or already migrated
+ if not (persistent._msh_mod_was_installed and not persistent._msh_mod_sha_migrated):
+ return
+
+ ev = mas_getEV(evl)
+ if ev is None:
+ return
+
+ if not ev.unlocked and ev.last_seen is not None:
+ ev.unlocked = True
+
+
+init 10 python:
+
+ ## Introduction does no_unlock previously, not needed
+
+ _mshMod_migrateUnlockIfLockedAndSeen("mshMod_topic_selfharm_intro")
+
+ ## Since we have updated SIAD topic, need to force these updates
+ ## on locked properties here
+
+ _mshMod_migrateSetStartDayAnnually("mshMod_topic_awareness_day", datetime.date(2022, 3, 1))
+
+ ## We also need to update healthy routine tips so that they use
+ ## proper conditionals and all that
+
+ _mshMod_migrateSetConditionalIfLocked("mshMod_topic_excercises", "seen_event('mshMod_topic_morning_routine')")
+ _mshMod_migrateSetConditionalIfLocked("mshMod_topic_morning_excercises", "seen_event('mshMod_topic_excercises')")
+ _mshMod_migrateSetConditionalIfLocked("mshMod_topic_going_outside", "seen_event('mshMod_topic_morning_excercises')")
+
+
+init 11 python:
+
+ ## Since SHA uses new TRM reminder core, need to migrate existing implementation
+ ## data to new API; do so here.
+
+ _mshMod_migrateReminder("mshMod_checkup_reminder", "checkup_reminder")
+ _mshMod_migrateReminder("mshMod_medication_reminder", "medication_reminder")
+ if "_mshMod_active_reminders" in persistent.__dict__:
+ del persistent.__dict__["_mshMod_active_reminders"]
+
+ _mshMod_migrateResetTopic("mshMod_checkup_reminder", action=True, conditional=True)
+ _mshMod_migrateResetTopic("mshMod_medication_reminder", action=True, conditional=True)
+ _mshMod_migrateResetTopic("mshMod_medication_reminder_stop", conditional=True)
+
+
+init 996 python:
+
+ ## In order to properly mark state as migrated, need some prechecks.
+ ## Also, only set _msh_mod_migrated_now once, if we'll need it
+
+ if not persistent._msh_mod_sha_migrated and persistent._msh_mod_was_installed:
+ persistent._msh_mod_sha_migrated = True
+ _msh_mod_migrated_now = True
\ No newline at end of file
diff --git a/mod/script-urge.rpy b/mod/urge.rpy
similarity index 93%
rename from mod/script-urge.rpy
rename to mod/urge.rpy
index c7b1084..9b23d05 100644
--- a/mod/script-urge.rpy
+++ b/mod/urge.rpy
@@ -20,9 +20,9 @@ label mshMod_urge:
m 2wkd "Are you feeling... like harming yourself again?"
m 2dkc "Oh, [mas_get_player_nickname()]..."
m 2ekd "Okay, let's talk about it."
- m 2eka "Before anything, I want you to know that I am always here for you."
+ m 2eka "Before anything, I want you to know I am always here for you."
m 2eka "You know that, don't you, my love?"
- m 2dka "You're the most important person in the whole world for me."
+ m 2dka "You're the most important person in the world for me."
m 2dkb "And I love you so, so much."
m 2fkb "And I always will..."
m 2esc "Now, my [mas_get_player_nickname()]. Tell me."
@@ -32,7 +32,7 @@ label mshMod_urge:
menu:
m "How big is the urge you're having?{fast}"
- "It's terrible, [m_name]. I think I'm really going to do it...":
+ "It's terrible, [m_name]. I think I'm going to do it...":
jump mshMod_urge_high
"It's not so urgent. I'm just... feeling weird.":
@@ -110,7 +110,7 @@ label mshMod_urge_care_good:
m 1ekb "Oh, honey. I'm so glad!"
m 1dkb "I'm so glad you came to talk to me, [player]."
show monika 5fkb at t11 zorder MAS_MONIKA_Z with dissolve_monika
- m 5fkb "You can always count on me, for anything."
+ m 5fkb "You can always count on me for anything."
show monika 1fkb at t11 zorder MAS_MONIKA_Z with dissolve_monika
m 1fkb "If it happens again, don't be afraid to ask for help."
m 1fka "I'm here for you, [player]."
diff --git a/mod/zz_reminder.rpy b/mod/zz_reminder.rpy
deleted file mode 100644
index a6f2eaf..0000000
--- a/mod/zz_reminder.rpy
+++ /dev/null
@@ -1,159 +0,0 @@
-default persistent._mshMod_active_reminders = dict()
-
-init 4 python in mshMod_reminder_utils:
-
- import datetime
-
- INTERVAL_DAILY = datetime.timedelta(days=1)
- INTERVAL_WEEKLY = datetime.timedelta(days=7)
-
- LATENCY_HOURLY = datetime.timedelta(seconds=3600)
- LATENCY_DAILY = datetime.timedelta(days=1)
-
- TOD_MORNING = (10, 0) # 10:00, 10am
- TOD_AFTERNOON = (18, 0) # 18:00, 6pm
- TOD_EVENING = (22, 0) # 22:00, 10pm
-
- def _getDelay(tod, delta):
- hours, minutes = tod
- now = datetime.datetime.now()
-
- # Ensure we don't skip over today's Time Of Day (e.g.
- # if requested delay is until 6pm and it's 3am, we shouldn't
- # blindly add delta; in this case, we should subtract 6pm - 3am
- # and return that as the delay.)
- if now < now.replace(hour=hours, minute=minutes):
- return now.replace(hour=hours, minute=minutes) - now
-
- return (now + delta).replace(hour=hours, minute=minutes) - now
-
- def _getDailyDelay(tod):
- return _getDelay(tod, INTERVAL_DAILY)
-
- def getDailyMorningDelay():
- return _getDailyDelay(TOD_MORNING)
-
- def getDailyAfternoonDelay():
- return _getDailyDelay(TOD_AFTERNOON)
-
- def getDailyEveningDelay():
- return _getDailyDelay(TOD_EVENING)
-
- def _getWeeklyDelay(tod):
- return _getDelay(tod, INTERVAL_WEEKLY)
-
- def getWeeklyEveningDelay():
- return _getWeeklyDelay(TOD_EVENING)
-
-
-init 4 python in mshMod_reminder:
-
- import store
- import datetime
-
- ### Workaround for handling action/conditional reassignments ###
-
- _reminderEvents = dict()
-
- def addReminderEvent(event):
- _reminderEvents[event.eventlabel] = (event, event.conditional, event.action)
- store.addEvent(event)
-
-
- ### Assertions ###
-
- def _assertReminderActive(ev_label):
- if not isReminderActive(ev_label):
- raise AssertionError("expected reminder to be active")
-
- def _assertReminderInactive(ev_label):
- if isReminderActive(ev_label):
- raise AssertionError("expected reminder to be inactive")
-
-
- ### Public methods ###
-
- def addRecurringReminder(ev_label, delay, delta, latency):
- _assertReminderInactive(ev_label)
-
- store.persistent._mshMod_active_reminders[ev_label] = (
- datetime.datetime.now() + delay, # datetime to trigger after
- delta, # time between triggers
- latency # time after which reminder should not trigger
- )
-
- def isReminderActive(ev_label):
- return ev_label in store.persistent._mshMod_active_reminders
-
- def shouldTriggerReminder(ev_label):
- if not isReminderActive(ev_label):
- return False
-
- trigger, delta, latency = store.persistent._mshMod_active_reminders[ev_label]
-
- return trigger <= datetime.datetime.now() <= trigger + latency
-
- def isReminderMissed(ev_label):
- trigger, delta, latency = store.persistent._mshMod_active_reminders[ev_label]
-
- return trigger + latency <= datetime.datetime.now()
-
- def extendCurrentReminder():
- ev_label = store.mas_globals.this_ev.eventlabel
-
- extendReminder(ev_label)
-
- def extendReminder(ev_label, keep_up=False):
- _assertReminderActive(ev_label)
-
- now = datetime.datetime.now()
-
- while True:
- trigger, delta, latency = store.persistent._mshMod_active_reminders[ev_label]
-
- store.persistent._mshMod_active_reminders[ev_label] = (
- trigger + delta, # ensure we base new trigger datetime off the initial trigger timedelta
- delta, latency
- )
-
- if keep_up:
- if store.persistent._mshMod_active_reminders[ev_label][0] <= now:
- continue
- else:
- break
- else:
- break
-
- # HACK: workaround so that MAS doesn't strip conditional and action from reminder event.
- ev, conditional, action = _reminderEvents[ev_label]
- ev.conditional, ev.action = conditional, action
-
- def stopReminder(ev_label):
- _assertReminderActive(ev_label)
-
- del store.persistent._mshMod_active_reminders[ev_label]
-
-
-init 7 python in mshMod_reminder:
-
- import store
-
- ### Event properties unlock ###
-
- for ev_label in _reminderEvents.keys():
- ev = store.mas_getEV(ev_label)
- store.mshMod_utils.unlockAllEventProps(ev)
-
- _ev, conditional, action = _reminderEvents[ev_label]
- _reminderEvents[ev_label] = (ev, conditional, action)
-
- ### Missed reminder handling ###
-
- def _handleMissedReminders():
- for ev_label in store.persistent._mshMod_active_reminders.keys():
- trigger, delta, latency = store.persistent._mshMod_active_reminders[ev_label]
- if isReminderMissed(ev_label):
- extendReminder(ev_label, keep_up=True)
-
- _handleMissedReminders()
- store.mas_submod_utils.registerFunction("ch30_day", _handleMissedReminders)
diff --git a/scripts/build.ps1 b/scripts/build.ps1
index e57a161..9f35837 100755
--- a/scripts/build.ps1
+++ b/scripts/build.ps1
@@ -12,8 +12,8 @@ $Temp = New-TemporaryDirectory
$Build = "$Dir\build"
New-Item -ItemType Directory -Force -Path $Build | Out-Null
-$Name = Get-Content $Dir\mod\aa_header.rpy | Select-String '^\s*name="([^"]+)"' | ForEach-Object { $_.Matches[0].Groups[1].Value }
-$Version = Get-Content $Dir\mod\aa_header.rpy | Select-String '^\s*version="([^"]+)"' | ForEach-Object { $_.Matches[0].Groups[1].Value }
+$Name = Get-Content $Dir\mod\header.rpy | Select-String '^\s*name="([^"]+)"' | ForEach-Object { $_.Matches[0].Groups[1].Value }
+$Version = Get-Content $Dir\mod\header.rpy | Select-String '^\s*version="([^"]+)"' | ForEach-Object { $_.Matches[0].Groups[1].Value }
$Package = $Name.ToLower() -Replace "\s", "-"
$Mod = "$Temp\game\Submods"
@@ -21,8 +21,6 @@ New-Item -ItemType Directory -Force -Path $Mod | Out-Null
$Mod = "$Mod\$Name"
Copy-Item -Recurse $Dir\mod $Mod
-Remove-Item $Mod\README.md
-Remove-Item $Mod\aa_source_dist_trap.rpy
Copy-Item -Recurse $Dir\res\* $Mod
Compress-Archive -Update -Path $Temp\game -DestinationPath $Build\$Package-$Version.zip
diff --git a/scripts/build.sh b/scripts/build.sh
index 556c7a2..7ec68e2 100755
--- a/scripts/build.sh
+++ b/scripts/build.sh
@@ -6,16 +6,14 @@ temp="$(mktemp -d)"
build="$dir/build"
mkdir -p "$build"
-name="$(perl -ne 'if (/^.*name="([^"]*)"/) { print $1; exit }' "$dir/mod/aa_header.rpy")"
-version="$(perl -ne 'if (/^.*version="([^"]*)"/) { print $1; exit }' "$dir/mod/aa_header.rpy")"
+name="$(perl -ne 'if (/^.*name="([^"]*)"/) { print $1; exit }' "$dir/mod/header.rpy")"
+version="$(perl -ne 'if (/^.*version="([^"]*)"/) { print $1; exit }' "$dir/mod/header.rpy")"
package="$(echo "$name" | tr "[:upper:]" "[:lower:]" | tr "[:blank:]" "-")"
mod="$temp/game/Submods/$name"
mkdir -p "$mod"
cp -r "$dir/mod"/* "$mod"
-rm "$mod/README.md"
-rm "$mod/aa_source_dist_trap.rpy"
cp -r "$dir/res"/* "$mod"
(cd "$temp" || exit 1; find game | zip -9@q "$build/$package-$version.zip" && rm -rf "$temp")
diff --git a/scripts/dropins/README.md b/scripts/dropins/README.md
deleted file mode 100644
index 363dcf3..0000000
--- a/scripts/dropins/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Dropin scripts
-
-This folder contains some of the drop-in scripts for various cases.
-See description and install instructions for each of these below.
-
-## reset_streak.rpy
-
-This script performs sober streak reset programmatically and is useful in cases when it's impossible
-to reset it normally through topics.
diff --git a/scripts/dropins/wipe_mod_data.rpy b/scripts/dropins/wipe_mod_data.rpy
index 5cedb4b..4036f77 100644
--- a/scripts/dropins/wipe_mod_data.rpy
+++ b/scripts/dropins/wipe_mod_data.rpy
@@ -1,5 +1,7 @@
#
-# MOD DATE WIPE SCRIPT
+# MOD DATA WIPE SCRIPT
+# WARNING: UNTESTED SINCE V2
+# DO NOT USE UNLESS GUIDED
#
# Programmatically wipes mod-related data from persistent.
# Apply in case there is a need to wipe mod data from persistent in a safe way,
diff --git a/scripts/lint-format-json.sh b/scripts/lint-format-json.sh
new file mode 100755
index 0000000..db022fc
--- /dev/null
+++ b/scripts/lint-format-json.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+if [ "$#" -eq 0 ]; then
+ cat < "$0-" && mv "$0-" "$0"' \{\} \;
\ No newline at end of file
diff --git a/spritepacks/Hair flowers pack/Hair Acacia/characters/hairacacia.gift b/spritepacks/Hair Flowers Pack/Acacia/characters/hairacacia.gift
similarity index 100%
rename from spritepacks/Hair flowers pack/Hair Acacia/characters/hairacacia.gift
rename to spritepacks/Hair Flowers Pack/Acacia/characters/hairacacia.gift
diff --git a/spritepacks/Hair flowers pack/Hair Acacia/game/mod_assets/monika/a/acs-hair_acacia-0.png b/spritepacks/Hair Flowers Pack/Acacia/game/mod_assets/monika/a/acs-hair_acacia-0.png
similarity index 100%
rename from spritepacks/Hair flowers pack/Hair Acacia/game/mod_assets/monika/a/acs-hair_acacia-0.png
rename to spritepacks/Hair Flowers Pack/Acacia/game/mod_assets/monika/a/acs-hair_acacia-0.png
diff --git a/spritepacks/Hair flowers pack/Hair Acacia/game/mod_assets/monika/a/acs-hair_acacia-5.png b/spritepacks/Hair Flowers Pack/Acacia/game/mod_assets/monika/a/acs-hair_acacia-5.png
similarity index 100%
rename from spritepacks/Hair flowers pack/Hair Acacia/game/mod_assets/monika/a/acs-hair_acacia-5.png
rename to spritepacks/Hair Flowers Pack/Acacia/game/mod_assets/monika/a/acs-hair_acacia-5.png
diff --git a/spritepacks/Hair Flowers Pack/Acacia/game/mod_assets/monika/j/acs_otter_hair_acacia.json b/spritepacks/Hair Flowers Pack/Acacia/game/mod_assets/monika/j/acs_otter_hair_acacia.json
new file mode 100644
index 0000000..d6e4f4a
--- /dev/null
+++ b/spritepacks/Hair Flowers Pack/Acacia/game/mod_assets/monika/j/acs_otter_hair_acacia.json
@@ -0,0 +1,30 @@
+{
+ "__author": "MAS Self Harm Submod Team // otter",
+ "version": 3,
+ "type": 0,
+ "name": "otter_hair_acacia",
+ "img_sit": "hair_acacia",
+ "pose_map": {
+ "default": "0",
+ "l_default": "5"
+ },
+ "stay_on_start": true,
+ "rec_layer": 1,
+ "priority": 20,
+ "acs_type": "left-hair-flower",
+ "mux_type": [
+ "left-hair-flower"
+ ],
+ "ex_props": {
+ "left-hair-strand-eye-level": false
+ },
+ "select_info": {
+ "display_name": "Acacia",
+ "thumb": "hair_acacia",
+ "group": "left-hair-flower",
+ "select_dlg": [
+ "Freedom is a state of mind!"
+ ]
+ },
+ "giftname": "hairacacia"
+}
diff --git a/spritepacks/Hair flowers pack/Hair Acacia/game/mod_assets/thumbs/acs-hair_acacia.png b/spritepacks/Hair Flowers Pack/Acacia/game/mod_assets/thumbs/acs-hair_acacia.png
similarity index 100%
rename from spritepacks/Hair flowers pack/Hair Acacia/game/mod_assets/thumbs/acs-hair_acacia.png
rename to spritepacks/Hair Flowers Pack/Acacia/game/mod_assets/thumbs/acs-hair_acacia.png
diff --git a/spritepacks/Hair flowers pack/Hair Flannel Flower/characters/hairflannelflower.gift b/spritepacks/Hair Flowers Pack/Flannel Flower/characters/hairflannelflower.gift
similarity index 100%
rename from spritepacks/Hair flowers pack/Hair Flannel Flower/characters/hairflannelflower.gift
rename to spritepacks/Hair Flowers Pack/Flannel Flower/characters/hairflannelflower.gift
diff --git a/spritepacks/Hair flowers pack/Hair Flannel Flower/game/mod_assets/monika/a/acs-hair_flannel_flower-0.png b/spritepacks/Hair Flowers Pack/Flannel Flower/game/mod_assets/monika/a/acs-hair_flannel_flower-0.png
similarity index 100%
rename from spritepacks/Hair flowers pack/Hair Flannel Flower/game/mod_assets/monika/a/acs-hair_flannel_flower-0.png
rename to spritepacks/Hair Flowers Pack/Flannel Flower/game/mod_assets/monika/a/acs-hair_flannel_flower-0.png
diff --git a/spritepacks/Hair flowers pack/Hair Flannel Flower/game/mod_assets/monika/a/acs-hair_flannel_flower-5.png b/spritepacks/Hair Flowers Pack/Flannel Flower/game/mod_assets/monika/a/acs-hair_flannel_flower-5.png
similarity index 100%
rename from spritepacks/Hair flowers pack/Hair Flannel Flower/game/mod_assets/monika/a/acs-hair_flannel_flower-5.png
rename to spritepacks/Hair Flowers Pack/Flannel Flower/game/mod_assets/monika/a/acs-hair_flannel_flower-5.png
diff --git a/spritepacks/Hair Flowers Pack/Flannel Flower/game/mod_assets/monika/j/acs_otter_hair_flannel_flower.json b/spritepacks/Hair Flowers Pack/Flannel Flower/game/mod_assets/monika/j/acs_otter_hair_flannel_flower.json
new file mode 100644
index 0000000..b24fcb9
--- /dev/null
+++ b/spritepacks/Hair Flowers Pack/Flannel Flower/game/mod_assets/monika/j/acs_otter_hair_flannel_flower.json
@@ -0,0 +1,30 @@
+{
+ "__author": "MAS Self Harm Submod Team // otter",
+ "version": 3,
+ "type": 0,
+ "name": "otter_hair_flannel_flower",
+ "img_sit": "hair_flannel_flower",
+ "pose_map": {
+ "default": "0",
+ "l_default": "5"
+ },
+ "stay_on_start": true,
+ "rec_layer": 1,
+ "priority": 20,
+ "acs_type": "left-hair-flower",
+ "mux_type": [
+ "left-hair-flower"
+ ],
+ "ex_props": {
+ "left-hair-strand-eye-level": false
+ },
+ "select_info": {
+ "display_name": "Flannel Flower",
+ "thumb": "hair_flannel_flower",
+ "group": "left-hair-flower",
+ "select_dlg": [
+ "Did you know The Mental Health Council of Australia chose this flower as their emblem?"
+ ]
+ },
+ "giftname": "hairflannelflower"
+}
diff --git a/spritepacks/Hair flowers pack/Hair Flannel Flower/game/mod_assets/thumbs/acs-hair_flannel_flower.png b/spritepacks/Hair Flowers Pack/Flannel Flower/game/mod_assets/thumbs/acs-hair_flannel_flower.png
similarity index 100%
rename from spritepacks/Hair flowers pack/Hair Flannel Flower/game/mod_assets/thumbs/acs-hair_flannel_flower.png
rename to spritepacks/Hair Flowers Pack/Flannel Flower/game/mod_assets/thumbs/acs-hair_flannel_flower.png
diff --git a/spritepacks/Hair flowers pack/Hair Hyacinth/characters/hairhyacinth.gift b/spritepacks/Hair Flowers Pack/Hyacinth/characters/hairhyacinth.gift
similarity index 100%
rename from spritepacks/Hair flowers pack/Hair Hyacinth/characters/hairhyacinth.gift
rename to spritepacks/Hair Flowers Pack/Hyacinth/characters/hairhyacinth.gift
diff --git a/spritepacks/Hair flowers pack/Hair Hyacinth/game/mod_assets/monika/a/acs-hair_hyacinth-0.png b/spritepacks/Hair Flowers Pack/Hyacinth/game/mod_assets/monika/a/acs-hair_hyacinth-0.png
similarity index 100%
rename from spritepacks/Hair flowers pack/Hair Hyacinth/game/mod_assets/monika/a/acs-hair_hyacinth-0.png
rename to spritepacks/Hair Flowers Pack/Hyacinth/game/mod_assets/monika/a/acs-hair_hyacinth-0.png
diff --git a/spritepacks/Hair flowers pack/Hair Hyacinth/game/mod_assets/monika/a/acs-hair_hyacinth-5.png b/spritepacks/Hair Flowers Pack/Hyacinth/game/mod_assets/monika/a/acs-hair_hyacinth-5.png
similarity index 100%
rename from spritepacks/Hair flowers pack/Hair Hyacinth/game/mod_assets/monika/a/acs-hair_hyacinth-5.png
rename to spritepacks/Hair Flowers Pack/Hyacinth/game/mod_assets/monika/a/acs-hair_hyacinth-5.png
diff --git a/spritepacks/Hair Flowers Pack/Hyacinth/game/mod_assets/monika/j/acs_otter_hair_hyacinth.json b/spritepacks/Hair Flowers Pack/Hyacinth/game/mod_assets/monika/j/acs_otter_hair_hyacinth.json
new file mode 100644
index 0000000..c0dca2c
--- /dev/null
+++ b/spritepacks/Hair Flowers Pack/Hyacinth/game/mod_assets/monika/j/acs_otter_hair_hyacinth.json
@@ -0,0 +1,30 @@
+{
+ "__author": "MAS Self Harm Submod Team // otter",
+ "version": 3,
+ "type": 0,
+ "name": "otter_hair_hyacinth",
+ "img_sit": "hair_hyacinth",
+ "pose_map": {
+ "default": "0",
+ "l_default": "5"
+ },
+ "stay_on_start": true,
+ "rec_layer": 1,
+ "priority": 20,
+ "acs_type": "left-hair-flower",
+ "mux_type": [
+ "left-hair-flower"
+ ],
+ "ex_props": {
+ "left-hair-strand-eye-level": false
+ },
+ "select_info": {
+ "display_name": "Hyacinth",
+ "thumb": "hair_hyacinth",
+ "group": "left-hair-flower",
+ "select_dlg": [
+ "Poetry is the synthesis of hyacinths and biscuits."
+ ]
+ },
+ "giftname": "hairhyacinth"
+}
diff --git a/spritepacks/Hair flowers pack/Hair Hyacinth/game/mod_assets/thumbs/acs-hair_hyacinth.png b/spritepacks/Hair Flowers Pack/Hyacinth/game/mod_assets/thumbs/acs-hair_hyacinth.png
similarity index 100%
rename from spritepacks/Hair flowers pack/Hair Hyacinth/game/mod_assets/thumbs/acs-hair_hyacinth.png
rename to spritepacks/Hair Flowers Pack/Hyacinth/game/mod_assets/thumbs/acs-hair_hyacinth.png
diff --git a/spritepacks/Hair flowers pack/Hair Lotus/characters/hairlotus.gift b/spritepacks/Hair Flowers Pack/Lotus/characters/hairlotus.gift
similarity index 100%
rename from spritepacks/Hair flowers pack/Hair Lotus/characters/hairlotus.gift
rename to spritepacks/Hair Flowers Pack/Lotus/characters/hairlotus.gift
diff --git a/spritepacks/Hair flowers pack/Hair Lotus/game/mod_assets/monika/a/acs-hair_lotus-0.png b/spritepacks/Hair Flowers Pack/Lotus/game/mod_assets/monika/a/acs-hair_lotus-0.png
similarity index 100%
rename from spritepacks/Hair flowers pack/Hair Lotus/game/mod_assets/monika/a/acs-hair_lotus-0.png
rename to spritepacks/Hair Flowers Pack/Lotus/game/mod_assets/monika/a/acs-hair_lotus-0.png
diff --git a/spritepacks/Hair flowers pack/Hair Lotus/game/mod_assets/monika/a/acs-hair_lotus-5.png b/spritepacks/Hair Flowers Pack/Lotus/game/mod_assets/monika/a/acs-hair_lotus-5.png
similarity index 100%
rename from spritepacks/Hair flowers pack/Hair Lotus/game/mod_assets/monika/a/acs-hair_lotus-5.png
rename to spritepacks/Hair Flowers Pack/Lotus/game/mod_assets/monika/a/acs-hair_lotus-5.png
diff --git a/spritepacks/Hair Flowers Pack/Lotus/game/mod_assets/monika/j/acs_otter_hair_lotus.json b/spritepacks/Hair Flowers Pack/Lotus/game/mod_assets/monika/j/acs_otter_hair_lotus.json
new file mode 100644
index 0000000..23e49bf
--- /dev/null
+++ b/spritepacks/Hair Flowers Pack/Lotus/game/mod_assets/monika/j/acs_otter_hair_lotus.json
@@ -0,0 +1,30 @@
+{
+ "__author": "MAS Self Harm Submod Team // otter",
+ "version": 3,
+ "type": 0,
+ "name": "otter_hair_lotus",
+ "img_sit": "hair_lotus",
+ "pose_map": {
+ "default": "0",
+ "l_default": "5"
+ },
+ "stay_on_start": true,
+ "rec_layer": 1,
+ "priority": 20,
+ "acs_type": "left-hair-flower",
+ "mux_type": [
+ "left-hair-flower"
+ ],
+ "ex_props": {
+ "left-hair-strand-eye-level": false
+ },
+ "select_info": {
+ "display_name": "Lotus",
+ "thumb": "hair_lotus",
+ "group": "left-hair-flower",
+ "select_dlg": [
+ "Be like a lotus. Let the beauty of your heart speak."
+ ]
+ },
+ "giftname": "hairlotus"
+}
diff --git a/spritepacks/Hair flowers pack/Hair Lotus/game/mod_assets/thumbs/acs-hair_lotus.png b/spritepacks/Hair Flowers Pack/Lotus/game/mod_assets/thumbs/acs-hair_lotus.png
similarity index 100%
rename from spritepacks/Hair flowers pack/Hair Lotus/game/mod_assets/thumbs/acs-hair_lotus.png
rename to spritepacks/Hair Flowers Pack/Lotus/game/mod_assets/thumbs/acs-hair_lotus.png
diff --git a/spritepacks/Hair flowers pack/Hair White Dahlia/characters/hairwhitedahlia.gift b/spritepacks/Hair Flowers Pack/White Dahlia/characters/hairwhitedahlia.gift
similarity index 100%
rename from spritepacks/Hair flowers pack/Hair White Dahlia/characters/hairwhitedahlia.gift
rename to spritepacks/Hair Flowers Pack/White Dahlia/characters/hairwhitedahlia.gift
diff --git a/spritepacks/Hair flowers pack/Hair White Dahlia/game/mod_assets/monika/a/acs-hair_white_dahlia-0.png b/spritepacks/Hair Flowers Pack/White Dahlia/game/mod_assets/monika/a/acs-hair_white_dahlia-0.png
similarity index 100%
rename from spritepacks/Hair flowers pack/Hair White Dahlia/game/mod_assets/monika/a/acs-hair_white_dahlia-0.png
rename to spritepacks/Hair Flowers Pack/White Dahlia/game/mod_assets/monika/a/acs-hair_white_dahlia-0.png
diff --git a/spritepacks/Hair flowers pack/Hair White Dahlia/game/mod_assets/monika/a/acs-hair_white_dahlia-5.png b/spritepacks/Hair Flowers Pack/White Dahlia/game/mod_assets/monika/a/acs-hair_white_dahlia-5.png
similarity index 100%
rename from spritepacks/Hair flowers pack/Hair White Dahlia/game/mod_assets/monika/a/acs-hair_white_dahlia-5.png
rename to spritepacks/Hair Flowers Pack/White Dahlia/game/mod_assets/monika/a/acs-hair_white_dahlia-5.png
diff --git a/spritepacks/Hair Flowers Pack/White Dahlia/game/mod_assets/monika/j/acs_otter_hair_white_dahlia.json b/spritepacks/Hair Flowers Pack/White Dahlia/game/mod_assets/monika/j/acs_otter_hair_white_dahlia.json
new file mode 100644
index 0000000..4654647
--- /dev/null
+++ b/spritepacks/Hair Flowers Pack/White Dahlia/game/mod_assets/monika/j/acs_otter_hair_white_dahlia.json
@@ -0,0 +1,30 @@
+{
+ "__author": "MAS Self Harm Submod Team // otter",
+ "version": 3,
+ "type": 0,
+ "name": "otter_hair_white_dahlia",
+ "img_sit": "hair_white_dahlia",
+ "pose_map": {
+ "default": "0",
+ "l_default": "5"
+ },
+ "stay_on_start": true,
+ "rec_layer": 1,
+ "priority": 20,
+ "acs_type": "left-hair-flower",
+ "mux_type": [
+ "left-hair-flower"
+ ],
+ "ex_props": {
+ "left-hair-strand-eye-level": false
+ },
+ "select_info": {
+ "display_name": "White Dahlia",
+ "thumb": "hair_white_dahlia",
+ "group": "left-hair-flower",
+ "select_dlg": [
+ "Elegance is the only beauty that never fades."
+ ]
+ },
+ "giftname": "hairwhitedahlia"
+}
diff --git a/spritepacks/Hair flowers pack/Hair White Dahlia/game/mod_assets/thumbs/acs-hair_white_dahlia.png b/spritepacks/Hair Flowers Pack/White Dahlia/game/mod_assets/thumbs/acs-hair_white_dahlia.png
similarity index 100%
rename from spritepacks/Hair flowers pack/Hair White Dahlia/game/mod_assets/thumbs/acs-hair_white_dahlia.png
rename to spritepacks/Hair Flowers Pack/White Dahlia/game/mod_assets/thumbs/acs-hair_white_dahlia.png
diff --git a/spritepacks/Hair flowers pack/Hair Acacia/game/mod_assets/monika/j/acs_otter_hair_acacia.json b/spritepacks/Hair flowers pack/Hair Acacia/game/mod_assets/monika/j/acs_otter_hair_acacia.json
deleted file mode 100644
index 822c652..0000000
--- a/spritepacks/Hair flowers pack/Hair Acacia/game/mod_assets/monika/j/acs_otter_hair_acacia.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "__author": "otter",
- "version": 3,
- "type": 0,
- "name": "otter_hair_acacia",
- "img_sit": "hair_acacia",
- "pose_map": {
- "default": "0",
- "l_default": "5"
- },
- "stay_on_start": true,
- "rec_layer": 1,
- "priority": 20,
- "acs_type": "left-hair-flower",
- "mux_type": [
- "left-hair-flower"
- ],
- "ex_props": {
- "left-hair-strand-eye-level": false
- },
- "select_info": {
- "display_name": "Acacia",
- "thumb": "hair_acacia",
- "group": "left-hair-flower",
- "select_dlg": [
- "Freedom is a state of mind!"
- ]
- },
- "giftname": "hairacacia"
-}
diff --git a/spritepacks/Hair flowers pack/Hair Flannel Flower/game/mod_assets/monika/j/acs_otter_hair_flannel_flower.json b/spritepacks/Hair flowers pack/Hair Flannel Flower/game/mod_assets/monika/j/acs_otter_hair_flannel_flower.json
deleted file mode 100644
index 9b9b36f..0000000
--- a/spritepacks/Hair flowers pack/Hair Flannel Flower/game/mod_assets/monika/j/acs_otter_hair_flannel_flower.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "__author": "otter",
- "version": 3,
- "type": 0,
- "name": "otter_hair_flannel_flower",
- "img_sit": "hair_flannel_flower",
- "pose_map": {
- "default": "0",
- "l_default": "5"
- },
- "stay_on_start": true,
- "rec_layer": 1,
- "priority": 20,
- "acs_type": "left-hair-flower",
- "mux_type": [
- "left-hair-flower"
- ],
- "ex_props": {
- "left-hair-strand-eye-level": false
- },
- "select_info": {
- "display_name": "Flannel Flower",
- "thumb": "hair_flannel_flower",
- "group": "left-hair-flower",
- "select_dlg": [
- "Did you know The Mental Health Council of Australia chose this flower as their emblem?"
- ]
- },
- "giftname": "hairflannelflower"
-}
diff --git a/spritepacks/Hair flowers pack/Hair Hyacinth/game/mod_assets/monika/j/acs_otter_hair_hyacinth.json b/spritepacks/Hair flowers pack/Hair Hyacinth/game/mod_assets/monika/j/acs_otter_hair_hyacinth.json
deleted file mode 100644
index 4dcd20e..0000000
--- a/spritepacks/Hair flowers pack/Hair Hyacinth/game/mod_assets/monika/j/acs_otter_hair_hyacinth.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "__author": "otter",
- "version": 3,
- "type": 0,
- "name": "otter_hair_hyacinth",
- "img_sit": "hair_hyacinth",
- "pose_map": {
- "default": "0",
- "l_default": "5"
- },
- "stay_on_start": true,
- "rec_layer": 1,
- "priority": 20,
- "acs_type": "left-hair-flower",
- "mux_type": [
- "left-hair-flower"
- ],
- "ex_props": {
- "left-hair-strand-eye-level": false
- },
- "select_info": {
- "display_name": "Hyacinth",
- "thumb": "hair_hyacinth",
- "group": "left-hair-flower",
- "select_dlg": [
- "Poetry is the synthesis of hyacinths and biscuits."
- ]
- },
- "giftname": "hairhyacinth"
-}
diff --git a/spritepacks/Hair flowers pack/Hair Lotus/game/mod_assets/monika/j/acs_otter_hair_lotus.json b/spritepacks/Hair flowers pack/Hair Lotus/game/mod_assets/monika/j/acs_otter_hair_lotus.json
deleted file mode 100644
index f715bcb..0000000
--- a/spritepacks/Hair flowers pack/Hair Lotus/game/mod_assets/monika/j/acs_otter_hair_lotus.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "__author": "otter",
- "version": 3,
- "type": 0,
- "name": "otter_hair_lotus",
- "img_sit": "hair_lotus",
- "pose_map": {
- "default": "0",
- "l_default": "5"
- },
- "stay_on_start": true,
- "rec_layer": 1,
- "priority": 20,
- "acs_type": "left-hair-flower",
- "mux_type": [
- "left-hair-flower"
- ],
- "ex_props": {
- "left-hair-strand-eye-level": false
- },
- "select_info": {
- "display_name": "Lotus",
- "thumb": "hair_lotus",
- "group": "left-hair-flower",
- "select_dlg": [
- "Be like a lotus. Let the beauty of your heart speak."
- ]
- },
- "giftname": "hairlotus"
-}
diff --git a/spritepacks/Hair flowers pack/Hair White Dahlia/game/mod_assets/monika/j/acs_otter_hair_white_dahlia.json b/spritepacks/Hair flowers pack/Hair White Dahlia/game/mod_assets/monika/j/acs_otter_hair_white_dahlia.json
deleted file mode 100644
index df1076a..0000000
--- a/spritepacks/Hair flowers pack/Hair White Dahlia/game/mod_assets/monika/j/acs_otter_hair_white_dahlia.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "__author": "otter",
- "version": 3,
- "type": 0,
- "name": "otter_hair_white_dahlia",
- "img_sit": "hair_white_dahlia",
- "pose_map": {
- "default": "0",
- "l_default": "5"
- },
- "stay_on_start": true,
- "rec_layer": 1,
- "priority": 20,
- "acs_type": "left-hair-flower",
- "mux_type": [
- "left-hair-flower"
- ],
- "ex_props": {
- "left-hair-strand-eye-level": false
- },
- "select_info": {
- "display_name": "White Dahlia",
- "thumb": "hair_white_dahlia",
- "group": "left-hair-flower",
- "select_dlg": [
- "Elegance is the only beauty that never fades."
- ]
- },
- "giftname": "hairwhitedahlia"
-}
diff --git a/spritepacks/Monarch butterfly pack/Monarch butterfly earrings/characters/sh_monarchbutterfly_earrings.gift b/spritepacks/Monarch Butterfly Pack/Earrings/characters/sh_monarchbutterfly_earrings.gift
similarity index 100%
rename from spritepacks/Monarch butterfly pack/Monarch butterfly earrings/characters/sh_monarchbutterfly_earrings.gift
rename to spritepacks/Monarch Butterfly Pack/Earrings/characters/sh_monarchbutterfly_earrings.gift
diff --git a/spritepacks/Monarch butterfly pack/Monarch butterfly earrings/game/mod_assets/monika/a/acs-sh_monarch_butterfly_earrings-0.png b/spritepacks/Monarch Butterfly Pack/Earrings/game/mod_assets/monika/a/acs-sh_monarch_butterfly_earrings-0.png
similarity index 100%
rename from spritepacks/Monarch butterfly pack/Monarch butterfly earrings/game/mod_assets/monika/a/acs-sh_monarch_butterfly_earrings-0.png
rename to spritepacks/Monarch Butterfly Pack/Earrings/game/mod_assets/monika/a/acs-sh_monarch_butterfly_earrings-0.png
diff --git a/spritepacks/Monarch butterfly pack/Monarch butterfly earrings/game/mod_assets/monika/a/acs-sh_monarch_butterfly_earrings-5.png b/spritepacks/Monarch Butterfly Pack/Earrings/game/mod_assets/monika/a/acs-sh_monarch_butterfly_earrings-5.png
similarity index 100%
rename from spritepacks/Monarch butterfly pack/Monarch butterfly earrings/game/mod_assets/monika/a/acs-sh_monarch_butterfly_earrings-5.png
rename to spritepacks/Monarch Butterfly Pack/Earrings/game/mod_assets/monika/a/acs-sh_monarch_butterfly_earrings-5.png
diff --git a/spritepacks/Monarch Butterfly Pack/Earrings/game/mod_assets/monika/j/acs_sh_monarch_butterfly_earrings.json b/spritepacks/Monarch Butterfly Pack/Earrings/game/mod_assets/monika/j/acs_sh_monarch_butterfly_earrings.json
new file mode 100644
index 0000000..bb3705b
--- /dev/null
+++ b/spritepacks/Monarch Butterfly Pack/Earrings/game/mod_assets/monika/j/acs_sh_monarch_butterfly_earrings.json
@@ -0,0 +1,28 @@
+{
+ "__author": "MAS Self Harm Submod Team // HistoryVariety and otter",
+ "version": 3,
+ "type": 0,
+ "name": "sh_monarch_butterfly_earrings",
+ "img_sit": "sh_monarch_butterfly_earrings",
+ "pose_map": {
+ "default": "0",
+ "l_default": "5"
+ },
+ "rec_layer": 10,
+ "acs_type": "earrings",
+ "mux_type": [
+ "earrings"
+ ],
+ "stay_on_start": true,
+ "giftname": "sh_monarchbutterfly_earrings",
+ "dlg_desc": "monarch butterfly earrings",
+ "dlg_plural": true,
+ "select_info": {
+ "display_name": "Monarch butterfly earrings",
+ "thumb": "sh_monarchbutterfly_earrings",
+ "group": "earrings",
+ "select_dlg": [
+ "There is no growth without change!"
+ ]
+ }
+}
diff --git a/spritepacks/Monarch butterfly pack/Monarch butterfly earrings/game/mod_assets/thumbs/acs-sh_monarchbutterfly_earrings.png b/spritepacks/Monarch Butterfly Pack/Earrings/game/mod_assets/thumbs/acs-sh_monarchbutterfly_earrings.png
similarity index 100%
rename from spritepacks/Monarch butterfly pack/Monarch butterfly earrings/game/mod_assets/thumbs/acs-sh_monarchbutterfly_earrings.png
rename to spritepacks/Monarch Butterfly Pack/Earrings/game/mod_assets/thumbs/acs-sh_monarchbutterfly_earrings.png
diff --git a/spritepacks/Monarch butterfly pack/Monarch butterfly hairclip/characters/sh_monarchbutterflyhairclip.gift b/spritepacks/Monarch Butterfly Pack/Hairclip/characters/sh_monarchbutterflyhairclip.gift
similarity index 100%
rename from spritepacks/Monarch butterfly pack/Monarch butterfly hairclip/characters/sh_monarchbutterflyhairclip.gift
rename to spritepacks/Monarch Butterfly Pack/Hairclip/characters/sh_monarchbutterflyhairclip.gift
diff --git a/spritepacks/Monarch butterfly pack/Monarch butterfly hairclip/game/mod_assets/monika/a/acs-sh_monarch_butterfly-0.png b/spritepacks/Monarch Butterfly Pack/Hairclip/game/mod_assets/monika/a/acs-sh_monarch_butterfly-0.png
similarity index 100%
rename from spritepacks/Monarch butterfly pack/Monarch butterfly hairclip/game/mod_assets/monika/a/acs-sh_monarch_butterfly-0.png
rename to spritepacks/Monarch Butterfly Pack/Hairclip/game/mod_assets/monika/a/acs-sh_monarch_butterfly-0.png
diff --git a/spritepacks/Monarch butterfly pack/Monarch butterfly hairclip/game/mod_assets/monika/a/acs-sh_monarch_butterfly-5.png b/spritepacks/Monarch Butterfly Pack/Hairclip/game/mod_assets/monika/a/acs-sh_monarch_butterfly-5.png
similarity index 100%
rename from spritepacks/Monarch butterfly pack/Monarch butterfly hairclip/game/mod_assets/monika/a/acs-sh_monarch_butterfly-5.png
rename to spritepacks/Monarch Butterfly Pack/Hairclip/game/mod_assets/monika/a/acs-sh_monarch_butterfly-5.png
diff --git a/spritepacks/Monarch Butterfly Pack/Hairclip/game/mod_assets/monika/j/acs-monarch_butterfly_hairclip.json b/spritepacks/Monarch Butterfly Pack/Hairclip/game/mod_assets/monika/j/acs-monarch_butterfly_hairclip.json
new file mode 100644
index 0000000..86a9164
--- /dev/null
+++ b/spritepacks/Monarch Butterfly Pack/Hairclip/game/mod_assets/monika/j/acs-monarch_butterfly_hairclip.json
@@ -0,0 +1,25 @@
+{
+ "__author": "MAS Self Harm Submod Team // HistoryVariety",
+ "version": 3,
+ "type": 0,
+ "name": "sh_monarch_butterfly_hairclip",
+ "img_sit": "sh_monarch_butterfly",
+ "pose_map": {
+ "default": "0",
+ "l_default": "5"
+ },
+ "rec_layer": 5,
+ "acs_type": "left-hair-clip",
+ "stay_on_start": true,
+ "ex_props": {},
+ "select_info": {
+ "display_name": "Monarch Butterfly Hairclip",
+ "thumb": "sh_monarch_butterfly_hairclip",
+ "group": "left-hair-clip",
+ "select_dlg": [
+ "Adorable!",
+ "Just when the caterpillar thought the world was over, it became a butterfly!"
+ ]
+ },
+ "giftname": "sh_monarchbutterflyhairclip"
+}
diff --git a/spritepacks/Monarch butterfly pack/Monarch butterfly hairclip/game/mod_assets/thumbs/acs-sh_monarch_butterfly_hairclip.png b/spritepacks/Monarch Butterfly Pack/Hairclip/game/mod_assets/thumbs/acs-sh_monarch_butterfly_hairclip.png
similarity index 100%
rename from spritepacks/Monarch butterfly pack/Monarch butterfly hairclip/game/mod_assets/thumbs/acs-sh_monarch_butterfly_hairclip.png
rename to spritepacks/Monarch Butterfly Pack/Hairclip/game/mod_assets/thumbs/acs-sh_monarch_butterfly_hairclip.png
diff --git a/spritepacks/Monarch butterfly pack/Monarch Butterfly Necklace/characters/sh_monarchbutterflynecklace.gift b/spritepacks/Monarch Butterfly Pack/Necklace/characters/sh_monarchbutterflynecklace.gift
similarity index 100%
rename from spritepacks/Monarch butterfly pack/Monarch Butterfly Necklace/characters/sh_monarchbutterflynecklace.gift
rename to spritepacks/Monarch Butterfly Pack/Necklace/characters/sh_monarchbutterflynecklace.gift
diff --git a/spritepacks/Monarch butterfly pack/Monarch Butterfly Necklace/game/mod_assets/monika/a/acs-sh_monarch_butterfly_necklace-0-0.png b/spritepacks/Monarch Butterfly Pack/Necklace/game/mod_assets/monika/a/acs-sh_monarch_butterfly_necklace-0-0.png
similarity index 100%
rename from spritepacks/Monarch butterfly pack/Monarch Butterfly Necklace/game/mod_assets/monika/a/acs-sh_monarch_butterfly_necklace-0-0.png
rename to spritepacks/Monarch Butterfly Pack/Necklace/game/mod_assets/monika/a/acs-sh_monarch_butterfly_necklace-0-0.png
diff --git a/spritepacks/Monarch butterfly pack/Monarch Butterfly Necklace/game/mod_assets/monika/a/acs-sh_monarch_butterfly_necklace-5-0.png b/spritepacks/Monarch Butterfly Pack/Necklace/game/mod_assets/monika/a/acs-sh_monarch_butterfly_necklace-5-0.png
similarity index 100%
rename from spritepacks/Monarch butterfly pack/Monarch Butterfly Necklace/game/mod_assets/monika/a/acs-sh_monarch_butterfly_necklace-5-0.png
rename to spritepacks/Monarch Butterfly Pack/Necklace/game/mod_assets/monika/a/acs-sh_monarch_butterfly_necklace-5-0.png
diff --git a/spritepacks/Monarch Butterfly Pack/Necklace/game/mod_assets/monika/j/acs-sh_monarch_butterfly_necklace.json b/spritepacks/Monarch Butterfly Pack/Necklace/game/mod_assets/monika/j/acs-sh_monarch_butterfly_necklace.json
new file mode 100644
index 0000000..ccdd687
--- /dev/null
+++ b/spritepacks/Monarch Butterfly Pack/Necklace/game/mod_assets/monika/j/acs-sh_monarch_butterfly_necklace.json
@@ -0,0 +1,30 @@
+{
+ "__author": "MAS Self Harm Submod Team // HistoryVariety",
+ "version": 3,
+ "type": 0,
+ "name": "sh_monarch_butterfly_necklace",
+ "img_sit": "sh_monarch_butterfly_necklace",
+ "pose_map": {
+ "default": "0",
+ "l_default": "5"
+ },
+ "rec_layer": 8,
+ "acs_type": "necklace",
+ "stay_on_start": true,
+ "priority": 8,
+ "dlg_desc": "necklace",
+ "dlg_plural": false,
+ "select_info": {
+ "display_name": "Monarch Butterfly Necklace",
+ "thumb": "sh_monarch_butterfly_necklace",
+ "group": "necklace",
+ "select_dlg": [
+ "You always give me butterflies in my stomach, [player]!"
+ ]
+ },
+ "giftname": "sh_monarchbutterflynecklace",
+ "arm_split": {
+ "default": "0",
+ "use_reg_for_l": true
+ }
+}
diff --git a/spritepacks/Monarch butterfly pack/Monarch Butterfly Necklace/game/mod_assets/thumbs/acs-sh_monarch_butterfly_necklace.png b/spritepacks/Monarch Butterfly Pack/Necklace/game/mod_assets/thumbs/acs-sh_monarch_butterfly_necklace.png
similarity index 100%
rename from spritepacks/Monarch butterfly pack/Monarch Butterfly Necklace/game/mod_assets/thumbs/acs-sh_monarch_butterfly_necklace.png
rename to spritepacks/Monarch Butterfly Pack/Necklace/game/mod_assets/thumbs/acs-sh_monarch_butterfly_necklace.png
diff --git a/spritepacks/Monarch butterfly pack/Monarch butterfly tattoo/characters/sh_monarchbutterflyarmtattoo.gift b/spritepacks/Monarch Butterfly Pack/Tattoo/characters/sh_monarchbutterflyarmtattoo.gift
similarity index 100%
rename from spritepacks/Monarch butterfly pack/Monarch butterfly tattoo/characters/sh_monarchbutterflyarmtattoo.gift
rename to spritepacks/Monarch Butterfly Pack/Tattoo/characters/sh_monarchbutterflyarmtattoo.gift
diff --git a/spritepacks/Monarch butterfly pack/Monarch butterfly tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-1-10.png b/spritepacks/Monarch Butterfly Pack/Tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-1-10.png
similarity index 100%
rename from spritepacks/Monarch butterfly pack/Monarch butterfly tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-1-10.png
rename to spritepacks/Monarch Butterfly Pack/Tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-1-10.png
diff --git a/spritepacks/Monarch butterfly pack/Monarch butterfly tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-2-5.png b/spritepacks/Monarch Butterfly Pack/Tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-2-5.png
similarity index 100%
rename from spritepacks/Monarch butterfly pack/Monarch butterfly tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-2-5.png
rename to spritepacks/Monarch Butterfly Pack/Tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-2-5.png
diff --git a/spritepacks/Monarch butterfly pack/Monarch butterfly tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-3-10.png b/spritepacks/Monarch Butterfly Pack/Tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-3-10.png
similarity index 100%
rename from spritepacks/Monarch butterfly pack/Monarch butterfly tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-3-10.png
rename to spritepacks/Monarch Butterfly Pack/Tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-3-10.png
diff --git a/spritepacks/Monarch butterfly pack/Monarch butterfly tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-4-0.png b/spritepacks/Monarch Butterfly Pack/Tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-4-0.png
similarity index 100%
rename from spritepacks/Monarch butterfly pack/Monarch butterfly tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-4-0.png
rename to spritepacks/Monarch Butterfly Pack/Tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-4-0.png
diff --git a/spritepacks/Monarch butterfly pack/Monarch butterfly tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-5-10.png b/spritepacks/Monarch Butterfly Pack/Tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-5-10.png
similarity index 100%
rename from spritepacks/Monarch butterfly pack/Monarch butterfly tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-5-10.png
rename to spritepacks/Monarch Butterfly Pack/Tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-5-10.png
diff --git a/spritepacks/Monarch butterfly pack/Monarch butterfly tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-6-0.png b/spritepacks/Monarch Butterfly Pack/Tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-6-0.png
similarity index 100%
rename from spritepacks/Monarch butterfly pack/Monarch butterfly tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-6-0.png
rename to spritepacks/Monarch Butterfly Pack/Tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-6-0.png
diff --git a/spritepacks/Monarch butterfly pack/Monarch butterfly tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-7-0.png b/spritepacks/Monarch Butterfly Pack/Tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-7-0.png
similarity index 100%
rename from spritepacks/Monarch butterfly pack/Monarch butterfly tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-7-0.png
rename to spritepacks/Monarch Butterfly Pack/Tattoo/game/mod_assets/monika/a/acs-sh_mj_and_otter_monarch_butterfly_armtattoo-7-0.png
diff --git a/spritepacks/Monarch Butterfly Pack/Tattoo/game/mod_assets/monika/j/acs-sh_mj_and_otter_monarch_butterfly_armtattoo.json b/spritepacks/Monarch Butterfly Pack/Tattoo/game/mod_assets/monika/j/acs-sh_mj_and_otter_monarch_butterfly_armtattoo.json
new file mode 100644
index 0000000..9451f40
--- /dev/null
+++ b/spritepacks/Monarch Butterfly Pack/Tattoo/game/mod_assets/monika/j/acs-sh_mj_and_otter_monarch_butterfly_armtattoo.json
@@ -0,0 +1,45 @@
+{
+ "__author": "MAS Self Harm Submod Team // MayJay and otter",
+ "version": 3,
+ "type": 0,
+ "name": "sh_mj_and_otter_monarch_butterfly_armtattoo",
+ "img_sit": "sh_mj_and_otter_monarch_butterfly_armtattoo",
+ "pose_map": {
+ "p1": "1",
+ "p2": "2",
+ "p3": "3",
+ "p4": "4",
+ "p5": "5",
+ "p6": "6",
+ "p7": "7"
+ },
+ "stay_on_start": true,
+ "select_info": {
+ "display_name": "Monarch Butterfly Arm Tattoo",
+ "thumb": "sh_monarch_butterfly_armtattoo",
+ "group": "larmtattoo_acs",
+ "visible_when_locked": false,
+ "select_dlg": [
+ "If nothing ever changed, there would be no butterflies!"
+ ]
+ },
+ "giftname": "sh_monarchbutterflyarmtattoo",
+ "rec_layer": 9,
+ "priority": 1,
+ "acs_type": "larmtattoo_acs",
+ "arm_split": {
+ "default": "0",
+ "l_default": "5",
+ "use_reg_for_l": true,
+ "p1": "10",
+ "p2": "5",
+ "p3": "10",
+ "p4": "0",
+ "p5": "10",
+ "p6": "0",
+ "p7": "0"
+ },
+ "dlg_desc": "tattoo",
+ "dlg_plural": false,
+ "keep_on_desk": false
+}
diff --git a/spritepacks/Monarch butterfly pack/Monarch butterfly tattoo/game/mod_assets/thumbs/acs-sh_monarch_butterfly_armtattoo.png b/spritepacks/Monarch Butterfly Pack/Tattoo/game/mod_assets/thumbs/acs-sh_monarch_butterfly_armtattoo.png
similarity index 100%
rename from spritepacks/Monarch butterfly pack/Monarch butterfly tattoo/game/mod_assets/thumbs/acs-sh_monarch_butterfly_armtattoo.png
rename to spritepacks/Monarch Butterfly Pack/Tattoo/game/mod_assets/thumbs/acs-sh_monarch_butterfly_armtattoo.png
diff --git a/spritepacks/Monarch butterfly pack/Monarch Butterfly Necklace/game/mod_assets/monika/j/acs-sh_monarch_butterfly_necklace.json b/spritepacks/Monarch butterfly pack/Monarch Butterfly Necklace/game/mod_assets/monika/j/acs-sh_monarch_butterfly_necklace.json
deleted file mode 100644
index 0c4f02e..0000000
--- a/spritepacks/Monarch butterfly pack/Monarch Butterfly Necklace/game/mod_assets/monika/j/acs-sh_monarch_butterfly_necklace.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "__author": "MAS Self Harm Submod--HistoryVariety",
- "version": 3,
- "type": 0,
- "name": "sh_monarch_butterfly_necklace",
- "img_sit": "sh_monarch_butterfly_necklace",
- "pose_map": {
- "default": "0",
- "l_default": "5"
- },
- "rec_layer": 8,
- "acs_type": "necklace",
- "stay_on_start": true,
- "priority": 8,
- "dlg_desc": "necklace",
- "dlg_plural": false,
- "select_info": {
- "display_name": "Monarch Butterfly Necklace",
- "thumb": "sh_monarch_butterfly_necklace",
- "group": "necklace",
- "select_dlg": [
- "You always give me butteflies in my stomach, [player]!"
- ]
- },
- "giftname": "sh_monarchbutterflynecklace",
- "arm_split": {
- "default": "0",
- "use_reg_for_l": true
- }
-}
diff --git a/spritepacks/Monarch butterfly pack/Monarch butterfly earrings/game/mod_assets/monika/j/acs_sh_monarch_butterfly_earrings.json b/spritepacks/Monarch butterfly pack/Monarch butterfly earrings/game/mod_assets/monika/j/acs_sh_monarch_butterfly_earrings.json
deleted file mode 100644
index cf7a402..0000000
--- a/spritepacks/Monarch butterfly pack/Monarch butterfly earrings/game/mod_assets/monika/j/acs_sh_monarch_butterfly_earrings.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "__author": "Self-Harm Submod--HistoryVariety and otter",
- "version": 3,
- "type": 0,
- "name": "sh_monarch_butterfly_earrings",
- "img_sit": "sh_monarch_butterfly_earrings",
- "pose_map": {
- "default": "0",
- "l_default": "5"
- },
- "rec_layer": 10,
- "acs_type": "earrings",
- "mux_type": [
- "earrings"
- ],
- "stay_on_start": true,
- "giftname": "sh_monarchbutterfly_earrings",
- "dlg_desc": "monarch butterfly earrings",
- "dlg_plural": true,
- "select_info": {
- "display_name": "Monarch butterfly earrings",
- "thumb": "sh_monarchbutterfly_earrings",
- "group": "earrings",
- "select_dlg": [
- "There is no growth without change!"
- ]
- }
-}
diff --git a/spritepacks/Monarch butterfly pack/Monarch butterfly hairclip/game/mod_assets/monika/j/acs-monarch_butterfly_hairclip.json b/spritepacks/Monarch butterfly pack/Monarch butterfly hairclip/game/mod_assets/monika/j/acs-monarch_butterfly_hairclip.json
deleted file mode 100644
index 5cd61f7..0000000
--- a/spritepacks/Monarch butterfly pack/Monarch butterfly hairclip/game/mod_assets/monika/j/acs-monarch_butterfly_hairclip.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "__author": "Self-Harm Submod--HistoryVariety",
- "version": 3,
- "type": 0,
- "name": "sh_monarch_butterfly_hairclip",
- "img_sit": "sh_monarch_butterfly",
- "pose_map": {
- "default": "0",
- "l_default": "5"
- },
- "rec_layer": 5,
- "acs_type": "left-hair-clip",
- "stay_on_start": true,
- "ex_props": {
- },
- "select_info": {
- "display_name": "Monarch Butterfly Hairclip",
- "thumb": "sh_monarch_butterfly_hairclip",
- "group": "left-hair-clip",
- "select_dlg": [
- "Adorable!",
- "Just when the catepillar thought the world was over, it became a butterfly!"
- ]
- },
- "giftname": "sh_monarchbutterflyhairclip"
-}
diff --git a/spritepacks/Monarch butterfly pack/Monarch butterfly tattoo/game/mod_assets/monika/j/acs-sh_mj_and_otter_monarch_butterfly_armtattoo.json b/spritepacks/Monarch butterfly pack/Monarch butterfly tattoo/game/mod_assets/monika/j/acs-sh_mj_and_otter_monarch_butterfly_armtattoo.json
deleted file mode 100644
index 9921533..0000000
--- a/spritepacks/Monarch butterfly pack/Monarch butterfly tattoo/game/mod_assets/monika/j/acs-sh_mj_and_otter_monarch_butterfly_armtattoo.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "__author": "MAS SH submod team // MayJay and otter",
- "version": 3,
- "type": 0,
- "name": "sh_mj_and_otter_monarch_butterfly_armtattoo",
- "img_sit": "sh_mj_and_otter_monarch_butterfly_armtattoo",
- "pose_map": {
- "p1": "1",
- "p2": "2",
- "p3": "3",
- "p4": "4",
- "p5": "5",
- "p6": "6",
- "p7": "7"
- },
- "stay_on_start": true,
- "select_info": {
- "display_name": "Monarch Butterfly Arm Tattoo",
- "thumb": "sh_monarch_butterfly_armtattoo",
- "group": "larmtattoo_acs",
- "visible_when_locked": false,
- "select_dlg": [
- "If nothing ever changed, there would be no butterflies!"
- ]
- },
- "giftname": "sh_monarchbutterflyarmtattoo",
- "rec_layer": 9,
- "priority": 1,
- "acs_type": "larmtattoo_acs",
- "arm_split": {
- "default": "0",
- "l_default": "5",
- "use_reg_for_l": true,
- "p1": "10",
- "p2": "5",
- "p3": "10",
- "p4": "0",
- "p5": "10",
- "p6": "0",
- "p7": "0"
- },
- "dlg_desc": "tattoo",
- "dlg_plural": false,
- "keep_on_desk": false
-}
diff --git a/spritepacks/Semicolon pack/Heart semicolon hoodie/characters/sh_heartsemicolonhoodie.gift b/spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/characters/sh_heartsemicolonhoodie.gift
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon hoodie/characters/sh_heartsemicolonhoodie.gift
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/characters/sh_heartsemicolonhoodie.gift
diff --git a/spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-crossed-10.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-crossed-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-crossed-10.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-crossed-10.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-crossed-5.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-crossed-5.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-crossed-5.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-crossed-5.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-leaning-def-left-def-10.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-leaning-def-left-def-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-leaning-def-left-def-10.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-leaning-def-left-def-10.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-leaning-def-right-def-10.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-leaning-def-right-def-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-leaning-def-right-def-10.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-leaning-def-right-def-10.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-leaning-def-right-def-5.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-leaning-def-right-def-5.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-leaning-def-right-def-5.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-leaning-def-right-def-5.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-left-down-0.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-left-down-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-left-down-0.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-left-down-0.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-left-rest-10.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-left-rest-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-left-rest-10.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-left-rest-10.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-right-down-0.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-right-down-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-right-down-0.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-right-down-0.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-right-point-0.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-right-point-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-right-point-0.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-right-point-0.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-right-restpoint-10.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-right-restpoint-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-right-restpoint-10.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-right-restpoint-10.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-steepling-10.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-steepling-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-steepling-10.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/arms-steepling-10.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/body-def-0.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/body-def-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/body-def-0.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/body-def-0.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/body-def-1.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/body-def-1.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/body-def-1.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/body-def-1.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/body-leaning-def-0.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/body-leaning-def-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/body-leaning-def-0.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/body-leaning-def-0.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/body-leaning-def-1.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/body-leaning-def-1.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/body-leaning-def-1.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/c/sh_mj_heart_semicolonhoodie/body-leaning-def-1.png
diff --git a/spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/j/sh_mj_heart_semicolonhoodie.json b/spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/j/sh_mj_heart_semicolonhoodie.json
new file mode 100644
index 0000000..0a9853a
--- /dev/null
+++ b/spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/monika/j/sh_mj_heart_semicolonhoodie.json
@@ -0,0 +1,67 @@
+{
+ "__author": "MAS Self Harm Submod Team // MayJay",
+ "version": 3,
+ "type": 2,
+ "name": "sh_mj_heart_semicolonhoodie",
+ "img_sit": "sh_mj_heart_semicolonhoodie",
+ "pose_map": {
+ "mpm_type": 0,
+ "default": false,
+ "use_reg_for_l": true,
+ "p1": true,
+ "p2": true,
+ "p3": true,
+ "p4": true,
+ "p5": true,
+ "p6": true,
+ "p7": true
+ },
+ "stay_on_start": true,
+ "select_info": {
+ "display_name": "Heart Semi Colon Hoodie",
+ "thumb": "thumb_sh_mj_heart_semicolonhoodie",
+ "group": "clothes",
+ "select_dlg": [
+ "Your story isn't over yet, [player]!"
+ ]
+ },
+ "giftname": "sh_heartsemicolonhoodie",
+ "pose_arms": {
+ "crossed": {
+ "tag": "crossed",
+ "layers": "5"
+ },
+ "left-down": {
+ "tag": "down",
+ "layers": "0"
+ },
+ "left-rest": {
+ "tag": "rest",
+ "layers": "10"
+ },
+ "right-down": {
+ "tag": "down",
+ "layers": "0"
+ },
+ "right-point": {
+ "tag": "point",
+ "layers": "0"
+ },
+ "right-restpoint": {
+ "tag": "restpoint",
+ "layers": "10"
+ },
+ "steepling": {
+ "tag": "steepling",
+ "layers": "10"
+ },
+ "def|left-def": {
+ "tag": "def",
+ "layers": "10"
+ },
+ "def|right-def": {
+ "tag": "def",
+ "layers": "5^10"
+ }
+ }
+}
diff --git a/spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/thumbs/clothes-thumb_sh_mj_heart_semicolonhoodie.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/thumbs/clothes-thumb_sh_mj_heart_semicolonhoodie.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/thumbs/clothes-thumb_sh_mj_heart_semicolonhoodie.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Hoodie/game/mod_assets/thumbs/clothes-thumb_sh_mj_heart_semicolonhoodie.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/characters/sh_longsleevedheartsemicolonshirt.gift b/spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/characters/sh_longsleevedheartsemicolonshirt.gift
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/characters/sh_longsleevedheartsemicolonshirt.gift
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/characters/sh_longsleevedheartsemicolonshirt.gift
diff --git a/spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-crossed-10.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-crossed-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-crossed-10.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-crossed-10.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-crossed-5.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-crossed-5.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-crossed-5.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-crossed-5.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-leaning-def-left-def-10.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-leaning-def-left-def-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-leaning-def-left-def-10.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-leaning-def-left-def-10.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-leaning-def-right-def-10.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-leaning-def-right-def-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-leaning-def-right-def-10.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-leaning-def-right-def-10.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-leaning-def-right-def-5.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-leaning-def-right-def-5.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-leaning-def-right-def-5.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-leaning-def-right-def-5.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-left-down-0.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-left-down-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-left-down-0.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-left-down-0.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-left-rest-10.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-left-rest-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-left-rest-10.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-left-rest-10.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-right-down-0.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-right-down-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-right-down-0.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-right-down-0.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-right-point-0.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-right-point-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-right-point-0.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-right-point-0.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-right-restpoint-10.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-right-restpoint-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-right-restpoint-10.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-right-restpoint-10.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-steepling-10.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-steepling-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-steepling-10.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/arms-steepling-10.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/body-def-0.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/body-def-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/body-def-0.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/body-def-0.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/body-def-1.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/body-def-1.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/body-def-1.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/body-def-1.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/body-leaning-def-0.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/body-leaning-def-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/body-leaning-def-0.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/body-leaning-def-0.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/body-leaning-def-1.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/body-leaning-def-1.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/body-leaning-def-1.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/c/sh_mj_longsleeved_heart_semicolonshirt/body-leaning-def-1.png
diff --git a/spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/j/sh_mj_longsleeved_heart_semicolonshirt.json b/spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/j/sh_mj_longsleeved_heart_semicolonshirt.json
new file mode 100644
index 0000000..bb2df43
--- /dev/null
+++ b/spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/monika/j/sh_mj_longsleeved_heart_semicolonshirt.json
@@ -0,0 +1,67 @@
+{
+ "__author": "MAS Self Harm Submod Team // MayJay",
+ "version": 3,
+ "type": 2,
+ "name": "sh_mj_longsleeved_heart_semicolonshirt",
+ "img_sit": "sh_mj_longsleeved_heart_semicolonshirt",
+ "pose_map": {
+ "mpm_type": 0,
+ "default": false,
+ "use_reg_for_l": true,
+ "p1": true,
+ "p2": true,
+ "p3": true,
+ "p4": true,
+ "p5": true,
+ "p6": true,
+ "p7": true
+ },
+ "stay_on_start": true,
+ "select_info": {
+ "display_name": "Long Sleeved Heart Semi Colon Shirt",
+ "thumb": "thumb_sh_mj_longsleeved_heart_semicolonshirt",
+ "group": "clothes",
+ "select_dlg": [
+ "Your story isn't over yet, [player]!"
+ ]
+ },
+ "giftname": "sh_longsleevedheartsemicolonshirt",
+ "pose_arms": {
+ "crossed": {
+ "tag": "crossed",
+ "layers": "5"
+ },
+ "left-down": {
+ "tag": "down",
+ "layers": "0"
+ },
+ "left-rest": {
+ "tag": "rest",
+ "layers": "10"
+ },
+ "right-down": {
+ "tag": "down",
+ "layers": "0"
+ },
+ "right-point": {
+ "tag": "point",
+ "layers": "0"
+ },
+ "right-restpoint": {
+ "tag": "restpoint",
+ "layers": "10"
+ },
+ "steepling": {
+ "tag": "steepling",
+ "layers": "10"
+ },
+ "def|left-def": {
+ "tag": "def",
+ "layers": "10"
+ },
+ "def|right-def": {
+ "tag": "def",
+ "layers": "5^10"
+ }
+ }
+}
diff --git a/spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/thumbs/clothes-thumb_sh_mj_longsleeved_heart_semicolonshirt.png b/spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/thumbs/clothes-thumb_sh_mj_longsleeved_heart_semicolonshirt.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/thumbs/clothes-thumb_sh_mj_longsleeved_heart_semicolonshirt.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon Long Sleeved Shirt/game/mod_assets/thumbs/clothes-thumb_sh_mj_longsleeved_heart_semicolonshirt.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon t-shirt/characters/sh_heartsemicolonshirt.gift b/spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/characters/sh_heartsemicolonshirt.gift
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon t-shirt/characters/sh_heartsemicolonshirt.gift
rename to spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/characters/sh_heartsemicolonshirt.gift
diff --git a/spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-crossed-5.png b/spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-crossed-5.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-crossed-5.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-crossed-5.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-leaning-def-left-def-10.png b/spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-leaning-def-left-def-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-leaning-def-left-def-10.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-leaning-def-left-def-10.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-leaning-def-right-def-5.png b/spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-leaning-def-right-def-5.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-leaning-def-right-def-5.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-leaning-def-right-def-5.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-left-down-0.png b/spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-left-down-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-left-down-0.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-left-down-0.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-left-rest-10.png b/spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-left-rest-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-left-rest-10.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-left-rest-10.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-right-down-0.png b/spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-right-down-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-right-down-0.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-right-down-0.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-right-point-0.png b/spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-right-point-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-right-point-0.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-right-point-0.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-right-restpoint-10.png b/spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-right-restpoint-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-right-restpoint-10.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-right-restpoint-10.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-steepling-10.png b/spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-steepling-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-steepling-10.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/arms-steepling-10.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/body-def-0.png b/spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/body-def-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/body-def-0.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/body-def-0.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/body-def-1.png b/spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/body-def-1.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/body-def-1.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/body-def-1.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/body-leaning-def-0.png b/spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/body-leaning-def-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/body-leaning-def-0.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/body-leaning-def-0.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/body-leaning-def-1.png b/spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/body-leaning-def-1.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/body-leaning-def-1.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_heart_semicolonshirt/body-leaning-def-1.png
diff --git a/spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/j/sh_mj_heart_semicolonshirt.json b/spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/j/sh_mj_heart_semicolonshirt.json
new file mode 100644
index 0000000..56c62e5
--- /dev/null
+++ b/spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/monika/j/sh_mj_heart_semicolonshirt.json
@@ -0,0 +1,67 @@
+{
+ "__author": "MAS Self Harm Submod Team // MayJay",
+ "version": 3,
+ "type": 2,
+ "name": "sh_mj_heart_semicolonshirt",
+ "img_sit": "sh_mj_heart_semicolonshirt",
+ "pose_map": {
+ "mpm_type": 0,
+ "default": false,
+ "use_reg_for_l": true,
+ "p1": true,
+ "p2": true,
+ "p3": true,
+ "p4": true,
+ "p5": true,
+ "p6": true,
+ "p7": true
+ },
+ "stay_on_start": true,
+ "select_info": {
+ "display_name": "Heart Semi Colon T-Shirt",
+ "thumb": "thumb_sh_mj_heart_semicolonshirt",
+ "group": "clothes",
+ "select_dlg": [
+ "Your story isn't over yet, [player]!"
+ ]
+ },
+ "giftname": "sh_heartsemicolonshirt",
+ "pose_arms": {
+ "crossed": {
+ "tag": "crossed",
+ "layers": "5"
+ },
+ "left-down": {
+ "tag": "down",
+ "layers": "0"
+ },
+ "left-rest": {
+ "tag": "rest",
+ "layers": "10"
+ },
+ "right-down": {
+ "tag": "down",
+ "layers": "0"
+ },
+ "right-point": {
+ "tag": "point",
+ "layers": "0"
+ },
+ "right-restpoint": {
+ "tag": "restpoint",
+ "layers": "10"
+ },
+ "steepling": {
+ "tag": "steepling",
+ "layers": "10"
+ },
+ "def|left-def": {
+ "tag": "def",
+ "layers": "10"
+ },
+ "def|right-def": {
+ "tag": "def",
+ "layers": "5"
+ }
+ }
+}
diff --git a/spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/thumbs/clothes-thumb_sh_mj_heart_semicolonshirt.png b/spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/thumbs/clothes-thumb_sh_mj_heart_semicolonshirt.png
similarity index 100%
rename from spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/thumbs/clothes-thumb_sh_mj_heart_semicolonshirt.png
rename to spritepacks/Semicolon Project Pack/Heart Semicolon T-shirt/game/mod_assets/thumbs/clothes-thumb_sh_mj_heart_semicolonshirt.png
diff --git a/spritepacks/Semicolon pack/Red heart semicolon t-shirt/characters/sh_redheartsemicolonshirt.gift b/spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/characters/sh_redheartsemicolonshirt.gift
similarity index 100%
rename from spritepacks/Semicolon pack/Red heart semicolon t-shirt/characters/sh_redheartsemicolonshirt.gift
rename to spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/characters/sh_redheartsemicolonshirt.gift
diff --git a/spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-crossed-5.png b/spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-crossed-5.png
similarity index 100%
rename from spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-crossed-5.png
rename to spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-crossed-5.png
diff --git a/spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-leaning-def-left-def-10.png b/spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-leaning-def-left-def-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-leaning-def-left-def-10.png
rename to spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-leaning-def-left-def-10.png
diff --git a/spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-leaning-def-right-def-5.png b/spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-leaning-def-right-def-5.png
similarity index 100%
rename from spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-leaning-def-right-def-5.png
rename to spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-leaning-def-right-def-5.png
diff --git a/spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-left-down-0.png b/spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-left-down-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-left-down-0.png
rename to spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-left-down-0.png
diff --git a/spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-left-rest-10.png b/spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-left-rest-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-left-rest-10.png
rename to spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-left-rest-10.png
diff --git a/spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-right-down-0.png b/spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-right-down-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-right-down-0.png
rename to spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-right-down-0.png
diff --git a/spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-right-point-0.png b/spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-right-point-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-right-point-0.png
rename to spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-right-point-0.png
diff --git a/spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-right-restpoint-10.png b/spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-right-restpoint-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-right-restpoint-10.png
rename to spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-right-restpoint-10.png
diff --git a/spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-steepling-10.png b/spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-steepling-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-steepling-10.png
rename to spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/arms-steepling-10.png
diff --git a/spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/body-def-0.png b/spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/body-def-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/body-def-0.png
rename to spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/body-def-0.png
diff --git a/spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/body-def-1.png b/spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/body-def-1.png
similarity index 100%
rename from spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/body-def-1.png
rename to spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/body-def-1.png
diff --git a/spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/body-leaning-def-0.png b/spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/body-leaning-def-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/body-leaning-def-0.png
rename to spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/body-leaning-def-0.png
diff --git a/spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/body-leaning-def-1.png b/spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/body-leaning-def-1.png
similarity index 100%
rename from spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/body-leaning-def-1.png
rename to spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_red_heart_semicolonshirt/body-leaning-def-1.png
diff --git a/spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/j/sh_mj_red_heart_semicolonshirt.json b/spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/j/sh_mj_red_heart_semicolonshirt.json
new file mode 100644
index 0000000..04a0a19
--- /dev/null
+++ b/spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/monika/j/sh_mj_red_heart_semicolonshirt.json
@@ -0,0 +1,67 @@
+{
+ "__author": "MAS Self Harm Submod Team // MayJay",
+ "version": 3,
+ "type": 2,
+ "name": "sh_mj_red_heart_semicolonshirt",
+ "img_sit": "sh_mj_red_heart_semicolonshirt",
+ "pose_map": {
+ "mpm_type": 0,
+ "default": false,
+ "use_reg_for_l": true,
+ "p1": true,
+ "p2": true,
+ "p3": true,
+ "p4": true,
+ "p5": true,
+ "p6": true,
+ "p7": true
+ },
+ "stay_on_start": true,
+ "select_info": {
+ "display_name": "Red Heart Semi Colon T-Shirt",
+ "thumb": "thumb_sh_mj_red_heart_semicolonshirt",
+ "group": "clothes",
+ "select_dlg": [
+ "Your story isn't over yet, [player]!"
+ ]
+ },
+ "giftname": "sh_redheartsemicolonshirt",
+ "pose_arms": {
+ "crossed": {
+ "tag": "crossed",
+ "layers": "5"
+ },
+ "left-down": {
+ "tag": "down",
+ "layers": "0"
+ },
+ "left-rest": {
+ "tag": "rest",
+ "layers": "10"
+ },
+ "right-down": {
+ "tag": "down",
+ "layers": "0"
+ },
+ "right-point": {
+ "tag": "point",
+ "layers": "0"
+ },
+ "right-restpoint": {
+ "tag": "restpoint",
+ "layers": "10"
+ },
+ "steepling": {
+ "tag": "steepling",
+ "layers": "10"
+ },
+ "def|left-def": {
+ "tag": "def",
+ "layers": "10"
+ },
+ "def|right-def": {
+ "tag": "def",
+ "layers": "5"
+ }
+ }
+}
diff --git a/spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/thumbs/clothes-thumb_sh_mj_red_heart_semicolonshirt.png b/spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/thumbs/clothes-thumb_sh_mj_red_heart_semicolonshirt.png
similarity index 100%
rename from spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/thumbs/clothes-thumb_sh_mj_red_heart_semicolonshirt.png
rename to spritepacks/Semicolon Project Pack/Red Heart Semicolon T-shirt/game/mod_assets/thumbs/clothes-thumb_sh_mj_red_heart_semicolonshirt.png
diff --git a/spritepacks/Semicolon pack/Semicolon earrings/characters/semicolonearrings.gift b/spritepacks/Semicolon Project Pack/Semicolon Earrings/characters/semicolonearrings.gift
similarity index 100%
rename from spritepacks/Semicolon pack/Semicolon earrings/characters/semicolonearrings.gift
rename to spritepacks/Semicolon Project Pack/Semicolon Earrings/characters/semicolonearrings.gift
diff --git a/spritepacks/Semicolon pack/Semicolon earrings/game/mod_assets/monika/a/acs-otter_semicolon_earrings-0.png b/spritepacks/Semicolon Project Pack/Semicolon Earrings/game/mod_assets/monika/a/acs-otter_semicolon_earrings-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Semicolon earrings/game/mod_assets/monika/a/acs-otter_semicolon_earrings-0.png
rename to spritepacks/Semicolon Project Pack/Semicolon Earrings/game/mod_assets/monika/a/acs-otter_semicolon_earrings-0.png
diff --git a/spritepacks/Semicolon pack/Semicolon earrings/game/mod_assets/monika/a/acs-otter_semicolon_earrings-5.png b/spritepacks/Semicolon Project Pack/Semicolon Earrings/game/mod_assets/monika/a/acs-otter_semicolon_earrings-5.png
similarity index 100%
rename from spritepacks/Semicolon pack/Semicolon earrings/game/mod_assets/monika/a/acs-otter_semicolon_earrings-5.png
rename to spritepacks/Semicolon Project Pack/Semicolon Earrings/game/mod_assets/monika/a/acs-otter_semicolon_earrings-5.png
diff --git a/spritepacks/Semicolon Project Pack/Semicolon Earrings/game/mod_assets/monika/j/acs_otter_semicolon_earrings.json b/spritepacks/Semicolon Project Pack/Semicolon Earrings/game/mod_assets/monika/j/acs_otter_semicolon_earrings.json
new file mode 100644
index 0000000..684937e
--- /dev/null
+++ b/spritepacks/Semicolon Project Pack/Semicolon Earrings/game/mod_assets/monika/j/acs_otter_semicolon_earrings.json
@@ -0,0 +1,28 @@
+{
+ "__author": "MAS Self Harm Submod Team // otter",
+ "version": 3,
+ "type": 0,
+ "name": "otter_semicolon_earrings",
+ "img_sit": "otter_semicolon_earrings",
+ "pose_map": {
+ "default": "0",
+ "l_default": "5"
+ },
+ "rec_layer": 10,
+ "acs_type": "earrings",
+ "mux_type": [
+ "earrings"
+ ],
+ "stay_on_start": true,
+ "giftname": "semicolonearrings",
+ "dlg_desc": "semicolon earrings and piercings",
+ "dlg_plural": true,
+ "select_info": {
+ "display_name": "Semicolon earrings/piercings",
+ "thumb": "otter_semicolon_earrings",
+ "group": "earrings",
+ "select_dlg": [
+ "All warriors have scars."
+ ]
+ }
+}
diff --git a/spritepacks/Semicolon pack/Semicolon earrings/game/mod_assets/thumbs/acs-otter_semicolon_earrings.png b/spritepacks/Semicolon Project Pack/Semicolon Earrings/game/mod_assets/thumbs/acs-otter_semicolon_earrings.png
similarity index 100%
rename from spritepacks/Semicolon pack/Semicolon earrings/game/mod_assets/thumbs/acs-otter_semicolon_earrings.png
rename to spritepacks/Semicolon Project Pack/Semicolon Earrings/game/mod_assets/thumbs/acs-otter_semicolon_earrings.png
diff --git a/spritepacks/Semicolon pack/Semicolon t-shirt/characters/sh_semicolonshirt.gift b/spritepacks/Semicolon Project Pack/Semicolon T-shirt/characters/sh_semicolonshirt.gift
similarity index 100%
rename from spritepacks/Semicolon pack/Semicolon t-shirt/characters/sh_semicolonshirt.gift
rename to spritepacks/Semicolon Project Pack/Semicolon T-shirt/characters/sh_semicolonshirt.gift
diff --git a/spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-crossed-5.png b/spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-crossed-5.png
similarity index 100%
rename from spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-crossed-5.png
rename to spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-crossed-5.png
diff --git a/spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-leaning-def-left-def-10.png b/spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-leaning-def-left-def-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-leaning-def-left-def-10.png
rename to spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-leaning-def-left-def-10.png
diff --git a/spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-leaning-def-right-def-5.png b/spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-leaning-def-right-def-5.png
similarity index 100%
rename from spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-leaning-def-right-def-5.png
rename to spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-leaning-def-right-def-5.png
diff --git a/spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-left-down-0.png b/spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-left-down-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-left-down-0.png
rename to spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-left-down-0.png
diff --git a/spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-left-rest-10.png b/spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-left-rest-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-left-rest-10.png
rename to spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-left-rest-10.png
diff --git a/spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-right-down-0.png b/spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-right-down-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-right-down-0.png
rename to spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-right-down-0.png
diff --git a/spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-right-point-0.png b/spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-right-point-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-right-point-0.png
rename to spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-right-point-0.png
diff --git a/spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-right-restpoint-10.png b/spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-right-restpoint-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-right-restpoint-10.png
rename to spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-right-restpoint-10.png
diff --git a/spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-steepling-10.png b/spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-steepling-10.png
similarity index 100%
rename from spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-steepling-10.png
rename to spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/arms-steepling-10.png
diff --git a/spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/body-def-0.png b/spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/body-def-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/body-def-0.png
rename to spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/body-def-0.png
diff --git a/spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/body-def-1.png b/spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/body-def-1.png
similarity index 100%
rename from spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/body-def-1.png
rename to spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/body-def-1.png
diff --git a/spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/body-leaning-def-0.png b/spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/body-leaning-def-0.png
similarity index 100%
rename from spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/body-leaning-def-0.png
rename to spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/body-leaning-def-0.png
diff --git a/spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/body-leaning-def-1.png b/spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/body-leaning-def-1.png
similarity index 100%
rename from spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/body-leaning-def-1.png
rename to spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/c/sh_mj_semicolonshirt/body-leaning-def-1.png
diff --git a/spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/j/sh_mj_semicolonshirt.json b/spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/j/sh_mj_semicolonshirt.json
new file mode 100644
index 0000000..2c1a2d0
--- /dev/null
+++ b/spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/monika/j/sh_mj_semicolonshirt.json
@@ -0,0 +1,67 @@
+{
+ "__author": "MAS Self Harm Submod Team // MayJay",
+ "version": 3,
+ "type": 2,
+ "name": "sh_mj_semicolonshirt",
+ "img_sit": "sh_mj_semicolonshirt",
+ "pose_map": {
+ "mpm_type": 0,
+ "default": false,
+ "use_reg_for_l": true,
+ "p1": true,
+ "p2": true,
+ "p3": true,
+ "p4": true,
+ "p5": true,
+ "p6": true,
+ "p7": true
+ },
+ "stay_on_start": true,
+ "select_info": {
+ "display_name": "Semi Colon T-Shirt",
+ "thumb": "thumb_sh_mj_semicolonshirt",
+ "group": "clothes",
+ "select_dlg": [
+ "Your story isn't over yet, [player]!"
+ ]
+ },
+ "giftname": "sh_semicolonshirt",
+ "pose_arms": {
+ "crossed": {
+ "tag": "crossed",
+ "layers": "5"
+ },
+ "left-down": {
+ "tag": "down",
+ "layers": "0"
+ },
+ "left-rest": {
+ "tag": "rest",
+ "layers": "10"
+ },
+ "right-down": {
+ "tag": "down",
+ "layers": "0"
+ },
+ "right-point": {
+ "tag": "point",
+ "layers": "0"
+ },
+ "right-restpoint": {
+ "tag": "restpoint",
+ "layers": "10"
+ },
+ "steepling": {
+ "tag": "steepling",
+ "layers": "10"
+ },
+ "def|left-def": {
+ "tag": "def",
+ "layers": "10"
+ },
+ "def|right-def": {
+ "tag": "def",
+ "layers": "5"
+ }
+ }
+}
diff --git a/spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/thumbs/clothes-thumb_sh_mj_semicolonshirt.png b/spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/thumbs/clothes-thumb_sh_mj_semicolonshirt.png
similarity index 100%
rename from spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/thumbs/clothes-thumb_sh_mj_semicolonshirt.png
rename to spritepacks/Semicolon Project Pack/Semicolon T-shirt/game/mod_assets/thumbs/clothes-thumb_sh_mj_semicolonshirt.png
diff --git a/spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/j/sh_mj_heart_semicolonhoodie.json b/spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/j/sh_mj_heart_semicolonhoodie.json
deleted file mode 100644
index 17375d3..0000000
--- a/spritepacks/Semicolon pack/Heart semicolon hoodie/game/mod_assets/monika/j/sh_mj_heart_semicolonhoodie.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "__author": "MAS SH submod team // MayJay",
- "version": 3,
- "type": 2,
- "name": "sh_mj_heart_semicolonhoodie",
- "img_sit": "sh_mj_heart_semicolonhoodie",
- "pose_map": {
- "mpm_type": 0,
- "default": false,
- "use_reg_for_l": true,
- "p1": true,
- "p2": true,
- "p3": true,
- "p4": true,
- "p5": true,
- "p6": true,
- "p7": true
- },
- "stay_on_start": true,
- "select_info": {
- "display_name": "Heart Semi Colon Hoodie",
- "thumb": "thumb_sh_mj_heart_semicolonhoodie",
- "group": "clothes",
- "select_dlg": [
- "Your story isn't over yet, [player]!"
- ]
- },
- "giftname": "sh_heartsemicolonhoodie",
- "pose_arms": {
- "crossed": {
- "tag": "crossed",
- "layers": "5"
- },
- "left-down": {
- "tag": "down",
- "layers": "0"
- },
- "left-rest": {
- "tag": "rest",
- "layers": "10"
- },
- "right-down": {
- "tag": "down",
- "layers": "0"
- },
- "right-point": {
- "tag": "point",
- "layers": "0"
- },
- "right-restpoint": {
- "tag": "restpoint",
- "layers": "10"
- },
- "steepling": {
- "tag": "steepling",
- "layers": "10"
- },
- "def|left-def": {
- "tag": "def",
- "layers": "10"
- },
- "def|right-def": {
- "tag": "def",
- "layers": "5^10"
- }
- }
-}
diff --git a/spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/j/sh_mj_longsleeved_heart_semicolonshirt.json b/spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/j/sh_mj_longsleeved_heart_semicolonshirt.json
deleted file mode 100644
index adf056f..0000000
--- a/spritepacks/Semicolon pack/Heart semicolon long sleeved shirt/game/mod_assets/monika/j/sh_mj_longsleeved_heart_semicolonshirt.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "__author": "MAS SH submod team // MayJay",
- "version": 3,
- "type": 2,
- "name": "sh_mj_longsleeved_heart_semicolonshirt",
- "img_sit": "sh_mj_longsleeved_heart_semicolonshirt",
- "pose_map": {
- "mpm_type": 0,
- "default": false,
- "use_reg_for_l": true,
- "p1": true,
- "p2": true,
- "p3": true,
- "p4": true,
- "p5": true,
- "p6": true,
- "p7": true
- },
- "stay_on_start": true,
- "select_info": {
- "display_name": "Long Sleeved Heart Semi Colon Shirt",
- "thumb": "thumb_sh_mj_longsleeved_heart_semicolonshirt",
- "group": "clothes",
- "select_dlg": [
- "Your story isn't over yet, [player]!"
- ]
- },
- "giftname": "sh_longsleevedheartsemicolonshirt",
- "pose_arms": {
- "crossed": {
- "tag": "crossed",
- "layers": "5"
- },
- "left-down": {
- "tag": "down",
- "layers": "0"
- },
- "left-rest": {
- "tag": "rest",
- "layers": "10"
- },
- "right-down": {
- "tag": "down",
- "layers": "0"
- },
- "right-point": {
- "tag": "point",
- "layers": "0"
- },
- "right-restpoint": {
- "tag": "restpoint",
- "layers": "10"
- },
- "steepling": {
- "tag": "steepling",
- "layers": "10"
- },
- "def|left-def": {
- "tag": "def",
- "layers": "10"
- },
- "def|right-def": {
- "tag": "def",
- "layers": "5^10"
- }
- }
-}
diff --git a/spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/j/sh_mj_heart_semicolonshirt.json b/spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/j/sh_mj_heart_semicolonshirt.json
deleted file mode 100644
index 1fc8af9..0000000
--- a/spritepacks/Semicolon pack/Heart semicolon t-shirt/game/mod_assets/monika/j/sh_mj_heart_semicolonshirt.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "__author": "MAS SH submod team // MayJay",
- "version": 3,
- "type": 2,
- "name": "sh_mj_heart_semicolonshirt",
- "img_sit": "sh_mj_heart_semicolonshirt",
- "pose_map": {
- "mpm_type": 0,
- "default": false,
- "use_reg_for_l": true,
- "p1": true,
- "p2": true,
- "p3": true,
- "p4": true,
- "p5": true,
- "p6": true,
- "p7": true
- },
- "stay_on_start": true,
- "select_info": {
- "display_name": "Heart Semi Colon T-Shirt",
- "thumb": "thumb_sh_mj_heart_semicolonshirt",
- "group": "clothes",
- "select_dlg": [
- "Your story isn't over yet, [player]!"
- ]
- },
- "giftname": "sh_heartsemicolonshirt",
- "pose_arms": {
- "crossed": {
- "tag": "crossed",
- "layers": "5"
- },
- "left-down": {
- "tag": "down",
- "layers": "0"
- },
- "left-rest": {
- "tag": "rest",
- "layers": "10"
- },
- "right-down": {
- "tag": "down",
- "layers": "0"
- },
- "right-point": {
- "tag": "point",
- "layers": "0"
- },
- "right-restpoint": {
- "tag": "restpoint",
- "layers": "10"
- },
- "steepling": {
- "tag": "steepling",
- "layers": "10"
- },
- "def|left-def": {
- "tag": "def",
- "layers": "10"
- },
- "def|right-def": {
- "tag": "def",
- "layers": "5"
- }
- }
-}
diff --git a/spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/j/sh_mj_red_heart_semicolonshirt.json b/spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/j/sh_mj_red_heart_semicolonshirt.json
deleted file mode 100644
index 94ee854..0000000
--- a/spritepacks/Semicolon pack/Red heart semicolon t-shirt/game/mod_assets/monika/j/sh_mj_red_heart_semicolonshirt.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "__author": "MAS SH submod team // MayJay",
- "version": 3,
- "type": 2,
- "name": "sh_mj_red_heart_semicolonshirt",
- "img_sit": "sh_mj_red_heart_semicolonshirt",
- "pose_map": {
- "mpm_type": 0,
- "default": false,
- "use_reg_for_l": true,
- "p1": true,
- "p2": true,
- "p3": true,
- "p4": true,
- "p5": true,
- "p6": true,
- "p7": true
- },
- "stay_on_start": true,
- "select_info": {
- "display_name": "Red Heart Semi Colon T-Shirt",
- "thumb": "thumb_sh_mj_red_heart_semicolonshirt",
- "group": "clothes",
- "select_dlg": [
- "Your story isn't over yet, [player]!"
- ]
- },
- "giftname": "sh_redheartsemicolonshirt",
- "pose_arms": {
- "crossed": {
- "tag": "crossed",
- "layers": "5"
- },
- "left-down": {
- "tag": "down",
- "layers": "0"
- },
- "left-rest": {
- "tag": "rest",
- "layers": "10"
- },
- "right-down": {
- "tag": "down",
- "layers": "0"
- },
- "right-point": {
- "tag": "point",
- "layers": "0"
- },
- "right-restpoint": {
- "tag": "restpoint",
- "layers": "10"
- },
- "steepling": {
- "tag": "steepling",
- "layers": "10"
- },
- "def|left-def": {
- "tag": "def",
- "layers": "10"
- },
- "def|right-def": {
- "tag": "def",
- "layers": "5"
- }
- }
-}
diff --git a/spritepacks/Semicolon pack/Semicolon earrings/game/mod_assets/monika/j/acs_otter_semicolon_earrings.json b/spritepacks/Semicolon pack/Semicolon earrings/game/mod_assets/monika/j/acs_otter_semicolon_earrings.json
deleted file mode 100644
index f0216b8..0000000
--- a/spritepacks/Semicolon pack/Semicolon earrings/game/mod_assets/monika/j/acs_otter_semicolon_earrings.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "__author": "otter",
- "version": 3,
- "type": 0,
- "name": "otter_semicolon_earrings",
- "img_sit": "otter_semicolon_earrings",
- "pose_map": {
- "default": "0",
- "l_default": "5"
- },
- "rec_layer": 10,
- "acs_type": "earrings",
- "mux_type": [
- "earrings"
- ],
- "stay_on_start": true,
- "giftname": "semicolonearrings",
- "dlg_desc": "semicolon earrings and piercings",
- "dlg_plural": true,
- "select_info": {
- "display_name": "Semicolon earrings/piercings",
- "thumb": "otter_semicolon_earrings",
- "group": "earrings",
- "select_dlg": [
- "All warriors have scars."
- ]
- }
-}
diff --git a/spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/j/sh_mj_semicolonshirt.json b/spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/j/sh_mj_semicolonshirt.json
deleted file mode 100644
index f2bddc4..0000000
--- a/spritepacks/Semicolon pack/Semicolon t-shirt/game/mod_assets/monika/j/sh_mj_semicolonshirt.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "__author": "MAS SH submod team // MayJay",
- "version": 3,
- "type": 2,
- "name": "sh_mj_semicolonshirt",
- "img_sit": "sh_mj_semicolonshirt",
- "pose_map": {
- "mpm_type": 0,
- "default": false,
- "use_reg_for_l": true,
- "p1": true,
- "p2": true,
- "p3": true,
- "p4": true,
- "p5": true,
- "p6": true,
- "p7": true
- },
- "stay_on_start": true,
- "select_info": {
- "display_name": "Semi Colon T-Shirt",
- "thumb": "thumb_sh_mj_semicolonshirt",
- "group": "clothes",
- "select_dlg": [
- "Your story isn't over yet, [player]!"
- ]
- },
- "giftname": "sh_semicolonshirt",
- "pose_arms": {
- "crossed": {
- "tag": "crossed",
- "layers": "5"
- },
- "left-down": {
- "tag": "down",
- "layers": "0"
- },
- "left-rest": {
- "tag": "rest",
- "layers": "10"
- },
- "right-down": {
- "tag": "down",
- "layers": "0"
- },
- "right-point": {
- "tag": "point",
- "layers": "0"
- },
- "right-restpoint": {
- "tag": "restpoint",
- "layers": "10"
- },
- "steepling": {
- "tag": "steepling",
- "layers": "10"
- },
- "def|left-def": {
- "tag": "def",
- "layers": "10"
- },
- "def|right-def": {
- "tag": "def",
- "layers": "5"
- }
- }
-}
diff --git a/spritepacks/Sunflower pack/Sunflower earrings/characters/sh_sunflowerearrings.gift b/spritepacks/Sunflower Pack/Earrings/characters/sh_sunflowerearrings.gift
similarity index 100%
rename from spritepacks/Sunflower pack/Sunflower earrings/characters/sh_sunflowerearrings.gift
rename to spritepacks/Sunflower Pack/Earrings/characters/sh_sunflowerearrings.gift
diff --git a/spritepacks/Sunflower pack/Sunflower earrings/game/mod_assets/monika/a/acs-sh_fell_sunflower_earrings-0.png b/spritepacks/Sunflower Pack/Earrings/game/mod_assets/monika/a/acs-sh_fell_sunflower_earrings-0.png
similarity index 100%
rename from spritepacks/Sunflower pack/Sunflower earrings/game/mod_assets/monika/a/acs-sh_fell_sunflower_earrings-0.png
rename to spritepacks/Sunflower Pack/Earrings/game/mod_assets/monika/a/acs-sh_fell_sunflower_earrings-0.png
diff --git a/spritepacks/Sunflower pack/Sunflower earrings/game/mod_assets/monika/a/acs-sh_fell_sunflower_earrings-5.png b/spritepacks/Sunflower Pack/Earrings/game/mod_assets/monika/a/acs-sh_fell_sunflower_earrings-5.png
similarity index 100%
rename from spritepacks/Sunflower pack/Sunflower earrings/game/mod_assets/monika/a/acs-sh_fell_sunflower_earrings-5.png
rename to spritepacks/Sunflower Pack/Earrings/game/mod_assets/monika/a/acs-sh_fell_sunflower_earrings-5.png
diff --git a/spritepacks/Sunflower Pack/Earrings/game/mod_assets/monika/j/sh_acs_fell_and_otter_sunflower_earrings.json b/spritepacks/Sunflower Pack/Earrings/game/mod_assets/monika/j/sh_acs_fell_and_otter_sunflower_earrings.json
new file mode 100644
index 0000000..6965197
--- /dev/null
+++ b/spritepacks/Sunflower Pack/Earrings/game/mod_assets/monika/j/sh_acs_fell_and_otter_sunflower_earrings.json
@@ -0,0 +1,28 @@
+{
+ "__author": "MAS Self Harm Submod Team // fell and otter",
+ "version": 3,
+ "type": 0,
+ "name": "sh_acs_fell_and_otter_sunflower_earrings",
+ "img_sit": "sh_fell_sunflower_earrings",
+ "pose_map": {
+ "default": "0",
+ "l_default": "5"
+ },
+ "rec_layer": 10,
+ "acs_type": "earrings",
+ "mux_type": [
+ "earrings"
+ ],
+ "stay_on_start": true,
+ "giftname": "sh_sunflowerearrings",
+ "dlg_desc": "sunflower earrings",
+ "dlg_plural": true,
+ "select_info": {
+ "display_name": "Sunflower earrings",
+ "thumb": "sh_sunflower_earrings",
+ "group": "earrings",
+ "select_dlg": [
+ "Be like a flower and turn your face to the sun!"
+ ]
+ }
+}
diff --git a/spritepacks/Sunflower pack/Sunflower earrings/game/mod_assets/thumbs/acs-sh_sunflower_earrings.png b/spritepacks/Sunflower Pack/Earrings/game/mod_assets/thumbs/acs-sh_sunflower_earrings.png
similarity index 100%
rename from spritepacks/Sunflower pack/Sunflower earrings/game/mod_assets/thumbs/acs-sh_sunflower_earrings.png
rename to spritepacks/Sunflower Pack/Earrings/game/mod_assets/thumbs/acs-sh_sunflower_earrings.png
diff --git a/spritepacks/Sunflower pack/Hair Sunflower/characters/hairsunflower.gift b/spritepacks/Sunflower Pack/Hairclip/characters/hairsunflower.gift
similarity index 100%
rename from spritepacks/Sunflower pack/Hair Sunflower/characters/hairsunflower.gift
rename to spritepacks/Sunflower Pack/Hairclip/characters/hairsunflower.gift
diff --git a/spritepacks/Sunflower pack/Hair Sunflower/game/mod_assets/monika/a/acs-hair_sunflower-0.png b/spritepacks/Sunflower Pack/Hairclip/game/mod_assets/monika/a/acs-hair_sunflower-0.png
similarity index 100%
rename from spritepacks/Sunflower pack/Hair Sunflower/game/mod_assets/monika/a/acs-hair_sunflower-0.png
rename to spritepacks/Sunflower Pack/Hairclip/game/mod_assets/monika/a/acs-hair_sunflower-0.png
diff --git a/spritepacks/Sunflower pack/Hair Sunflower/game/mod_assets/monika/a/acs-hair_sunflower-5.png b/spritepacks/Sunflower Pack/Hairclip/game/mod_assets/monika/a/acs-hair_sunflower-5.png
similarity index 100%
rename from spritepacks/Sunflower pack/Hair Sunflower/game/mod_assets/monika/a/acs-hair_sunflower-5.png
rename to spritepacks/Sunflower Pack/Hairclip/game/mod_assets/monika/a/acs-hair_sunflower-5.png
diff --git a/spritepacks/Sunflower Pack/Hairclip/game/mod_assets/monika/j/acs_otter_and_mayjay_hair_sunflower.json b/spritepacks/Sunflower Pack/Hairclip/game/mod_assets/monika/j/acs_otter_and_mayjay_hair_sunflower.json
new file mode 100644
index 0000000..ff786b9
--- /dev/null
+++ b/spritepacks/Sunflower Pack/Hairclip/game/mod_assets/monika/j/acs_otter_and_mayjay_hair_sunflower.json
@@ -0,0 +1,30 @@
+{
+ "__author": "MAS Self Harm Submod Team // otter and mayjay",
+ "version": 3,
+ "type": 0,
+ "name": "otter_and_mayjay_hair_sunflower",
+ "img_sit": "hair_sunflower",
+ "pose_map": {
+ "default": "0",
+ "l_default": "5"
+ },
+ "stay_on_start": true,
+ "rec_layer": 1,
+ "priority": 20,
+ "acs_type": "left-hair-flower",
+ "mux_type": [
+ "left-hair-flower"
+ ],
+ "ex_props": {
+ "left-hair-strand-eye-level": false
+ },
+ "select_info": {
+ "display_name": "Sunflower",
+ "thumb": "hair_sunflower",
+ "group": "left-hair-flower",
+ "select_dlg": [
+ "Despite knowing they won't be here for long, they still choose to live their brightest lives — sunflowers."
+ ]
+ },
+ "giftname": "hairsunflower"
+}
diff --git a/spritepacks/Sunflower pack/Hair Sunflower/game/mod_assets/thumbs/acs-hair_sunflower.png b/spritepacks/Sunflower Pack/Hairclip/game/mod_assets/thumbs/acs-hair_sunflower.png
similarity index 100%
rename from spritepacks/Sunflower pack/Hair Sunflower/game/mod_assets/thumbs/acs-hair_sunflower.png
rename to spritepacks/Sunflower Pack/Hairclip/game/mod_assets/thumbs/acs-hair_sunflower.png
diff --git a/spritepacks/Sunflower pack/Sunflower necklace/characters/sh_sunflowernecklace.gift b/spritepacks/Sunflower Pack/Necklace/characters/sh_sunflowernecklace.gift
similarity index 100%
rename from spritepacks/Sunflower pack/Sunflower necklace/characters/sh_sunflowernecklace.gift
rename to spritepacks/Sunflower Pack/Necklace/characters/sh_sunflowernecklace.gift
diff --git a/spritepacks/Sunflower pack/Sunflower necklace/game/mod_assets/monika/a/acs-sh_fell_sunflower_necklace-0-0.png b/spritepacks/Sunflower Pack/Necklace/game/mod_assets/monika/a/acs-sh_fell_sunflower_necklace-0-0.png
similarity index 100%
rename from spritepacks/Sunflower pack/Sunflower necklace/game/mod_assets/monika/a/acs-sh_fell_sunflower_necklace-0-0.png
rename to spritepacks/Sunflower Pack/Necklace/game/mod_assets/monika/a/acs-sh_fell_sunflower_necklace-0-0.png
diff --git a/spritepacks/Sunflower pack/Sunflower necklace/game/mod_assets/monika/a/acs-sh_fell_sunflower_necklace-5-0.png b/spritepacks/Sunflower Pack/Necklace/game/mod_assets/monika/a/acs-sh_fell_sunflower_necklace-5-0.png
similarity index 100%
rename from spritepacks/Sunflower pack/Sunflower necklace/game/mod_assets/monika/a/acs-sh_fell_sunflower_necklace-5-0.png
rename to spritepacks/Sunflower Pack/Necklace/game/mod_assets/monika/a/acs-sh_fell_sunflower_necklace-5-0.png
diff --git a/spritepacks/Sunflower Pack/Necklace/game/mod_assets/monika/j/sh_acs_fell_and_otter_sunflower_necklace.json b/spritepacks/Sunflower Pack/Necklace/game/mod_assets/monika/j/sh_acs_fell_and_otter_sunflower_necklace.json
new file mode 100644
index 0000000..4281d5a
--- /dev/null
+++ b/spritepacks/Sunflower Pack/Necklace/game/mod_assets/monika/j/sh_acs_fell_and_otter_sunflower_necklace.json
@@ -0,0 +1,30 @@
+{
+ "__author": "MAS Self Harm Submod Team // fell and otter",
+ "version": 3,
+ "type": 0,
+ "name": "sh_acs_fell_and_otter_sunflower_necklace",
+ "img_sit": "sh_fell_sunflower_necklace",
+ "pose_map": {
+ "default": "0",
+ "l_default": "5"
+ },
+ "rec_layer": 8,
+ "acs_type": "necklace",
+ "stay_on_start": true,
+ "priority": 8,
+ "dlg_desc": "necklace",
+ "dlg_plural": false,
+ "select_info": {
+ "display_name": "Sunflower Necklace",
+ "thumb": "sh_sunflower_necklace",
+ "group": "necklace",
+ "select_dlg": [
+ "You're my sunflower, [player]!"
+ ]
+ },
+ "giftname": "sh_sunflowernecklace",
+ "arm_split": {
+ "default": "0",
+ "use_reg_for_l": true
+ }
+}
diff --git a/spritepacks/Sunflower pack/Sunflower necklace/game/mod_assets/thumbs/acs-sh_sunflower_necklace.png b/spritepacks/Sunflower Pack/Necklace/game/mod_assets/thumbs/acs-sh_sunflower_necklace.png
similarity index 100%
rename from spritepacks/Sunflower pack/Sunflower necklace/game/mod_assets/thumbs/acs-sh_sunflower_necklace.png
rename to spritepacks/Sunflower Pack/Necklace/game/mod_assets/thumbs/acs-sh_sunflower_necklace.png
diff --git a/spritepacks/Sunflower pack/Hair Sunflower/game/mod_assets/monika/j/acs_otter_and_mayjay_hair_sunflower.json b/spritepacks/Sunflower pack/Hair Sunflower/game/mod_assets/monika/j/acs_otter_and_mayjay_hair_sunflower.json
deleted file mode 100644
index 3ea17b6..0000000
--- a/spritepacks/Sunflower pack/Hair Sunflower/game/mod_assets/monika/j/acs_otter_and_mayjay_hair_sunflower.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "__author": "otter and mayjay",
- "version": 3,
- "type": 0,
- "name": "otter_and_mayjay_hair_sunflower",
- "img_sit": "hair_sunflower",
- "pose_map": {
- "default": "0",
- "l_default": "5"
- },
- "stay_on_start": true,
- "rec_layer": 1,
- "priority": 20,
- "acs_type": "left-hair-flower",
- "mux_type": [
- "left-hair-flower"
- ],
- "ex_props": {
- "left-hair-strand-eye-level": false
- },
- "select_info": {
- "display_name": "Sunflower",
- "thumb": "hair_sunflower",
- "group": "left-hair-flower",
- "select_dlg": [
- "Despite knowing they won’t be here for long, they still choose to live their brightest lives — sunflowers."
- ]
- },
- "giftname": "hairsunflower"
-}
diff --git a/spritepacks/Sunflower pack/Sunflower earrings/game/mod_assets/monika/j/sh_acs_fell_and_otter_sunflower_earrings.json b/spritepacks/Sunflower pack/Sunflower earrings/game/mod_assets/monika/j/sh_acs_fell_and_otter_sunflower_earrings.json
deleted file mode 100644
index 1b6dfb9..0000000
--- a/spritepacks/Sunflower pack/Sunflower earrings/game/mod_assets/monika/j/sh_acs_fell_and_otter_sunflower_earrings.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "__author": "MAS SH submod team // fell and otter",
- "version": 3,
- "type": 0,
- "name": "sh_acs_fell_and_otter_sunflower_earrings",
- "img_sit": "sh_fell_sunflower_earrings",
- "pose_map": {
- "default": "0",
- "l_default": "5"
- },
- "rec_layer": 10,
- "acs_type": "earrings",
- "mux_type": [
- "earrings"
- ],
- "stay_on_start": true,
- "giftname": "sh_sunflowerearrings",
- "dlg_desc": "sunflower earrings",
- "dlg_plural": true,
- "select_info": {
- "display_name": "Sunflower earrings",
- "thumb": "sh_sunflower_earrings",
- "group": "earrings",
- "select_dlg": [
- "Be like a flower and turn your face to the sun!"
- ]
- }
-}
diff --git a/spritepacks/Sunflower pack/Sunflower necklace/game/mod_assets/monika/j/sh_acs_fell_and_otter_sunflower_necklace.json b/spritepacks/Sunflower pack/Sunflower necklace/game/mod_assets/monika/j/sh_acs_fell_and_otter_sunflower_necklace.json
deleted file mode 100644
index 8769b06..0000000
--- a/spritepacks/Sunflower pack/Sunflower necklace/game/mod_assets/monika/j/sh_acs_fell_and_otter_sunflower_necklace.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "__author": "MAS SH submod team // fell and otter",
- "version": 3,
- "type": 0,
- "name": "sh_acs_fell_and_otter_sunflower_necklace",
- "img_sit": "sh_fell_sunflower_necklace",
- "pose_map": {
- "default": "0",
- "l_default": "5"
- },
- "rec_layer": 8,
- "acs_type": "necklace",
- "stay_on_start": true,
- "priority": 8,
- "dlg_desc": "necklace",
- "dlg_plural": false,
- "select_info": {
- "display_name": "Sunflower Necklace",
- "thumb": "sh_sunflower_necklace",
- "group": "necklace",
- "select_dlg": [
- "You're my sunflower, [player]!"
- ]
- },
- "giftname": "sh_sunflowernecklace",
- "arm_split": {
- "default": "0",
- "use_reg_for_l": true
- }
-}