Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Hi, I got a bug when fighting against the flying badnik on the MC's side of episode 3, here's the error message:

I'm sorry, but an uncaught exception occurred.

While running game code:

  File "game/screens/battle/battle_01.rpy", line 274, in script

  File "game/screens/battle/02_battle_visuals.rpy", line 17, in execute

  File "game/screens/battle/02_battle_visuals.rpy", line 17, in execute

  File "game/screens/battle/02_battle_visuals.rpy", line 39, in execute

  File "game/screens/battle/02_battle_visuals.rpy", line 40, in execute

  File "game/screens/battle/02_battle_visuals.rpy", line 57, in execute

  File "game/screens/battle/02_battle_visuals.rpy", line 57, in execute

  File "game/screens/battle/02_battle_visuals.rpy", line 76, in execute

  File "game/screens/battle/02_battle_visuals.rpy", line 79, in execute

AttributeError: 'NoneType' object has no attribute 'quote'

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

Traceback (most recent call last):

  File "game/screens/battle/battle_01.rpy", line 274, in script

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

    self.call("execute")

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

  File "renpy/ast.py", line 2205, in call

    return renpy.statements.call(method, parsed, *args, **kwargs)

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

  File "renpy/statements.py", line 381, in call

    return method(parsed, *args, **kwargs)

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

  File "renpy/common/000statements.rpy", line 695, in execute_call_screen

    store._return = renpy.call_screen(name, *args, **kwargs)

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

  File "renpy/exports/statementexports.py", line 348, in call_screen

    rv = renpy.ui.interact(mouse="screen", type="screen", roll_forward=roll_forward)

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

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

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

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

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

    repeat, rv = self.interact_core(

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

        preloads=preloads,

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

    ...<4 lines>...

        **kwargs,

        ^^^^^^^^^

    )

    ^

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

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

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

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

    d.visit_all(callback, seen)

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

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

    d.visit_all(callback, seen)

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

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

    d.visit_all(callback, seen)

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

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

    callback(self)

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

  File "renpy/display/core.py", line 2709, 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/battle/02_battle_visuals.rpy", line 17, in execute

  File "game/screens/battle/02_battle_visuals.rpy", line 17, in execute

  File "game/screens/battle/02_battle_visuals.rpy", line 39, in execute

  File "game/screens/battle/02_battle_visuals.rpy", line 40, in execute

  File "game/screens/battle/02_battle_visuals.rpy", line 57, in execute

  File "game/screens/battle/02_battle_visuals.rpy", line 57, in execute

  File "game/screens/battle/02_battle_visuals.rpy", line 76, in execute

  File "game/screens/battle/02_battle_visuals.rpy", line 79, in execute

  File "renpy/text/text.py", line 2223, in __init__

    self.set_text(text, scope, substitute)  # type: ignore

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

  File "renpy/text/text.py", line 2362, 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 89, in interpolate

    raise e

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

    value = renpy.python.py_eval(code, {}, scope)

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

  File "renpy/python.py", line 1308, in py_eval

    return py_eval_bytecode(code, globals, locals)

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

  File "renpy/python.py", line 1301, in py_eval_bytecode

    return eval(bytecode, globals, locals)

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

  File "<none>", line 1, in <module>

AttributeError: 'NoneType' object has no attribute 'quote'

Windows-10-10.0.19045-SP0 AMD64

Ren'Py 8.5.3.26043002

APEX SWEEPER - A SotH AU Game 1.25

Fri May 15 19:35:43 2026

Thanks for the report! This is an issue with a 'random' pick that happens during battles. It's not a game-breaking bug, just restart the battle and you will be able to go through.

I will share a fix when it's available.

Just uploaded a new version. It should be fixed!