3.50 star(s) 95 Votes

Penfold Mole

Engaged Member
Respected User
May 22, 2017
2,875
6,502
It's actually the weirdest thing, that EP8 saves are throwing the rollback error message.
I just compared the script from EP8 with EP9 and there are basically no changes in the EP8 part of the script. Only 6 mistyped words have been corrected, nothing else. Even line numbers match. :unsure:
RenPy normally allows all kinds of grammatical and even logical script corrections without any major drawbacks, so this is really totally weird. o_O

I have a strong suspicion that this has something to do with the fact that the script basically has no labels anywhere besides the "start" label and "splashscreen", which makes it by itself quite unusual, if not totally "weird" for Ren'Py.
I think that game progress in Ren'Py saves may rely on labels a lot more than shown images, dialogs or line numbers, so when there are no labels to rely on, then any minor changes in the played part of the script may have catastrophic consequences.

While a VN or KN type of script often has no real need for labels, since there is no point jumping around the script or calling subroutines in a linear story, one should use some labels mostly just as markers or bookmarks for the engine to roll back to, in case something changes in the script between the labels and the engine is unable to find the point where exactly the game was saved. In such cases it seems to try to roll back to the last seen label.
 
Last edited:

tk99

Active Member
Jun 3, 2019
505
576
While a VN or KN type of script often has no real need for labels, since there is no point jumping around the script or calling subroutines in a linear story, one should use some labels mostly just as markers or bookmarks for the engine to roll back to, in case something changes in the script between the labels and the engine is unable to find the point where exactly the game was saved. In such cases it seems to try to roll back to the last seen label.

If that's true (not challenging you here, I haven't examined the script and I don't know enough renpy facts), wouldn't it happen in other VN's too? I guess many of them are build not using labels.

But proven or not ... can't hurt to add some labels, good to know :)
 

AL.d

Well-Known Member
Sep 26, 2016
1,536
5,098
That's new, trying to load last save doesn't even give the usual renpy error. It just doesn't load because windows don't seem to know how to open the file
 

omegaX

Newbie
Nov 2, 2017
90
98
ive downloaded and tried to play but every time i try and load previous saves dont work and i get a box show up, i like the game but not enough to strat from scratch again...

sorry its only my opinion.

GL
 
  • Like
Reactions: Macgamer

Alteni

Engaged Member
Jan 23, 2018
2,564
5,516
ive downloaded and tried to play but every time i try and load previous saves dont work and i get a box show up, i like the game but not enough to strat from scratch again...

sorry its only my opinion.

GL
maybe u need a fresh start .
 
  • Like
Reactions: Rtr

Penfold Mole

Engaged Member
Respected User
May 22, 2017
2,875
6,502
If that's true (not challenging you here, I haven't examined the script and I don't know enough renpy facts), wouldn't it happen in other VN's too? I guess many of them are build not using labels.

But proven or not ... can't hurt to add some labels, good to know :)
Most Ren'Py games are full of labels and jumps (whether they actually need them or not), this is actually the first one that has only the one that you need to start the game and one for the splash screen and needs no jumps, therefore has no need for additional labels.
This one is actually a good example of a well written well structured script that has no need for jumps (beautiful, well readable work, really (y)). But, maybe it should have at least some labels, even if it doesn't need them for jumps? Just in case...

Im't not really that knowledgeable about the inner workings of Ren'Py. My guess is based on how I've seen Ren'Py behave when the script has been changed somehow and you try to load a save file that was created before the change. In such cases Ren'Py seems to try to roll back to a point in game it recognizes, most likely to the last seen label and tends to crash with the "Couldn't find a place to stop rolling back" message when it is unable to find it within the reach of the rollback buffer content of the save file.
When Ren'Py can find a place to roll back to, then it falls back to a place before the point the game was saved and you just have to repeat some scenes to reach the same point again. To get a rollback error message, usually the script must be changed quite a lot, simple changes in dialog text usually won't trigger such a crash.

Since this game crashes unusually easily because of a few minor changes and is also somewhat unusual because of the lack of labels, I'm drawing a possible conclusion from it. I could be totally wrong, of course.

______________________
update

Forget it, it has nothing to do with the lack of labels in the script or even the script itself. Move the script file of the EP9 release into the previous version (EP8 release) of the game and saves from EP8 will work just fine.
Besides the script.rpy, minor changes were made into the gui.rpy and version name was changed in the options.rpy, but neither are causing these crashes.
The difference must be somewhere else and I'm still not sure where it is.

Just moving script.rpy, gui.rpy and options.rpy into the previous version and overwriting the contents of the images, audio and video folders with the new content will upgrade EP8 into a working EP9 that won't crash on EP8 or any other saves.
 
Last edited:
Jul 18, 2018
44
20
[QUOTE="Zoey Raven, post: 3537254, member: 1620913"

Edit: Updated to Ep. 9 NOTE: This one took longer because I had to squash a few dev bugs, my save did not work that I made just before the end of the last episode, but when I backed up to an earlier one all was fine, YMMV. If all else fails start a new save (this is not my fault if you have to) because I tested it from beginning to end so starting a new save is sure fire, but like I said I just backed up one save and it was fine. If you do not read this I will not be responding to questions in the thread about it. Please refer anyone to the post. Enjoy!
[/QUOTE]

There seems to be a bug in the recent update either the game or the walkthrough mod as as soon as I select a save to load it just wigs out and just shows the start screen without any menus. Have to press X then get this traceback:

I'm sorry, but an uncaught exception occurred.

While running game code:
File "renpy/common/00action_file.rpy", line 452, in __call__
renpy.load(fn)
Exception: Couldn't find a place to stop rolling back. Perhaps the script changed in an incompatible way?

-- Full Traceback ------------------------------------------------------------

Full traceback:
File "renpy/common/_layout/screen_main_menu.rpym", line 28, in script
python hide:
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\ast.py", line 914, in execute
renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\python.py", line 2028, in py_exec_bytecode
exec bytecode in globals, locals
File "renpy/common/_layout/screen_main_menu.rpym", line 28, in <module>
python hide:
File "renpy/common/_layout/screen_main_menu.rpym", line 35, in _execute_python_hide
ui.interact()
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\ui.py", line 297, in interact
rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\display\core.py", line 2702, in interact
repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, **kwargs)
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\display\core.py", line 3518, in interact_core
rv = root_widget.event(ev, x, y, 0)
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\display\layout.py", line 998, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\display\transition.py", line 47, in event
return self.new_widget.event(ev, x, y, st) # E1101
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\display\layout.py", line 998, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\display\layout.py", line 998, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\display\screen.py", line 714, in event
rv = self.child.event(ev, x, y, st)
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\display\layout.py", line 998, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\display\layout.py", line 244, in event
rv = d.event(ev, x - xo, y - yo, st)
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\display\layout.py", line 998, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\display\layout.py", line 244, in event
rv = d.event(ev, x - xo, y - yo, st)
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\display\layout.py", line 998, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\display\layout.py", line 244, in event
rv = d.event(ev, x - xo, y - yo, st)
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\display\behavior.py", line 962, in event
return handle_click(self.clicked)
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\display\behavior.py", line 897, in handle_click
rv = run(action)
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\display\behavior.py", line 320, in run
return action(*args, **kwargs)
File "renpy/common/00action_file.rpy", line 452, in __call__
renpy.load(fn)
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\loadsave.py", line 770, in load
log.unfreeze(roots, label="_after_load")
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\python.py", line 1983, in unfreeze
self.rollback(0, force=True, label=label, greedy=greedy, on_load=True)
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\python.py", line 1815, in rollback
self.load_failed()
File "C:\Users\mason\Downloads\New folder\DusklightManor-Episode9-pc\renpy\python.py", line 1733, in load_failed
raise Exception("Couldn't find a place to stop rolling back. Perhaps the script changed in an incompatible way?")
Exception: Couldn't find a place to stop rolling back. Perhaps the script changed in an incompatible way?

Windows-8-6.2.9200
Ren'Py 7.3.5.606
Dusklight Manor Episode9
Sun Nov 15 00:14:13 2020
 

oidex

Active Member
Jan 9, 2018
659
1,717
Most Ren'Py games are full of labels and jumps (whether they actually need them or not), this is actually the first one that has only the one that you need to start the game and one for the splash screen and needs no jumps, therefore has no need for additional labels.
This one is actually a good example of a well written well structured script that has no need for jumps (beautiful, well readable work, really (y)). But, maybe it should have at least some labels, even if it doesn't need them for jumps? Just in case...

Im't not really that knowledgeable about the inner workings of Ren'Py. My guess is based on how I've seen Ren'Py behave when the script has been changed somehow and you try to load a save file that was created before the change. In such cases Ren'Py seems to try to roll back to a point in game it recognizes, most likely to the last seen label and tends to crash with the "Couldn't find a place to stop rolling back" message when it is unable to find it within the reach of the rollback buffer content of the save file.
When Ren'Py can find a place to roll back to, then it falls back to a place before the point the game was saved and you just have to repeat some scenes to reach the same point again. To get a rollback error message, usually the script must be changed quite a lot, simple changes in dialog text usually won't trigger such a crash.

Since this game crashes unusually easily because of a few minor changes and is also somewhat unusual because of the lack of labels, I'm drawing a possible conclusion from it. I could be totally wrong, of course.
As you said, RenPy is very forgiving with changes to the script, but only if they happened in a different code block than the one you are trying to load into. And these code blocks are (usually) defined by, you guessed it, labels. That is why even a fully linear VN should have them, preferably around every logical scene.
 
3.50 star(s) 95 Votes