Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(+1)

Only finished one ending so far but oh did it ever have me crying at 5am... I love the bittersweet after taste of a love that can't be. Very finely crafted. Also deeply fond of the four-armed kabedon, hehe, I remember going to my friends and shouting, look! They're inventing new moves out there! It's a new frontier!!

Aside from my delight with the game, I just wanted to let you know I've been having this issue while trying to make saves and wanted to provide the rollback code. It um.... may have all stemmed from the fact that I tend to name my saves in a silly fashion when provided the opportunity and made a typo and broken something. My apologies.

[code]

I'm sorry, but an uncaught exception occurred.

While running game code:

  File "game/screens/save_load.rpy", line 18, in execute

  File "game/screens/save_load.rpy", line 18, in execute

  File "game/screens/save_load.rpy", line 29, in execute

  File "game/screens/save_load.rpy", line 35, in execute

  File "game/screens/save_load.rpy", line 37, in execute

  File "game/screens/save_load.rpy", line 39, in execute

  File "game/screens/save_load.rpy", line 44, in execute

  File "game/screens/save_load.rpy", line 48, in execute

  File "game/screens/save_load.rpy", line 64, in execute

  File "game/screens/save_load.rpy", line 65, in execute

  File "game/screens/save_load.rpy", line 66, in execute

  File "game/screens/save_load.rpy", line 67, in execute

  File "game/screens/save_load.rpy", line 70, in execute

Exception: String 'p[oo' ends with an open format operation.

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

Traceback (most recent call last):

  File "renpy/common/00gamemenu.rpy", line 174, in script

    $ ui.interact()

  File "renpy/ast.py", line 1187, in execute

    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "renpy/python.py", line 1273, in py_exec_bytecode

    exec(bytecode, globals, locals)

    ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "renpy/common/00gamemenu.rpy", line 174, in <module>

    $ ui.interact()

      ~~~~~~~~~~~^^

  File "renpy/ui.py", line 306, in interact

    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)

         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "renpy/display/core.py", line 2154, in interact

    repeat, rv = self.interact_core(

                 ~~~~~~~~~~~~~~~~~~^

        preloads=preloads,

        ^^^^^^^^^^^^^^^^^^

    ...<4 lines>...

        **kwargs,

        ^^^^^^^^^

    )

    ^

  File "renpy/display/core.py", line 2700, in interact_core

    root_widget.visit_all(lambda d: d.per_interact())

    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "renpy/display/displayable.py", line 457, in visit_all

    d.visit_all(callback, seen)

    ~~~~~~~~~~~^^^^^^^^^^^^^^^^

  File "renpy/display/displayable.py", line 457, in visit_all

    d.visit_all(callback, seen)

    ~~~~~~~~~~~^^^^^^^^^^^^^^^^

  File "renpy/display/displayable.py", line 457, in visit_all

    d.visit_all(callback, seen)

    ~~~~~~~~~~~^^^^^^^^^^^^^^^^

[Previous line repeated 1 more time]

  File "renpy/display/screen.py", line 503, in visit_all

    callback(self)

    ~~~~~~~~^^^^^^

  File "renpy/display/core.py", line 2700, in <lambda>

    root_widget.visit_all(lambda d: d.per_interact())

                                    ~~~~~~~~~~~~~~^^ 

  File "renpy/display/screen.py", line 514, in per_interact

    self.update()

    ~~~~~~~~~~~^^

  File "renpy/display/screen.py", line 715, in update

    self.screen.function(**self.scope)

    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^

  File "game/screens/save_load.rpy", line 18, in execute

  File "game/screens/save_load.rpy", line 18, in execute

  File "game/screens/save_load.rpy", line 29, in execute

  File "game/screens/save_load.rpy", line 35, in execute

  File "game/screens/save_load.rpy", line 37, in execute

  File "game/screens/save_load.rpy", line 39, in execute

  File "game/screens/save_load.rpy", line 44, in execute

  File "game/screens/save_load.rpy", line 48, in execute

  File "game/screens/save_load.rpy", line 64, in execute

  File "game/screens/save_load.rpy", line 65, in execute

  File "game/screens/save_load.rpy", line 66, in execute

  File "game/screens/save_load.rpy", line 67, in execute

  File "game/screens/save_load.rpy", line 70, in execute

  File "renpy/text/text.py", line 2313, in _scope

    return self.set_text(self.text_parameter, scope, self.substitute, update)

           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "renpy/text/text.py", line 2350, in set_text

    i, did_sub = renpy.substitutions.substitute(i, scope, substitute)  # type: ignore

                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^                

  File "renpy/substitutions.py", line 355, in substitute

    s = interpolate(s, variables)  # type: ignore

        ~~~~~~~~~~~^^^^^^^^^^^^^^                

  File "renpy/substitutions.py", line 52, in interpolate

    for lit, expr, conv, fmt in parse(s):

                                ~~~~~^^^ 

  File "renpy/substitutions.py", line 255, in parse

    raise Exception("String {!r} ends with an open format operation.".format(s))

Exception: String 'p[oo' ends with an open format operation.

Windows-11-10.0.26200-SP0 AMD64

Ren'Py 8.5.2.26010301

Our Light Affliction: Spider's Covenant 1.0

Thu Jul 30 11:14:35 2026

[/code]