Mod Ren'Py Hard to Love [S1 v0.0.42 & S2 v0.062] Multi-Mod [Sancho1969]

5.00 star(s) 2 Votes

Sancho1969

Devoted Member
Modder
Donor
Jan 19, 2020
11,908
44,741
I'm pre-ported (I hope) but I'm going to take a 30min break to calm down a bit. I need to be objective toward all these changes instead of massively disgruntled as I am at the moment. I really want this young lady to succeed with this product but holy shit... some of these alteration decisions make zero fucking sense and only hamper or deter the Player's experience which is the opposite of the goal (or should be).
 
Dec 15, 2020
195
149
View attachment 1738594

Overview:
In-game mod for Hard to Love
Multi-mod adds support for save descriptions, choice guide, custom stat screens, custom scene gallery, custom settings, custom fonts and more.

As always if you like the game please show your support for the Developer whose respective links are found below.

*** The latest SanchoMod Core v7b ***
Massive overhaul of core mod with 1,000's of cumulative hours in development

Note: the "patch" is built-in and even toggle-enabled, no need to install it separately.

Updated: 07-22-2023
Game/Creator: Hard to Love / Qori Gaming /
Modder: Sancho1969 F95
Mod Version: S1 v0.042 / S2 v0.0.61
Game Version: S1 v0.042 / S2 v0.0.61
Language: English

Features:
  • Improved aesthetics with animated mod menus/screens, all fully customizable to tailor your personal experience.
  • Too many story branches got you down 'cause you can't remember which of your saves is which? I gotcha covered. Includes the Original SanchoMod save description feature. Often imitated (including the use of my GUI buttons) the SanchoSave is more intelligent and efficient, saving you keystrokes as it autoloads the save slot descriptions and it also allows you to completely escape the process of saving if you wish (I've personally not seen this feature with other imitations). Feature can be toggled on/off anytime as desired.
  • Adds multiple exhaustive stats screens always accessible via the MiniMenu or Options menu. Resizable, toggle-enabled, various formats, and more.
  • Adds in-game walkthrough (ChoiceGuide) noting all variable changes and highlighting important choices. Can be toggled on/off at anytime, play as YOU want to play. You are not forced to view spoilers if you do not wish.
  • Multiple opacity and text sizing options to customize your experience including dialogue boxes, text and fonts, QuickMenu sizing and format versions, and more. All can be toggled on/off as desired, again allowing you even more control to tailor your experience.
  • Adds a custom fully unlocked scene gallery (SanchoGallery) that runs completely independent.
  • Adds professionally coded custom cheats (SanchoCheats) if applicable (varies from port to port).
  • Adds the ability to view multiple scenes (SanchoSplits) if menu choice has a scene/route split.
  • Adds toggled custom iPatch
  • Too many new features to list.
You don't have permission to view the spoiler content. Log in or register now.
You don't have permission to view the spoiler content. Log in or register now.

Installation:
You don't have permission to view the spoiler content. Log in or register now.
SaveFixer:
(Using SanchoModded saves in an unmodded game)
You don't have permission to view the spoiler content. Log in or register now.
Change-Log:
You don't have permission to view the spoiler content. Log in or register now.

Season 2 (Ep6 Part 1)
Compatible on v0.061
Current revision: 07/22/2023 16:35 CST
Download: -

Season 1 (Ep1-Ep4)
Compatible on both v0.041 and v0.0.42
Current revision: 05/18/2023 07:57 CST
Download: -

SanchoMod GUI/Features
View attachment 1880615 View attachment 1880616 View attachment 1880617 View attachment 1880618 View attachment 1880619
View attachment 1784514 View attachment 1784515 View attachment 1784516 View attachment 1784517 View attachment 1784518 View attachment 1738631
SplitScenes
View attachment 1738625 View attachment 1738626 View attachment 1738627
Toggled iPatch
View attachment 1738628 View attachment 1738629
Sancho's SongInfo
View attachment 1884773 View attachment 1884772
Mobile Friendly via JoiPlay (Coming Soon)
View attachment 1884774 View attachment 1884775
(Screenshot below explains the SanchoMod interface/features)
View attachment 1738605

If you enjoy my mods and guides, please consider smashing the "(y)like" to give me support. You won't see links or advertisements in any of my mods, all I ask is for your gratitude if you enjoy my work. Feel free to follow my profile where I post new mods, updates, and status of works-in-progress. If you find this particular mod beneficial and/or enjoyable, consider leaving a proper review and a "vote" so others might benefit from your personal experience. My personal thanks (as always) to the hardworking devs, compressors, and admins. Kindest regards and be well.
Sancho, don't hate us, a new version just came out, could you please update your mod?
 

Sancho1969

Devoted Member
Modder
Donor
Jan 19, 2020
11,908
44,741
I've recoded the "patch" of the mod to work with the new code, so that's done.

Populated the first scene in SanchoGallery:
1693940211545.png

Added the new songs to the SongInfo playlist:
1693940253968.png

I'm coming up on the very first menu choice. There's a new randomizer menu code that I'll have to deal with so I'm debating how to do that as the next obstacle to overcome.
 
  • Red Heart
Reactions: DragonNinja1979

Badboll

Well-Known Member
Aug 29, 2017
1,745
2,064
I'm pre-ported (I hope) but I'm going to take a 30min break to calm down a bit. I need to be objective toward all these changes instead of massively disgruntled as I am at the moment. I really want this young lady to succeed with this product but holy shit... some of these alteration decisions make zero fucking sense and only hamper or deter the Player's experience which is the opposite of the goal (or should be).
This seems to be a common thing with devs sadly, especially the mini game/free roam/rpgm devs, they always wanna make games as hard to play as possible for whatever reason. Always kill save files, move save file locations to annoy you and many other things. Not sure how these people expect people to want to give them money when they do stuff like that.
If they want to get funded while developing the game it's very important save files stay intact and if they don't, provide save files with the new download. I've lost count of the times I start up a game I've played before and when I go to load my save there is nothing there. I usually just quit instantly and note the game down, "don't touch until complete" unless the game is new and short. I am not a paying customer so I don't expect the devs to come here to help, but I do feel for the ones who are.
 
  • Like
Reactions: ash996

Sancho1969

Devoted Member
Modder
Donor
Jan 19, 2020
11,908
44,741
Had to get a bit creative in the dynamic ChoiceGuide right off the bat:
1693944469603.png
Then later:
1693944491526.png
(I've already changed "IsaRelp" to "IsaScore" to be correct)

Now I need to account for her "forgiveness" if applicable, but I'm over this particular hump. Onwards I go into the abyss...

Edit: If the Player really pissed off Isa in the previous update (IsaForgiveness):
1693945491126.png

It populates dynamically of course depending of all your previous choices as you'd expect.
 
Last edited:

gestved

Engaged Member
Aug 18, 2017
2,288
2,382
I don't really know much about coding, but those problems usually happen when a dev customize the ren'py UI/engine a lot but doesn't have a lot of knowledge using it, then he has to resort to things like blocking rollback or even skip text because the game breaks otherwise.
 

Sancho1969

Devoted Member
Modder
Donor
Jan 19, 2020
11,908
44,741
I don't really know much about coding, but those problems usually happen when a dev customize the ren'py UI/engine a lot but doesn't have a lot of knowledge using it, then he has to resort to things like blocking rollback or even skip text because the game breaks otherwise.
Nah, there's nothing in Ep5 that would break... I checked, even the "i-Patch" code is sound. I have no idea why it was done though. There's no rollback blocks in Ep6 (either the last update nor this new one). It truly boggles the mind as to why it was done tbh. I'd remove them via a cheat (allow them to be toggled) but I'm on the fence as it's just another thing I'll have to remember to do each pending update in the future... and the way things have been going with this VN I'm a bit gunshy to add more features than I already have (which is quite a few more than normal).

Dunno. It's a mystery for now.
 

Sancho1969

Devoted Member
Modder
Donor
Jan 19, 2020
11,908
44,741
Houston, we have a problem.

The dev has implemented 28 "random" style menu choices via code she obviously didn't create herself.
An example:
Python:
$ ep06_oilapply = random_menu(
    None, None, None,
    [
        (not ep06_oil_back, "Back", "ep06_ambernight_app_back"),
        (not ep06_oil_legs, "Legs", "ep06_ambernight_app_legs"),
        (not ep06_oil_feet, "Feet", "ep06_ambernight_app_feet"),
    ]
)
if ep06_rub == "ep06_ambernight_rub_back":
        jump ep06_ambernight_app_back
elif ep06_rub == "ep06_ambernight_rub_legs":
        jump ep06_ambernight_app_legs
elif ep06_rub == "ep06_ambernight_rub_feet":
        jump ep06_ambernight_app_feet
The problem is that SanchoMod's guide Python code is setup for standard RenPy context menu choices that call a specific language menu choice screen.
An example:
Python:
menu:
    "Lock the Door":
        mc_s "Okay, okay. Let's lock the door then."
        amb "I'm sure [mo_r] knows what we're up to anyway."
        mc_s "Yeah, but let's not make it obvious."
        pass
    "Leave and Avoid Awkwardness":
        mc_s "Uhm... I don't know, Amber... I can't."
        ...
This "random" function requests a list for it's input. SanchoMod's guide is a multi-function coded app on it's own, not a list. So, I have to figure out a way to recode these damn random menu choices. It's stupid really as that very first example could have simply be written the standard RenPy way such as:
Python:
menu:
    "Back" if not ep06_oil_back:
        jump ep06_ambernight_app_back
    "Legs" if not ep06_oil_legs:
        jump ep06_ambernight_app_legs
    "Feet" if not ep06_oil_feet:
        jump ep06_ambernight_app_feet
I can only assume she did this 'cause she either doesn't know that RenPy menu choices can work of conditionals (like my final example) or she just wanted to jumble the order of the choices up for no real apparent reason. I have no idea... but this a massive new delay I did not see coming from a mile away.

This won't be a quick fix... and I'm not about to recode all those damn menu choices and those in the future, fuck that. With the mod being created for the huge price of free I don't think I bank enough to waste that much time so I must think of a way via code to inject into that random menu function nonsense.

That function is exactly this for those who are code literate:
Python:
def random_menu(character=None, character_dialogue=None, prompt=None, options=[]):
    shuffled_options = list(options)
    renpy.random.shuffle(shuffled_options)
    menu_items = [
        (label, action)
        for condition, label, action in shuffled_options
        if condition
    ]
    if prompt is not None:
        menu_items.insert(0, (prompt, None))
    if character and character_dialogue:
        renpy.say(character, character_dialogue)
    return renpy.display_menu(menu_items)
Fuck my life... no, fuck this VN, my life is fine. But now I need another drink... :ROFLMAO:
 
Last edited:

SonsOfLiberty

Board Buff
Game Compressor
Sep 3, 2022
17,067
137,407
Houston, we have a problem.

The dev has implemented 28 "random" style menu choices via code she obviously didn't create herself.
An example:
Python:
$ ep06_oilapply = random_menu(
    None, None, None,
    [
        (not ep06_oil_back, "Back", "ep06_ambernight_app_back"),
        (not ep06_oil_legs, "Legs", "ep06_ambernight_app_legs"),
        (not ep06_oil_feet, "Feet", "ep06_ambernight_app_feet"),
    ]
)
The problem is that SanchoMod's guide Python code is setup for standard RenPy context menu choices that call a specific language menu choice screen.
An example:
Python:
menu:
    "Lock the Door":
        mc_s "Okay, okay. Let's lock the door then."
        amb "I'm sure [mo_r] knows what we're up to anyway."
        mc_s "Yeah, but let's not make it obvious."
        pass
    "Leave and Avoid Awkwardness":
        mc_s "Uhm... I don't know, Amber... I can't."
        ...
This "random" function requests a list for it's input. SanchoMod's guide is a multi-function coded app on it's own, not a list. So, I have to figure out a way to recode these damn random menu choices. It's stupid really as that very first example could have simply be written the standard RenPy way such as:
Python:
menu:
    "Back" if not ep06_oil_back:
        jump ep06_ambernight_app_back
    "Legs" if not ep06_oil_legs:
        jump ep06_ambernight_app_legs
    "Feet" if not ep06_oil_feet:
        jump ep06_ambernight_app_feet
I can only assume she did this 'cause she either doesn't know that RenPy menu choices can work of conditionals (like my final example) or she just wanted to jumble the order of the choices up for no real apparent reason. I have no idea... but this a massive new delay I did not see coming from a mile away.

This won't be a quick fix... and I'm not about to recode all those damn menu choices and those in the future, fuck that. With the mod being created for the huge price of free I don't think I bank enough to waste that much time so I must think of a way via code to inject into that random menu function nonsense.

That function is exactly this for those who are code literate:
Python:
def random_menu(character=None, character_dialogue=None, prompt=None, options=[]):
    shuffled_options = list(options)
    renpy.random.shuffle(shuffled_options)
    menu_items = [
        (label, action)
        for condition, label, action in shuffled_options
        if condition
    ]
    if prompt is not None:
        menu_items.insert(0, (prompt, None))
    if character and character_dialogue:
        renpy.say(character, character_dialogue)
    return renpy.display_menu(menu_items)
This seems like it happens with every new update, always something gets massively changed, and usually not a benefit to the people who play it/support it.
 

Sancho1969

Devoted Member
Modder
Donor
Jan 19, 2020
11,908
44,741
Indeed. I apologize for all the mini-rants. I truly want her to succeed but it so frustrating seeing things like this that cost her unknown gobs of wasted time not to mention my own. So, at the risk I've come across as a whiny little bitch understand why I'm so frustrated folks... and I'm no fucking bitch, Hoss. :ROFLMAO:
 

Sancho1969

Devoted Member
Modder
Donor
Jan 19, 2020
11,908
44,741
Houston, we have a problem.

The dev has implemented 28 "random" style menu choices via code she obviously didn't create herself.
An example:
Python:
$ ep06_oilapply = random_menu(
    None, None, None,
    [
        (not ep06_oil_back, "Back", "ep06_ambernight_app_back"),
        (not ep06_oil_legs, "Legs", "ep06_ambernight_app_legs"),
        (not ep06_oil_feet, "Feet", "ep06_ambernight_app_feet"),
    ]
)
if ep06_rub == "ep06_ambernight_rub_back":
        jump ep06_ambernight_app_back
elif ep06_rub == "ep06_ambernight_rub_legs":
        jump ep06_ambernight_app_legs
elif ep06_rub == "ep06_ambernight_rub_feet":
        jump ep06_ambernight_app_feet
The problem is that SanchoMod's guide Python code is setup for standard RenPy context menu choices that call a specific language menu choice screen.
An example:
Python:
menu:
    "Lock the Door":
        mc_s "Okay, okay. Let's lock the door then."
        amb "I'm sure [mo_r] knows what we're up to anyway."
        mc_s "Yeah, but let's not make it obvious."
        pass
    "Leave and Avoid Awkwardness":
        mc_s "Uhm... I don't know, Amber... I can't."
        ...
This "random" function requests a list for it's input. SanchoMod's guide is a multi-function coded app on it's own, not a list. So, I have to figure out a way to recode these damn random menu choices. It's stupid really as that very first example could have simply be written the standard RenPy way such as:
Python:
menu:
    "Back" if not ep06_oil_back:
        jump ep06_ambernight_app_back
    "Legs" if not ep06_oil_legs:
        jump ep06_ambernight_app_legs
    "Feet" if not ep06_oil_feet:
        jump ep06_ambernight_app_feet
I can only assume she did this 'cause she either doesn't know that RenPy menu choices can work of conditionals (like my final example) or she just wanted to jumble the order of the choices up for no real apparent reason. I have no idea... but this a massive new delay I did not see coming from a mile away.

This won't be a quick fix... and I'm not about to recode all those damn menu choices and those in the future, fuck that. With the mod being created for the huge price of free I don't think I bank enough to waste that much time so I must think of a way via code to inject into that random menu function nonsense.

That function is exactly this for those who are code literate:
Python:
def random_menu(character=None, character_dialogue=None, prompt=None, options=[]):
    shuffled_options = list(options)
    renpy.random.shuffle(shuffled_options)
    menu_items = [
        (label, action)
        for condition, label, action in shuffled_options
        if condition
    ]
    if prompt is not None:
        menu_items.insert(0, (prompt, None))
    if character and character_dialogue:
        renpy.say(character, character_dialogue)
    return renpy.display_menu(menu_items)
Fuck my life... no, fuck this VN, my life is fine. But now I need another drink... :ROFLMAO:
Gah.

Here's a half-assed way to do it... it's not in real time (the ChoiceGuide toggle) with these randoms but can be toggled before the random menu choice is presented on screen.

Example with screen prior to random menu and disabling the ChoiceGuide:
1693956572879.png 1693956600546.png

Example with screen prior to random menu and enabling the ChoiceGuide:
1693956652377.png 1693956672648.png

I've managed to get the progress bar to show at the random menu choice screen just like the standard menu choices. If I can just think of a way to get kwargs and args to populate out of that damn list requirement of her coded function then I can make it work seamlessly.

This is much more of a coding challenge than I expected tbh... but I'll be damned if her "borrowed" code found somewhere in the dark web is going to beat me. But, it might... dunno yet. Some days I actually wish I knew how to code :/
 
  • Like
Reactions: Mihawk_80

Ohmega003

New Member
Jun 19, 2022
1
0
Gah.

Here's a half-assed way to do it... it's not in real time (the ChoiceGuide toggle) with these randoms but can be toggled before the random menu choice is presented on screen.

Example with screen prior to random menu and disabling the ChoiceGuide:
View attachment 2907319 View attachment 2907320

Example with screen prior to random menu and enabling the ChoiceGuide:
View attachment 2907329 View attachment 2907334

I've managed to get the progress bar to show at the random menu choice screen just like the standard menu choices. If I can just think of a way to get kwargs and args to populate out of that damn list requirement of her coded function then I can make it work seamlessly.

This is much more of a coding challenge than I expected tbh... but I'll be damned if her "borrowed" code found somewhere in the dark web is going to beat me. But, it might... dunno yet.

Do you think you have any kind of eta? not trying to rush ya just curious
 

Sancho1969

Devoted Member
Modder
Donor
Jan 19, 2020
11,908
44,741
Do you think you have any kind of eta? not trying to rush ya just curious
Zero at this point unless I just forget about the random choice menus and move on... then it's like a more normal VN and I can pop it out quickly enough... but the VN update just dropped this morning so it's not like I've been working on it for a week. It's not even been one day yet.
 
  • Like
Reactions: Ohmega003
5.00 star(s) 2 Votes