That actually helped me fix the issue! While it was not directly an issue of me having two game_menu screens, looking over my game_menu screen made me find the root issue.
My game_menu screen was set up like this:
screen game_menu(title="", scroll=viewport, yinitial=0.0)
and that's where the game was asking me to capitalize the viewport, so I did:
screen game_menu(title="", scroll=Viewport, yinitial=0.0)
and that fixed it. That was just the pointer I needed.
---------------------------------------------------------------------------------------------------
Now for my second problem: When trying to open the help menu window specifically using a controller, I am getting this error:
I'm sorry, but an uncaught exception occurred.
While running game code:
File "renpy/display/render.pyx", line 494, in renpy.display.render.render_screen
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/render.pyx", line 320, in renpy.display.render.render_for_size
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "game/01_high priority/01_controller_cdsl.rpy", line 808, in render
self.reset_child()
~~~~~~~~~~~~~~~~^^
File "game/01_high priority/01_controller_cdsl.rpy", line 791, in reset_child
self.set_saved_icon()
~~~~~~~~~~~~~~~~~~~^^
File "game/01_high priority/01_controller_cdsl.rpy", line 798, in set_saved_icon
self.saved_icon = self.get_icon(self.suffix, self.icon_only)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "game/01_high priority/01_controller_cdsl.rpy", line 822, in get_icon
event = pad_config.get_event(self.pad_event)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
File "game/backend/controller_support/controller_functions.rpy", line 121, in get_event
events = persistent.pad_bindings[event]
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
KeyError: None
-- Full Traceback ------------------------------------------------------------
Traceback (most recent call last):
File "renpy/common/_layout/screen_main_menu.rpym", line 28, in script
python hide:
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/_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 "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 2833, in interact_core
self.draw_screen(root_widget, fullscreen_video, (not fullscreen_video) or video_frame_drawn)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/core.py", line 1279, in draw_screen
surftree = renpy.display.render.render_screen(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
root_widget,
^^^^^^^^^^^^
renpy.config.screen_width,
^^^^^^^^^^^^^^^^^^^^^^^^^^
renpy.config.screen_height,
^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "renpy/display/render.pyx", line 494, in renpy.display.render.render_screen
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/layout.py", line 896, in render
surf = render(child, width, height, cst, cat)
~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/transition.py", line 375, in render
top = render(self.new_widget, width, height, st, at)
~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/layout.py", line 896, in render
surf = render(child, width, height, cst, cat)
~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/layout.py", line 896, in render
surf = render(child, width, height, cst, cat)
~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/screen.py", line 767, in render
child = renpy.display.render.render(self.child, w, h, st, at)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/layout.py", line 896, in render
surf = render(child, width, height, cst, cat)
~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/layout.py", line 1444, in render
surf = render(child, width - cxmargin - cxpadding, height - cymargin - cypadding, st, at)
~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/layout.py", line 1104, in render
surf = render(d, rw, height - y, cst, cat)
~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/layout.py", line 1444, in render
surf = render(child, width - cxmargin - cxpadding, height - cymargin - cypadding, st, at)
~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/layout.py", line 1955, in render
cwidth, cheight = sizeit("c", width, height, 0, 0)
~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/layout.py", line 1952, in sizeit
rend = renpy.display.render.render_for_size(pos_d[pos], width, height, st, at)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/render.pyx", line 320, in renpy.display.render.render_for_size
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/viewport.py", line 283, in render
surf = renpy.display.render.render(self.child, child_width, child_height, st, at)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/layout.py", line 1159, in render
surf = render(d, width - x, rh, cst, cat)
~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/layout.py", line 1159, in render
surf = render(d, width - x, rh, cst, cat)
~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "renpy/display/layout.py", line 1104, in render
surf = render(d, rw, height - y, cst, cat)
~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/render.pyx", line 170, in renpy.display.render.render
File "renpy/display/render.pyx", line 267, in renpy.display.render.render
File "game/01_high priority/01_controller_cdsl.rpy", line 808, in render
self.reset_child()
~~~~~~~~~~~~~~~~^^
File "game/01_high priority/01_controller_cdsl.rpy", line 791, in reset_child
self.set_saved_icon()
~~~~~~~~~~~~~~~~~~~^^
File "game/01_high priority/01_controller_cdsl.rpy", line 798, in set_saved_icon
self.saved_icon = self.get_icon(self.suffix, self.icon_only)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "game/01_high priority/01_controller_cdsl.rpy", line 822, in get_icon
event = pad_config.get_event(self.pad_event)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
File "game/backend/controller_support/controller_functions.rpy", line 121, in get_event
events = persistent.pad_bindings[event]
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
KeyError: None This error notably does not appear when navigating to the help screen using mouse or keyboard, using these methods shows the help window just fine, it only throws this error when using a controller to try and open the help window. I should also note that I have the keybind images from the controller_ui folder visually displayed on the help screen, in case that might be relevant.


