Ren'Py Rollback locked

TanyaC

Active Member
May 11, 2022
571
474
149
I'm having a really complex Renpy game here.
Besides not letting you go back with the mouse, if you make the wrong choice it gives you a game over.
I've already tried saving the game before choosing the action and it doesn't even let me do that. With these new AI games, everything has become very realistic, but many developers are working harder and harder to make the player spend hours and hours inside a game without having any fun, which ends up stressing people out a lot.

I wanted to know in which game script I can find the parameter to go back with the mouse; it must be in the Renpy folder somewhere, set to False.
Is there any programmer here who can give me a tip on how to break this, please?:unsure:____
 

Turning Tricks

Rendering Fantasies
Game Developer
Apr 9, 2022
1,953
3,646
353
If Save-Scumming doesn't work, it sounds to me that the dev of those games made menu choices as permanent variables, so if you picked one, then played again or started from an earlier save, the choice is still there.

Easy way to test that is to delete the saves in the game folder and in it's AppData location, or at least move them somewhere else temporarily. (NOTE: Dev may have hid the AppData folder as well, in some strange location).

Another simple way to bypass this is to use Unren to add the developer console (may have to try a few versions of Unren) and then look at the variable lists and find the one that gets updated when you make a menu choice. Then you can reset even the permanent variables whenever you want. Just be aware that rollback will also affect any inputs you made in the console.
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
12,726
20,889
1,026
If Save-Scumming doesn't work, it sounds to me that the dev of those games made menu choices as permanent variables, so if you picked one, then played again or started from an earlier save, the choice is still there.
Hmm... Personally, I read this part of OP as "it's not possible to open the save page".


Another simple way to bypass this is to use Unren to add the developer console (may have to try a few versions of Unren) and then look at the variable lists and find the one that gets updated when you make a menu choice.
:cry: There's easier... in my signature.

Looking at the variables through the console, or even the native variable list, is a pain in the ass, because you need to browse all the variables and remember their previous values. My Extended Variable Viewer can do this, and more, automatically for you.
 
  • Like
Reactions: Turning Tricks

79flavors

Well-Known Member
Respected User
Jun 14, 2018
1,657
2,348
462
I've already tried saving the game before choosing the action and it doesn't even let me do that.
This may not be what you are talking about, but...
RenPy's random number generator isn't as random as others. It's still entirely random, but the way it does things means that a player will get the same random number over and over for a given choice - even if they save first.

Overall though, it would be much easier to offer advice if you named the game.
That way, those of us with knowledge of how RenPy does thing can download it and see what it's doing behind the scenes.
It'll also make it easier to understand what you mean when you say "doesn't let me do that."

Also, as Winterfire already stated... UnRen has an option to FORCE rollback on, even if a game has disabled it (most of the time).

However what UnRen can't do is disable scripts that perform actions like or - which might be what that game is doing.
 
  • Like
Reactions: anne O'nymous

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
12,726
20,889
1,026
However what UnRen can't do is disable scripts that perform actions like or - which might be what that game is doing.
Python:
init python hide:

    config.rollback_enabled = True
    config.hard_rollback_limit = 100
    config.rollback_length = 128

    def doNothing():
        return

    store.__prevRBR = renpy.block_rollback
    renpy.block_rollback = doNothing

    store.__prevRFR = renpy.fix_rollback
    renpy.fix_rollback = doNothing

    def periodicControl():
        if not config.rollback_enabled:
            config.rollback_enabled = True

    config.periodic_callbacks.append( periodicControl )
And hop, all possibilities should be covered ;)