Tool Ren'Py Ren'Py Restoration Patches: Hide Interface v2.2 - Toggle Quick Menu v7.8 - Change Save Name v1.0

5.00 star(s) 2 Votes

Thamn

Newbie
Aug 6, 2016
49
114
These mods are fantastic.

I was wondering do you think you could make a mod to revert Happy Summer
You don't have permission to view the spoiler content. Log in or register now.
"Save Menu" to its default, His save menu only has 20 save slots, and to stop the game from blocking saving during dialogue?

Also another game with an save issue is "Room for rent"
You don't have permission to view the spoiler content. Log in or register now.
. This dev blocks you from saving at all except once a day when the day is over.

I tried it myself but I don't know that much about RenPy so it was half-assed. I was able to get the ability to save during dialogue in "Happy Summer" but fixing the save menu was much more difficult for me and I was messing up the look of the UI.

In "Room for rent" I was able to enable the save game feature as normal except I had to put his save game call function at the beginning of the game to enable it right away which calls the "Day 2" screen. Which isn't really to bad since it is just an one time thing.

I guess I really need to just look at the base code for these functions and maybe that would help me figure out how to revert these to normal function. Is there a tutorial for this or do you just look at the scripts in the games RenPy folder?
Hi, I'm glad you like them. If there is a tutorial I am not aware of it, in my case I have a general knowledge of coding and then just look at the scripts and the documentation to achieve what I want. That and a lot of trial and error, Ren'py can be quite unpredictable some times.

Speaking of unpredictable, the coding on those two games is very weird, I really don't understand why developers go to such lengths to remove quality of life functionality that was already created for them, they're only adding frustration to the player's experience.

Since they're so different I had to create 2 separate patches, one for each game. I took care to make them as forward compatible as possible, if the developers keep using the same methods and assets in future versions they both should keep working without the need to update them. There were other flaws in the games that could be improved but that would require an actual mod and likely break compatibility so I kept it to what you requested. Put the file in the /game folder and it's good to go.

If you encounter any bugs let me know.

You don't have permission to view the spoiler content. Log in or register now.

In other news, I made a slight change to the quick menu toggle patch to add more freedom when choosing the position, now there's 1000 points instead of only 100 so it's easier to integrate it with the more complex user interfaces. If you used the previous version on a game the quick menu will be out of place but it's easy to fix it in the configuration window. It is now version 6.3.
 
Last edited:
  • Like
Reactions: Mario8080

frozenfeet

Well-Known Member
Aug 2, 2019
1,175
1,792
Hi, I'm glad you like them. If there is a tutorial I am not aware of it, in my case I have a general knowledge of coding and then just look at the scripts and the documentation to achieve what I want. That and a lot of trial and error, Ren'py can be quite unpredictable some times.

Speaking of unpredictable, the coding on those two games is very weird, I really don't understand why developers go to such lengths to remove quality of life functionality that was already created for them, they're only adding frustration to the player's experience.

Since they're so different I had to create 2 separate patches, one for each game. I took care to make them as forward compatible as possible, if the developers keep using the same methods and assets in future versions they both should keep working without the need to update them. There were other flaws in the games that could be improved but that would require an actual mod and likely break compatibility so I kept it to what you requested. Put the file in the /game folder and it's good to go.

If you encounter any bugs let me know.

You don't have permission to view the spoiler content. Log in or register now.

In other news, I made a slight change to the quick menu toggle patch to add more freedom when choosing the position, now there's 1000 points instead of only 100 so it's easier to integrate it with the more complex user interfaces. If you used the previous version on a game the quick menu will be out of place but it's easy to fix it in the configuration window. It is now version 6.3.
Oh, yeah!! Thanks dude.. This is much appreciated..

About the tutorials I did find this site which is Documentation for RenPy . Seems to give some info about how to use but I think it is kind of basic. But better then nothing

I don't really know nothing about coding I just learned to do things in RenPy by looking at other people's scripts until I figure out what is going on with it. Which I have to admit is the slow way to do it, I think.

It seems like the Dev of Happy Summer is trying to make the game play as miserable as possible. I just don't get it. The default RenPy settings work quite well and you only need one hand to save ;). I have noticed that it seems to be a lot of the Russian Dev's that drastically change the UI not sure why though.
 
Last edited:

frozenfeet

Well-Known Member
Aug 2, 2019
1,175
1,792
I did run into a bug with Happy Summer. The quit button from the starting menu isn't going away but the save system is working. I am playing version 0.2.7.

Also would you mind if I linked to these files on those game pages? I'm sure others would like to use them as well on those games and your Hide Menu and Toggle Quick Menu mod as well.
 
Last edited:

Thamn

Newbie
Aug 6, 2016
49
114
Oh, yeah!! Thanks dude.. This is much appreciated..

About the tutorials I did find this site which is Documentation for RenPy . Seems to give some info about how to use but I think it is kind of basic. But better then nothing
That's the documentation I was talking about, it's nice because it provides a list of what's available but the explanations are very brief, I usually need some trial and error after to get it right but yes, it's much better than nothing.

I did run into a bug with Happy Summer. The quit button from the starting menu isn't going away but the save system is working. I am playing version 0.2.7.
I noticed that but I thought it was intentional as it also happens without my patch. The issue is at the start, you can find this piece of code in the "begin" label of the script.rpy:
Python:
    hide screen m_menu_1
    hide screen m_menu_2
    hide screen m_menu_3
    hide screen m_menu_4
    hide screen m_menu_5
    hide screen patreon
    show screen key_map
So the game never hides the "m_menu_6" screen which is the quit button. This is only really an issue with this game because the main menu is not actually the main menu but is instead a label and already part of the gameplay so everything needs to be set up and dev the likely forgot that. If you want, I can add an exception to the "ESCAPE" keybind of this patch to hide it if it's showing outside of the "main menu". You can also easily solve it yourself if you have access to the console, just type hide screen m_menu_6 and it will go away. Another way to do it is to click the "New" button before the "Quit" button shows up at the start of the game, it's silly buy it works. I don't know if the dev did this on purpose or not but looking at the rest of the code I wouldn't be surprised.

Also would you mind if I linked to these files on those game pages? I'm sure others would like to use them as well on those games and your Hide Menu and Toggle Quick Menu mod as well.
Of course I don't mind, feel free to share them, that's why I uploaded them here instead of keeping them for myself :)
 

frozenfeet

Well-Known Member
Aug 2, 2019
1,175
1,792
That's the documentation I was talking about, it's nice because it provides a list of what's available but the explanations are very brief, I usually need some trial and error after to get it right but yes, it's much better than nothing.



I noticed that but I thought it was intentional as it also happens without my patch. The issue is at the start, you can find this piece of code in the "begin" label of the script.rpy:
Python:
    hide screen m_menu_1
    hide screen m_menu_2
    hide screen m_menu_3
    hide screen m_menu_4
    hide screen m_menu_5
    hide screen patreon
    show screen key_map
So the game never hides the "m_menu_6" screen which is the quit button. This is only really an issue with this game because the main menu is not actually the main menu but is instead a label and already part of the gameplay so everything needs to be set up and dev the likely forgot that. If you want, I can add an exception to the "ESCAPE" keybind of this patch to hide it if it's showing outside of the "main menu". You can also easily solve it yourself if you have access to the console, just type hide screen m_menu_6 and it will go away. Another way to do it is to click the "New" button before the "Quit" button shows up at the start of the game, it's silly buy it works. I don't know if the dev did this on purpose or not but looking at the rest of the code I wouldn't be surprised.



Of course I don't mind, feel free to share them, that's why I uploaded them here instead of keeping them for myself :)
That is odd because he never had it that way before. Maybe it was just a mistake? Of course I am not sure how he could miss that so maybe it is suppose to be a new feature. One I certainly don't like.

He also remaps the keys so that MMB and the H key don't hide the interface but I just remove all that so that it works. He also blocks rollback and enabling the the console which I also remove so I am just going to add that hide screen m_menu_6 like you said.

The RenPy transparent text box mod doesn't work on this game either so he must hard code the textbox color as well. The Dev really tries to make it as difficult as possible to work with his UI.

Anyways thanks again. I'll link back to this I am pretty sure a lot of people will like the ability to make more saves in Happy Summer.
 

Thamn

Newbie
Aug 6, 2016
49
114
He also remaps the keys so that MMB and the H key don't hide the interface but I just remove all that so that it works. He also blocks rollback and enabling the the console which I also remove so I am just going to add that hide screen m_menu_6 like you said.
So I decided to fix that as well as the other major flaws. This is the full list of changes that the patch for "Happy Summer" now makes:
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.

After applying both patches the game should feel like a normal game. If you can, avoid rollbacks and the rollback patch, I don't like messing with labels as it might create compatibility issues down the line but in this case it's the only way to stop the errors. Let me know if there's some bugs I didn't catch. I would also recommend using my quick menu patch to add the quick save buttons and move them to some corner out of the way, this way you can quick save regularly and avoid unnecessary rollbacks.

On that note, I updated the quick menu patch to give it more priority as this game ("Happy Summer") has screens with priority over 1000 that was messing with my alternate functions on some buttons, the current version is now 6.4.
 
Last edited:
  • Like
Reactions: Twistty

Thamn

Newbie
Aug 6, 2016
49
114
The quick menu toggle has been updated to version 6.7. The auto-hide function now correctly works when the original quick menu already has an outline, previously it was hiding the text but the outlines stayed visible. I also changed the configuration window to hide itself when a confirmation prompt is shown, previously it was getting in the way of the confirmation to quit the game.
 

Segotep

Newbie
Sep 20, 2018
18
2
Hey man! Great work! I was wondering if I am doing something wrong. Is there any way to save quick menu customization settings?

If I save and reload the game, it's all back to zero. Have to do the customizations again.

Of topic:

Did a little customization my self, more an humble addition. Added Hide button, to hide the interface. :)

QMC.PNG
 

Thamn

Newbie
Aug 6, 2016
49
114
Hey man! Great work! I was wondering if I am doing something wrong. Is there any way to save quick menu customization settings?

If I save and reload the game, it's all back to zero. Have to do the customizations again.

Of topic:

Did a little customization my self, more an humble addition. Added Hide button, to hide the interface. :)

View attachment 1297858
Thanks, I'm glad you like it. The changes only save after advancing the scene once, if you customize the menu and save in the same frame it won't register the changes. To avoid cluttering the game variables list, all the customization variables exist only inside the custom quick menu screen and for some reason this means they're only saved to the file after moving forward in the story. It's not ideal but the alternatives of having my quick menu variables as either part of the game or persistent are much worse in my opinion, I want to interfere with the game as little as possible to avoid unforeseen issues.

If it's still not saving for you after you advance the dialogue let me know which game is doing it so I can have a look, I've never had that happen to me.

As for the hide button, that's a nice touch, I never needed it so it never crossed my mind to add something like that but it's always nice to have more options, I'll add it later once I have the time to make sure it interacts correctly with my hide interface patch for the games that have that functionality disabled. Thanks for the tip.
 
  • Like
Reactions: Segotep

Segotep

Newbie
Sep 20, 2018
18
2
Hey! Thanks for explanation. I can send it to you (the modified version). Not much done, I followed the `prefs` implementation clone it, changed what was related and added the function. I'm using a windows tablet and I like things touch oriented. :)

Was wandering if I can modify it to always overwrite native (persistent as you said) and with my preferred settings hard-coded. Just throw it in the game folder and voila! :p And if some issues, remove and investigate. :D But time...hope I find some.

Yes. Advancing seems to do the trick. Thanks again! :)
 

Thamn

Newbie
Aug 6, 2016
49
114
Hey! Thanks for explanation. I can send it to you (the modified version). Not much done, I followed the `prefs` implementation clone it, changed what was related and added the function. I'm using a windows tablet and I like things touch oriented. :)

Was wandering if I can modify it to always overwrite native (persistent as you said) and with my preferred settings hard-coded. Just throw it in the game folder and voila! :p And if some issues, remove and investigate. :D But time...hope I find some.

Yes. Advancing seems to do the trick. Thanks again! :)
There's a few ways to achieve what you want but first I want to clarify what persistent variables are because that could mess you up in the future if you continue modding for yourself:
You don't have permission to view the spoiler content. Log in or register now.
Fortunately you don't need them to achieve what you want, I'll hide the instructions in another spoiler so it doesn't clutter the page:
You don't have permission to view the spoiler content. Log in or register now.
I've uploaded 3 files that do each of these steps, you can either incorporate them into your final version or just leave them as separate files so you can easily remove them if they cause problems.
You don't have permission to view the spoiler content. Log in or register now.

As for the hide button, thanks for the offer but it's not necessary, the change was simple, I just had to make sure it worked with my patch in the games that disable that functionality, Ren'py can be unpredictable sometimes when modding and the only way to find out if it works is to try it out.

The custom quick menu has been updated to version 6.8 to add a Hide button that hides the interface.
 
  • Like
Reactions: Segotep

Segotep

Newbie
Sep 20, 2018
18
2
Hey! Thanks again man.

Hmm...persistent.variables are not stored in saves folder? Under persistent file. I don't know if those are the ones, related to game preferences settings. Other then saves folders from game folder and roaming folder is settings/changes stored somewhere else?

Nevertheless I understand your point. If permanent code alterations are happening due to injected external code, it's not a good sign. Also about the native quick menu customisation, you are right. I found custom keys made by the developer. So in this case it can be used with only missing keys positioned somewhere else.

Already customised the defaults on buttons. So when I hit W it will load with my prefs. On the "never append quick menu" issue, we can go around with an "if" statement? If native q menu implemented hide it, else nevermind. But it makes more sense not to hide it by default, due to possible custom buttons.

What I'm trying to achieve is "no keyboard interactions". So my first glance approach was to hardcode settings and load them by default. But it's not feasible if you have (like you) the correct approach, an universal one. So now I'm thinking to leave it as is. With only the default buttons layout changed a little. And implement a persistent button (in some corner) to toggle the menu. Instead of hitting W key.

Off topic: From the way you explain (mutch appreciated) I reckon you have coding experience. Not just fiddling around like me. My boss has the same universal approach, by default when he's coding.
 

Thamn

Newbie
Aug 6, 2016
49
114
Hey! Thanks again man.

Hmm...persistent.variables are not stored in saves folder? Under persistent file. I don't know if those are the ones, related to game preferences settings. Other then saves folders from game folder and roaming folder is settings/changes stored somewhere else?
Yes, that's where they're stored along with many other variables the devs might be using to track galleries, secrets, viewed scenes and so on. Deleting the file to fix our mistake would also delete all that secondary progress.
On the "never append quick menu" issue, we can go around with an "if" statement? If native q menu implemented hide it, else nevermind.
I'll hide these answers in a spoiler because they're too long and technical to be out in the open, the TL;DR is that there's some solutions to your objectives, I uploaded one of them so you can see if it's what you're looking after. Now the long version:
You don't have permission to view the spoiler content. Log in or register now.
Off topic: From the way you explain (mutch appreciated) I reckon you have coding experience. Not just fiddling around like me. My boss has the same universal approach, by default when he's coding.
Yes, not in python specifically but the concepts tend to be the same, it's just a matter of learning the grammar and syntax of the new language. Ren'Py however is another beast entirely, it's a language inside a language and doesn't take kindly to being messed with, especially after being customized by someone else, you never know where surprises are hidden so it's important to keep compatibility as broad as possible.

The custom quick menu has been updated to version 6.9 to add a Config button that opens the configuration window (same thing as right clicking the Q.Save and Q.S buttons). Some minor changes have also been made to ensure compatibility when the custom quick menu is activated by something other than pressing 'W'.
 
  • Red Heart
  • Like
Reactions: Twistty and Segotep

Segotep

Newbie
Sep 20, 2018
18
2
:p Thank you for the toys and your time man!

So what did I do:

Merged booth scripts and added a screen choice (well sort of....a noob screen choice :D) and the result is this:

DSSC.PNG

It's functional. And hope will be enough. :cool:
 

Thamn

Newbie
Aug 6, 2016
49
114
:p Thank you for the toys and your time man!

So what did I do:

Merged booth scripts and added a screen choice (well sort of....a noob screen choice :D) and the result is this:

View attachment 1307290

It's functional. And hope will be enough. :cool:
That's one way to do it and as long as it does what you want it's good. My suggestion in this case would be to put that in a single line in one of the top corners instead so you can still play the first few scenes unobstructed before you decide on which menu you want.

I was thinking of the alternative of running only the configuration window by itself at the start, if you're happy with the native menu you close it, if not you can use the buttons to hide the native, show the custom and change the size and spacing straight away. This would take more clicks but also require only 3 lines of code to achieve:
Python:
init 999 python:
    config.overlay_screens.append("quick_menu_w")
default qmw_config = True
But having a simple query hiding in a corner is a more pleasant way of starting a game than a screen full of options and you can always initialize the quick menu with the config window active when you click "Yes" if you tend to always change the size and spacing like I do depending on the game.

Either way, I'm glad you found a solution you're happy with.
 
  • Like
Reactions: Segotep

Segotep

Newbie
Sep 20, 2018
18
2
Hmm...not a bad idea with the query menu minimized.

The config menu from start sounds too intrusive. It nullifies the minimize idea.

I will also add a screenshot button.

Yes. I'm happy with your work.

LE: Didn't think this trough. If you want to take a screenshot, normally you hide the interface....and no screenshot button. :D
 
Last edited:

Thamn

Newbie
Aug 6, 2016
49
114
LE: Didn't think this trough. If you want to take a screenshot, normally you hide the interface....and no screenshot button. :D
You could do both actions with the same button action [HideInterface(), Screenshot()]. Clicking the button hides the interface, clicking the screen executes the screenshot and then shows the interface. You could probably automate this with a function but this way is simple and it works in my limited testing.
 
  • Like
Reactions: Segotep

Segotep

Newbie
Sep 20, 2018
18
2
Good idea. It's working. But the order is weird. Its not executing the actions in chain, once you hit S.Shot > hide interface > screenshot. It only hide it and when you touch to reveal the interface takes the screenshot. Just like you said. o_O

But it works, so thanks. :)
 

Segotep

Newbie
Sep 20, 2018
18
2
Hmmm...what I notice in some games, the overwrite yes/no menu appears in some portions again. Is there a way to run it once? :)
 

Thamn

Newbie
Aug 6, 2016
49
114
Hmmm...what I notice in some games, the overwrite yes/no menu appears in some portions again. Is there a way to run it once? :)
I don't know how you made your menu so it's difficult to tell you what's going on. My guess is the variable was declared inside the screen so if the screen is reset for some reason, so is the variable. If you declare the variable outside of the screen and change the action from SetScreenVariable() to SetVariable() it becomes a normal game variable like stats and events and should be permanent for that save, the only way to revert it would be to rollback or change the variable directly in the console or some other button you add. Using the invisible button I uploaded previously as an example, the changes would look like this:
Python:
default qmw_override = True

screen quick_menu_override():

    zorder 100

    if renpy.has_screen('quick_menu_w'):
        if qmw_override:
            imagebutton:
                idle Solid( "#00000000" )
                xalign 0.5
                yalign 0.5
                action [SetVariable('qmw_override', False), Function(_qmw_override)]
Let me know if that's the case, otherwise I'd need to see your code to help you further.
 
  • Like
Reactions: Segotep
5.00 star(s) 2 Votes