Mod Ren'Py University of Problems [v1.4.5 Extended] Multi-Mod [Sancho1969]

5.00 star(s) 13 Votes

Sancho1969

Message Maven
Modder
Donor
Jan 19, 2020
12,382
48,809
Sancho1969
First and foremost, I think your work is awesome and fantastic!
Second, if anyone is arrogant (or rather sounds entitled), it's me. This was unintentional.
Third, because I have muscle memory for all the other VNs I read it's a major inconvenience to learn a different key just for this VN.
Fourth, I seriously think your work is awesome and fantastic! ;)

Having said all that... could you please tell me in which .py file I can change it (for myself)?
Well, it's not that easy since there's no file to change this as my initialization phase is much later than any stock files (I don't alter any core files, I create initializations in post). It's the way pre-RenPy 8 works in it's Core. Once devs move over to RenPy 8 it'll be (hopefully) a trivial task to accommodate but as it stands making key changes after the initialization phase is wonky at best, and flat out doesn't work at worst. That said I've been busting my ass all afternoon to yet again find a solution that can be done while in-game. Every road I've gone down that in theory should work is found to be cock-blocked by RenPy due to the damn initiation phase and how deep rooted some of the functions are in it's core code.

As of this very minute the best solution I've found so far for a toggled mapping option for your request has one minor fault and it bothers the heck out of me... so I'm digging to refine it. The testing I'm doing is to allow the Player to toggle the mid-sized Stat screen to work on either key "S" or "T" with the former being the default a it is right now. Once the Player toggles to the key being "T" (which works just fine on its own) then the "S" key is re-inserted into the mapping. This is where the issues start to explode... and where I'm spending all my time. I'm very close but no cigar yet... I'll keep at it unless I get frustrated and say fuck it due to the platform's limitations. I've already put way more effort into this than it's worth to me if I'm being honest but I'm still trying to do the right thing by yours and a few other's request. It's just not as easy as it sounds though (and yes, it should be very very easy, but alas it's not).
 
Last edited:

Sancho1969

Message Maven
Modder
Donor
Jan 19, 2020
12,382
48,809
Well, it's not that easy since there's no file to change this as my initialization phase is much later than any stock files (I don't alter any core files, I create initializations in post). It's the way pre-RenPy 8 works in it's Core. Once devs move over to RenPy 8 it'll be (hopefully) a trivial task to accommodate but as it stands making key changes after the initialization phase is wonky at best, and flat out doesn't work at worst. That said I've been busting my ass all afternoon to yet again find a solution that can be done while in-game. Every road I've gone down that in theory should work is found to be cock-blocked by RenPy due to the damn initiation phase and how deep rooted some of the functions are in it's core code.

As of this very minute the best solution I've found so far for a toggled mapping option for your request has one minor fault and it bothers the heck out of me... so I'm digging to refine it. The testing I'm doing is to allow the Player to toggle the mid-sized Stat screen to work on either key "S" or "T" with the former being the default a it is right now. Once the Player toggles to the key being "T" (which works just fine on its own) then the "S" key is re-inserted into the mapping. This is where the issues start to explode... and where I'm spending all my time. I'm very close but no cigar yet... I'll keep at it unless I get frustrated and say fuck it due to the platform's limitations. I've already put way more effort into this than it's worth to me if I'm being honest but I'm still trying to do the right thing by yours and a few other's request. It's just not as easy as it sounds though (and yes, it should be very very easy, but alas it's not).
Ugh... I should further elaborate myself since even though the above is quite a long post, me going deeper into the weeds will confuse folks a bit I reckon. Here's some facts that make this simple request extremely complicated:
  • RenPy does NOT rollback config list sets. This alone would solve this particular issue much easier but would obviously fuck up the Core of RenPy at its very root. I understand this limitation but it still sucks ass.
  • After removing a key element in the mapping during the initialization process (the way it must be done in orthodox RenPy coding, not Python itself) re-inserting the key element back into the mapping during in-game allows it to show up in the mapping dictionary but it FAILS to operate within the mapping called function(s). This is an absolute killer and where I'm coding workarounds. The best solutions are coding within each screen separately... which really sucks. I'm currently mixing code in the mod's Core and it's main screens to minimize the effort, the amount of code required, and to make future revisions efficient.
  • There's more, but you might get the point... RenPy wasn't designed to do all the things I personally have always wanted and this is why SanchoMod is always pushing the language to it's limits.
This is the current placement for the toggle. I'd prefer it in SanchoOptions but it's not fitting in well aesthetically at the moment so this might be temporary:
1679873662892.png
 
Last edited:

darlic

Well-Known Member
Feb 27, 2017
1,892
3,211
Apologies as I'm working on another project and my head is in a different space, but if I'm understanding your request:

Prerequisite: I do go back and change the ChoiceGuide as needed each update since I can't obviously see the future and no one (likely including the dev) knows any particular outcome until the VN is complete. So, as this stand the player will always have to make certain save points during the progression of the VN as necessary and the guide does a pretty damn good job of warning you when something might effect a path depending on your previous choices.

Now, if you are asking me to insert a "cheat" choice of sorts periodically as the VN unfolds to allow you to make changes at that very moment in the story then... that's rough bud. That has me predicting what in the world each and every Player might want as an outcome. It'd be easier for me to make elaborate pathing cheats within SanchoCheats as I've done in VNs like BaDIK for example. Problem is that these also mandate evolution over time since any of the thousands of variables might need to altered to keep a path True at a later point.

I might be going too far into the weeds and not truly understanding your request though, so please feel free to elaborate as honestly my brain is all zeros and ones at the moment... I'm deep into some serious Python coding to help resolve Aurelius Ambrosius's "issue"... which I'm fixing to write a post about shortly.
You got my request right, more or less.
I understand your concern about the scripts' complexity/unknown evolution and choice tracking, however, I believe there is an "easy way out" from all this.
Let's make a real example, based on the last update, and Ashley's bad path.

Basically, what happend is you're forced into the bad path if you fuck Ivy at the free-roam party event (which took place like 20 updates earlier).

What I would like to have is a popup screen that basically tells the player: Unavoidable story branch ahead, do you want to select Ashely's good or bad path?
This would be asked regardless of the previous choices variables (or maybe you could make it clearer, by reading the relative variable(s) and warning the player on which path they currently are set).

I think this would be the optimal approach as it wouldn't hinder with the game's variables as in changing them, and actually ignore the path-critical ones throughout the whole game.


Edit: I think it goes without saying this should be an optional feature, as I'm sure there are a lot of masochistic players here who enjoy long-term, arbitrary story choices
 

Sancho1969

Message Maven
Modder
Donor
Jan 19, 2020
12,382
48,809
Sancho1969
Would it be helpful/possible to do the key change, and then notify the user that this binding only works after restarting the VN? That would be perfectly fine.
Understood, but restarting is much less convenient than using two fingers instead of one to begin with. With that said I believe I have a solid working copy for being able to change it while in-game. I've tried to tackle this bear in the past a few times but didn't give it the amount of hours required to dig really deep into RenPy's core enough. Now I have... and almost wish I hadn't :ROFLMAO:. I'll push a tester out for you sometime today most likely (it's Monday and I have IRL obligations to attend first). Regards.
 

Sancho1969

Message Maven
Modder
Donor
Jan 19, 2020
12,382
48,809
You got my request right, more or less.
I understand your concern about the scripts' complexity/unknown evolution and choice tracking, however, I believe there is an "easy way out" from all this.
Let's make a real example, based on the last update, and Ashley's bad path.

Basically, what happend is you're forced into the bad path if you fuck Ivy at the free-roam party event (which took place like 20 updates earlier).

What I would like to have is a popup screen that basically tells the player: Unavoidable story branch ahead, do you want to select Ashely's good or bad path?
This would be asked regardless of the previous choices variables (or maybe you could make it clearer, by reading the relative variable(s) and warning the player on which path they currently are set).

I think this would be the optimal approach as it wouldn't hinder with the game's variables as in changing them, and actually ignore the path-critical ones throughout the whole game.


Edit: I think it goes without saying this should be an optional feature, as I'm sure there are a lot of masochistic players here who enjoy long-term, arbitrary story choices
I understand... you want a chance for zero consequences, I get it. Hears the rub though... you do realize that most all these paths are separating. Ashley is a basic example so let's think about her for a minute: currently (to date) she has a possible basic relp of:
  • Disregarded completely (didn't help with the sorority and therefore can't obtain any Sara pathing due to this, but that's another path)
  • Friend w/out benefits (no teaching, no love pathing at all)
  • Friend w/benefits (teaching but dicking around with other outside LIs)
  • Potential LI Solo (not fucking around on her, including not with Sara)
  • Potential LI Triangle (not fucking around on here except having a relp with Sara)
Now, this is just off the top of my head (and it's very early in the morning here with little coffee consumption so don't fact-check me too roughly) and realize that in U20, at the point where you call her there's a minimum of five different ways it can go. Multiply this by all VN LIs and you have yourself a boiling pot of inevitable consequences. Your ask is not impossible, but I'm not convinced it's practical across all potential LIs and their respective Friend/Solo/Grouping paths. I'll have to chew on this a bit as, again, is likely more suited for pathing cheats like I've done in various other VNs rather than physically altering all the dev's scripts to add dozens or more additional menu choices at various times in the story.

One example I gave the player off the bat was the Rachel pathing... remember that in U6? That was only one "reduex" at it's rather complicated tbh... but I'm a Rachel fan so I put the time into doing it for shits and giggles. I believe this is similar to what you are requesting:
1679925615906.png
 
  • Like
Reactions: darlic

darlic

Well-Known Member
Feb 27, 2017
1,892
3,211
  • Disregarded completely (didn't help with the sorority and therefore can't obtain any Sara pathing due to this, but that's another path)
  • Friend w/out benefits (no teaching, no love pathing at all)
  • Friend w/benefits (teaching but dicking around with other outside LIs)
  • Potential LI Solo (not fucking around on her, including not with Sara)
  • Potential LI Triangle (not fucking around on here except having a relp with Sara)
I'm quoting this part just to point out that any of these aforementioned choices are due to the player's will, so there is nothing needed to do here in my opinion (it is down to the player to disregard or not a LI). Sure, you might think of adding a path-choicer to switch at will between all the possibilities, while it would be awesome that would also lead to an absolute clusterfuck of variables logic impossible to be maintained even by the game's dev themselves.

What I'm "against" is restricted to bad or unwanted paths only, especially when they require to basically replaying the whole game just because you had no idea of the consequences at that time. Some people find this fun, for me it's irritating to say the least.
 

Sancho1969

Message Maven
Modder
Donor
Jan 19, 2020
12,382
48,809
I'm quoting this part just to point out that any of these aforementioned choices are due to the player's will, so there is nothing needed to do here in my opinion (it is down to the player to disregard or not a LI). Sure, you might think of adding a path-choicer to switch at will between all the possibilities, while it would be awesome that would also lead to an absolute clusterfuck of variables logic impossible to be maintained even by the game's dev themselves.

What I'm "against" is restricted to bad or unwanted paths only, especially when they require to basically replaying the whole game just because you had no idea of the consequences at that time. Some people find this fun, for me it's irritating to say the least.
Understood. I'm chewing on it while working on another feature. I'm debating an efficient and rational structure (including a new window as I'm opposed to adding a ton of new menu choices). My reluctance is the fine line between helpful and fully opening Pandora's box as I stated before, "bad outcomes" is somewhat subjective to folks. There a literally hundreds of points currently in the VN that can kill a path, no shit.
 
  • Like
Reactions: darlic

Sancho1969

Message Maven
Modder
Donor
Jan 19, 2020
12,382
48,809
darlic, a quick proof of concept of what I was thinking in lieu of hard-coding new menu choices throughout the dev's scripts (which I've never been a fan of)... the SanchoPopUpChoice (work in progress):
1679937972295.png

In theory the choices would be radio buttons with the current Player's routing radio button selected by default. The player would be mandated to choose any of a number of choices presented then press confirm. I know pressing confirm is an unnecessary step since I could make the "choices" buttons themselves, but this forces the player to perform an extra step therefore me avoiding the on-slot of posts saying they didn't change anything (forcing personal responsibility for their actions).

Blah, blah... there's much to do if this concept takes shape... I'm still chewing on it.

Edit: v2 of the above, some internal coding for the screen set. While doing other IRL tasks I'll think of an efficient way to have setting the choices in the pop easier to deal with when the screen is called through various points in a VN... again, just proof of concept at this point.

Edit: v3 - It's currently set to populate only if the ChoiceGuide is toggled On. In the second pic the choice text is different... this is just an example as if the screen was earlier or later in the game and required an obviously different set of choices (for testing purposes).
1679947346892.png 1679949654971.png
 
Last edited:
  • Red Heart
Reactions: Elhemeer and darlic

Elhemeer

Conversation Conqueror
Jun 20, 2022
6,120
10,179
darlic, a quick proof of concept of what I was thinking in lieu of hard-coding new menu choices throughout the dev's scripts (which I've never been a fan of)... the SanchoPopUpChoice (work in progress):

In theory the choices would be radio buttons with the current Player's routing radio button selected by default. The player would be mandated to choose any of a number of choices presented then press confirm. I know pressing confirm is an unnecessary step since I could make the "choices" buttons themselves, but this forces the player to perform an extra step therefore me avoiding the on-slot of posts saying they didn't change anything (forcing personal responsibility for their actions).

Blah, blah... there's much to do if this concept takes shape... I'm still chewing on it.

Edit: v2 of the above, some internal coding for the screen set. While doing other IRL tasks I'll think of an efficient way to have setting the choices in the pop easier to deal with when the screen is called through various points in a VN... again, just proof of concept at this point.

Edit: v3 - It's currently set to populate only if the ChoiceGuide is toggled On. In the second pic the choice text is different... this is just an example as if the screen was earlier or later in the game and required an obviously different set of choices (for testing purposes).
That's actually pretty cool. It's like a Get Out Of Jail Free card for branching paths. "You landed on Ivy five major choices ago, but is that what you REALLY wanted to do?"

Also, I like how it stands out on the screen, so it'd be an easy save with plans to explore different paths.

I will just assume that when you start implementing this, it'll have its own on-off button, but I don't think it would bother me if it was just a part of the choice guide.
 
  • Like
Reactions: darlic

Sancho1969

Message Maven
Modder
Donor
Jan 19, 2020
12,382
48,809
That's actually pretty cool. It's like a Get Out Of Jail Free card for branching paths. "You landed on Ivy five major choices ago, but is that what you REALLY wanted to do?"

Also, I like how it stands out on the screen, so it'd be an easy save with plans to explore different paths.

I will just assume that when you start implementing this, it'll have its own on-off button, but I don't think it would bother me if it was just a part of the choice guide.
It's technically a cheat no matter how you slice it so yeah, I imagine I'll have to make it a toggled function inside SanchoCheats. The disclaimer is important too since, as a cheat, anything could happen and using it could mess something up later... just like any other cheat. So yeah, I think it best to be toggled likely Off by default (so yet again the Player is held responsible since they'd have to physically activate the "popup screen" cheat, then physically make a new pathing choice, then press "confirm". That should set it in stone that's it's all on them... I'll do what I can but not responsible for shenanigans later. :ROFLMAO:

Anywho... here's the final UI draft until I can figure out how to make all the screen's header info dynamic (note where it informs the Player what pathing they are on, what might be an issue they did before, and what the outcome may be if left alone). This is way more complex than it looks on the screen. There's a ton of shit going on inside SanchoMod's core but only one line is added to the dev's scripts calling the screen itself (pretty damn cool if I must say so myself). As a bonus feature the screen's opacity is correlated to the Menu Choice bar opacity... so it's adjustable as well ('cause that's how we roll):
1679951462285.png
 
  • Like
Reactions: darlic

Elhemeer

Conversation Conqueror
Jun 20, 2022
6,120
10,179
It's technically a cheat no matter how you slice it so yeah, I imagine I'll have to make it a toggled function inside SanchoCheats. The disclaimer is important too since, as a cheat, anything could happen and using it could mess something up later... just like any other cheat. So yeah, I think it best to be toggled likely Off by default (so yet again the Player is held responsible since they'd have to physically activate the "popup screen" cheat, then physically make a new pathing choice, then press "confirm". That should set it in stone that's it's all on them... I'll do what I can but not responsible for shenanigans later. :ROFLMAO:

Anywho... here's the final UI draft until I can figure out how to make all the screen's header info dynamic (note where it informs the Player what pathing they are on, what might be an issue they did before, and what the outcome may be if left alone). This is way more complex than it looks on the screen. There's a ton of shit going on inside SanchoMod's core but only one line is added to the dev's scripts calling the screen itself (pretty damn cool if I must say so myself). As a bonus feature the screen's opacity is correlated to the Menu Choice bar opacity... so it's adjustable as well ('cause that's how we roll):
(y) *This message has been brought to you by "FARL" (Fappers Against Reaction Limits)*
 

Sancho1969

Message Maven
Modder
Donor
Jan 19, 2020
12,382
48,809
(y) *This message has been brought to you by "FARL" (Fappers Against Reaction Limits)*
Coding the toggle inside SanchoCheats done and it's correct placement in this test case with Ashley since the screen needs to be before any of her scenes are about to be executed. The black screen in this case sucks... can't see my new popup screen frame:
1679952580295.png 1679953123447.png
Now I just need to play with it while speed running to see if this rather high-polished proof of concept is SM worthy. It's like taking a prototype race car on a test track...
 
Last edited:

Sancho1969

Message Maven
Modder
Donor
Jan 19, 2020
12,382
48,809
Thank you so much for the effort, you're the man :cool:
Here's dynamic versions of screen on each pathing if Player fucked Ivy. Notice the info changes and the choice changes of the following. I've since changed the "Sara Path" to say "SaraSolo Path" to assist in clarity:
 
Last edited:
  • Like
Reactions: darlic

Sancho1969

Message Maven
Modder
Donor
Jan 19, 2020
12,382
48,809
Sancho1969
With v1.1.0 I could save screenshots with the 'S' key. But, with v1.1.5 I can no longer do that.
Is this bug caused by your mod, or the main game?
Also, is there a fix or workaround for this bug?

Edit:
Ok, I found a workaround. You now have to press <SHIFT> and <S>. A little inconvenient, but it works as a workaround.
Can you fix this bug Sancho1969 ?
hey Sancho1969, thank you as always for your awesome work. This is certainly one of those games that I enjoy playing more with your mod on.

In that regard, it seems that the UoP dev is starting to put bad endings in his game, of which I'm not really a big fan. Maybe you could do something about that? Like offering both paths right away (showing all the scenes, regardless of the variables status) or asking to choose which path to take whenever necessary, if a choice is needed (sparing the player to load a very early save, again not a fan of that at all). Thank you again.
Okay fellas... after ~2 pages of discussion and more work than I thought it'd all be both of your requests have been determined rational and implementable. Therefore they are both done and fully functional in my testing project as can be viewed in the posts above. The polish is here as you've come to expect from SanchoMod. Both features have tested bulletproof as of the time of this post. I have a rather large amount of code housekeeping to do but I will submit a maintenance release when feasible.

HotKey "S" Toggle: Found in SanchoCheats (it looked out of place in SanchoOptions where it really needs to be), works in real-time while in-game with no restart required. Toggle allows the HotKey to set to either the default "S" or the alternative "T". While in the "T" variant the user can take RenPy screenshots with the individual "S" key as well as the other multi-key assignments. This feature toggle is saved on a per-save file basis (it will always default to "S" when starting a new game so will have to be set to "T" each new game if that's the preference of the Player. When loading a save where it was previously set to "T" then it will be loaded as such). Will be implemented in all future SanchoMod releases for all VN's going forward as a standard feature.

CriticalPath Popup Screen: Found in SanchoCheats and currently works during the U20 Ashley event if the Player did the dirty with Ivy, otherwise the screen does not populate (there's no need). It's fully toggle enabled independently from the ChoiceGuide since it's technically a cheat. I'll populate a few these as needed in the past after my brain quits smoking... this was not an easy task to pull off (it's almost as complex as the FreeRoam guides) but the foundation is done.

Regards.
 

Sancho1969

Message Maven
Modder
Donor
Jan 19, 2020
12,382
48,809
Sometimes it's good to walk away and think:

Well, I'm satisfied I didn't rush the maintenance release last night. It dawned on me early this morning over coffee that the player can indeed fuck Ivy and retain Ashley's path... the Player can't backdoor Ivy though, that's the actual condition. So, I'll have to make minor changes to the dynamic text you see in the above post's teasers to reflect this condition and only show the popup screen if the player went all fudge-packing with Ivy. Easy fix but it's an important one.

I've edited as follows (there's still three different dynamic outcomes based on the Player's previous choices). I've also added an into scene to the popup so it's not sitting on a black background and hid the empty dialogue box for aesthetics. Once any choice is made (even the non-change choice) the popup code initiates the Ashley scene will ALL the appropriate variables set correctly. This should be completely bulletproof at this point and 100% trustworthy.
1680017361861.png

Also, I can't remember what update I added the Ashley info to the Ivy scene, but it's there to warn the player already (surely this was done post-U16 but I can't remember when tbh):
1680015520661.png
 
Last edited:
  • Haha
Reactions: Elhemeer

Sancho1969

Message Maven
Modder
Donor
Jan 19, 2020
12,382
48,809
SanchoMod Maintenance Update (Non-Critical)

Go get you some.

Links in OP are updated accordingly.

Changlelog:
  • HotKey "S" Toggle: Found in SanchoCheats (it looked out of place in SanchoOptions where it really needs to be), works in real-time while in-game with no restart required. Toggle allows the HotKey to set to either the default "S" or the alternative "T". While in the "T" variant the user can take RenPy screenshots with the individual "S" key as well as the other multi-key assignments. This feature toggle is saved on a per-save file basis (it will always default to "S" when starting a new game so will have to be set to "T" each new game if that's the preference of the Player. When loading a save where it was previously set to "T" then it will be loaded as such). Will be implemented in all future SanchoMod releases for all VN's going forward as a standard feature.
  • CriticalPath Popup Screen: Found in SanchoCheats and currently works during the U20 Ashley event if the Player packed Ivy's fudge, otherwise the screen does not populate (there's no need). It's fully toggle enabled independently from the ChoiceGuide since it's technically a cheat. The info it provides and the choices it populates are all fully dynamic (they automatically change) dependent on the Player's previous choices of the current playthrough. Fully compatible with the alt-character renaming feature (specifically Sara in this particular case).
Simply download and reinstall over existing mod installation, overwriting as requested if necessary.

Mentions: Aurelius Ambrosius darlic
 
Last edited:
Jul 16, 2018
278
271
:love::love::love: You are incredible! :love::love::love:

Does this mean this is also automatically included in releases for other games? I.e., is this now the default in your code base so that newer releases and new releases of other games also include this fix?
Edit:
I'm an idiot who can't read :)
 
Last edited:
  • Like
Reactions: Sancho1969

Sancho1969

Message Maven
Modder
Donor
Jan 19, 2020
12,382
48,809
:love::love::love: You are incredible! :love::love::love:

Does this mean this is also automatically included in releases for other games? I.e., is this now the default in your code base so that newer releases and new releases of other games also include this fix?
Edit:
I'm an idiot who can't read :)
You're not an idiot bud, during these tax seasons my writing/communications goes downhill due to all the crap in my head I'm dealing with... but I'm sure I'll have egg on my face at some point since 1) I have to remember to hook the new code into all other mod updates going forward and most importantly 2) different versions of RenPy (and therefore different VN's) will have to be coded differently for the feature to have any hope of working. There are some VN's that still use 3yr old RenPy that I reckon no matter what I try it won't work. Pandora's box. We'll see soon enough.

Regards.
 
5.00 star(s) 13 Votes