Gain of Life: A weight gain life simulator [v0.51.1]

I’m sorry but this update is full of bugs. I get this happens but it’s very expensive and now apparently (haven’t played since 0.47) I need to subscribe to be able to play? I’m not trying to be harsh but was this version even tested for the amount you’re asking for?

Every few screens the error screen pops up. Also the college trip with Chelsea happened on Day 2 - I then rolled back and didn’t go to uni that day and tried another day, still happened. There were references about my character gaining weight, Chelsea offering her clothes etc. when it was Day 3.

I was able to pass all the exams and finish uni without going to a single class.

Below is an example when I try to approach the counter girl at the first FOOD Club thing, a chain of 3 error messages which I cannot get past. There were loads of others throughout the entire game, the post would be a mile long if I posted all of them. But it makes it unplayable.

I'm sorry, but an uncaught exception occurred.

While running game code:
  File "game/src/places/home/menu/homeMain.rpy", line 4, in script call
    call homeMain
  File "game/src/places/home/menu/homeMain.rpy", line 4, in script call
    call homeMain
  File "game/src/places/home/menu/homeMain.rpy", line 4, in script call
    call homeMain
  [Previous line repeated 6 more times]
  File "game/src/places/home/menu/homeMain.rpy", line 63, in script call
    call town
  File "game/src/places/town/town.rpy", line 16, in script call
    call townTraveled
  File "game/src/places/town/town.rpy", line 100, in script call
    call foodClub()
  File "game/src/places/food-club/foodClub.rpy", line 127, in script call
    call foodClubAction
  File "game/src/places/food-club/foodClubAction.rpy", line 25, in script call
    call foodClubCafeteria
  File "game/src/places/food-club/cafeteria/cafeteria.rpy", line 17, in script call
    call foodCafeteriaCounter
  File "game/src/places/food-club/cafeteria/cafeteriaCounter.rpy", line 28, in script call
    call quickshop(QuickshopConfig(getCafeteriaMenu(), "orange", rows=2))
  File "game/src/ui/quickshop/quickshop.rpy", line 3, in script
    label quickshop(qs_config):
  File "game/src/places/food-club/cafeteria/cafeteriaCounter.rpy", line 28, in <module>
    call quickshop(QuickshopConfig(getCafeteriaMenu(), "orange", rows=2))
  File "game/src/places/food-club/cafeteria/cafeteriaCounter.rpy", line 11, in getCafeteriaMenu
    if(FoodClubPolicies.CAFETERIA_DONUTS in active_policies and FoodClubPolicies.CAFETERIA_DONUTS_FREE not in active_policies):
AttributeError: type object 'FoodClubPolicies' has no attribute 'CAFETERIA_DONUTS'

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

Full traceback:
  File "game/src/places/home/menu/homeMain.rpy", line 4, in script call
    call homeMain
  File "game/src/places/home/menu/homeMain.rpy", line 4, in script call
    call homeMain
  File "game/src/places/home/menu/homeMain.rpy", line 4, in script call
    call homeMain
  [Previous line repeated 6 more times]
  File "game/src/places/home/menu/homeMain.rpy", line 63, in script call
    call town
  File "game/src/places/town/town.rpy", line 16, in script call
    call townTraveled
  File "game/src/places/town/town.rpy", line 100, in script call
    call foodClub()
  File "game/src/places/food-club/foodClub.rpy", line 127, in script call
    call foodClubAction
  File "game/src/places/food-club/foodClubAction.rpy", line 25, in script call
    call foodClubCafeteria
  File "game/src/places/food-club/cafeteria/cafeteria.rpy", line 17, in script call
    call foodCafeteriaCounter
  File "game/src/places/food-club/cafeteria/cafeteriaCounter.rpy", line 28, in script call
    call quickshop(QuickshopConfig(getCafeteriaMenu(), "orange", rows=2))
  File "game/src/ui/quickshop/quickshop.rpy", line 3, in script
    label quickshop(qs_config):
  File "C:\Users\[name]\Downloads\misc\GainOfLife-v0.51.0-pc\renpy\ast.py", line 1419, in execute
    args, kwargs = self.arguments.evaluate()
  File "C:\Users\[name]\Downloads\misc\GainOfLife-v0.51.0-pc\renpy\parameter.py", line 503, in evaluate
    value = renpy.python.py_eval(v, locals=scope)
  File "C:\Users\[name]\Downloads\misc\GainOfLife-v0.51.0-pc\renpy\python.py", line 1209, in py_eval
    return py_eval_bytecode(code, globals, locals)
  File "C:\Users\[name]\Downloads\misc\GainOfLife-v0.51.0-pc\renpy\python.py", line 1202, in py_eval_bytecode
    return eval(bytecode, globals, locals)
  File "game/src/places/food-club/cafeteria/cafeteriaCounter.rpy", line 28, in <module>
    call quickshop(QuickshopConfig(getCafeteriaMenu(), "orange", rows=2))
  File "game/src/places/food-club/cafeteria/cafeteriaCounter.rpy", line 11, in getCafeteriaMenu
    if(FoodClubPolicies.CAFETERIA_DONUTS in active_policies and FoodClubPolicies.CAFETERIA_DONUTS_FREE not in active_policies):
AttributeError: type object 'FoodClubPolicies' has no attribute 'CAFETERIA_DONUTS'

Windows-10-10.0.22621 AMD64
Ren'Py 8.3.0.24082114
Gain of Life v0.51.0
Tue Jul 22 21:02:19 2025
I'm sorry, but an uncaught exception occurred.

While running game code:
  File "game/src/places/home/menu/homeMain.rpy", line 4, in script call
    call homeMain
  File "game/src/places/home/menu/homeMain.rpy", line 4, in script call
    call homeMain
  File "game/src/places/home/menu/homeMain.rpy", line 4, in script call
    call homeMain
  [Previous line repeated 6 more times]
  File "game/src/places/home/menu/homeMain.rpy", line 63, in script call
    call town
  File "game/src/places/town/town.rpy", line 16, in script call
    call townTraveled
  File "game/src/places/town/town.rpy", line 100, in script call
    call foodClub()
  File "game/src/places/food-club/foodClub.rpy", line 127, in script call
    call foodClubAction
  File "game/src/places/food-club/foodClubAction.rpy", line 25, in script call
    call foodClubCafeteria
  File "game/src/places/food-club/cafeteria/cafeteria.rpy", line 17, in script call
    call foodCafeteriaCounter
  File "game/src/places/food-club/cafeteria/cafeteriaCounter.rpy", line 28, in script call
    call quickshop(QuickshopConfig(getCafeteriaMenu(), "orange", rows=2))
  File "game/src/ui/quickshop/quickshop.rpy", line 4, in script
    $ _quickshop_config = qs_config
  File "game/src/ui/quickshop/quickshop.rpy", line 4, in <module>
    $ _quickshop_config = qs_config
NameError: name 'qs_config' is not defined

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

Full traceback:
  File "game/src/places/home/menu/homeMain.rpy", line 4, in script call
    call homeMain
  File "game/src/places/home/menu/homeMain.rpy", line 4, in script call
    call homeMain
  File "game/src/places/home/menu/homeMain.rpy", line 4, in script call
    call homeMain
  [Previous line repeated 6 more times]
  File "game/src/places/home/menu/homeMain.rpy", line 63, in script call
    call town
  File "game/src/places/town/town.rpy", line 16, in script call
    call townTraveled
  File "game/src/places/town/town.rpy", line 100, in script call
    call foodClub()
  File "game/src/places/food-club/foodClub.rpy", line 127, in script call
    call foodClubAction
  File "game/src/places/food-club/foodClubAction.rpy", line 25, in script call
    call foodClubCafeteria
  File "game/src/places/food-club/cafeteria/cafeteria.rpy", line 17, in script call
    call foodCafeteriaCounter
  File "game/src/places/food-club/cafeteria/cafeteriaCounter.rpy", line 28, in script call
    call quickshop(QuickshopConfig(getCafeteriaMenu(), "orange", rows=2))
  File "game/src/ui/quickshop/quickshop.rpy", line 4, in script
    $ _quickshop_config = qs_config
  File "C:\Users\[name]\Downloads\misc\GainOfLife-v0.51.0-pc\renpy\ast.py", line 821, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "C:\Users\[name]\Downloads\misc\GainOfLife-v0.51.0-pc\renpy\python.py", line 1178, in py_exec_bytecode
    exec(bytecode, globals, locals)
  File "game/src/ui/quickshop/quickshop.rpy", line 4, in <module>
    $ _quickshop_config = qs_config
NameError: name 'qs_config' is not defined

Windows-10-10.0.22621 AMD64
Ren'Py 8.3.0.24082114
Gain of Life v0.51.0
Tue Jul 22 21:07:11 2025
I'm sorry, but an uncaught exception occurred.

While running game code:
  File "game/src/places/home/menu/homeMain.rpy", line 4, in script call
    call homeMain
  File "game/src/places/home/menu/homeMain.rpy", line 4, in script call
    call homeMain
  File "game/src/places/home/menu/homeMain.rpy", line 4, in script call
    call homeMain
  [Previous line repeated 6 more times]
  File "game/src/places/home/menu/homeMain.rpy", line 63, in script call
    call town
  File "game/src/places/town/town.rpy", line 16, in script call
    call townTraveled
  File "game/src/places/town/town.rpy", line 100, in script call
    call foodClub()
  File "game/src/places/food-club/foodClub.rpy", line 127, in script call
    call foodClubAction
  File "game/src/places/food-club/foodClubAction.rpy", line 25, in script call
    call foodClubCafeteria
  File "game/src/places/food-club/cafeteria/cafeteria.rpy", line 17, in script call
    call foodCafeteriaCounter
  File "game/src/places/food-club/cafeteria/cafeteriaCounter.rpy", line 28, in script call
    call quickshop(QuickshopConfig(getCafeteriaMenu(), "orange", rows=2))
  File "game/src/ui/quickshop/quickshop.rpy", line 6, in script call
    call quickshop_store
  File "game/src/ui/quickshop/quickshop.rpy", line 14, in script
    $ purchasedItem = ui.interact()
  File "game/src/ui/quickshop/quickshop.rpy", line 14, in <module>
    $ purchasedItem = ui.interact()
  File "game/src/ui/quickshop/screens/main.rpy", line 3, in execute
    screen quickshop_ui(qs_config):
  File "game/src/ui/quickshop/screens/main.rpy", line 3, in execute
    screen quickshop_ui(qs_config):
  File "game/src/ui/quickshop/screens/main.rpy", line 18, in execute
    vbox:
  File "game/src/ui/quickshop/screens/main.rpy", line 21, in execute
    hbox:
  File "game/src/ui/quickshop/screens/main.rpy", line 26, in execute
    hbox:
  File "game/src/ui/quickshop/screens/main.rpy", line 30, in execute
    viewport id "quickshopScroll":
  File "game/src/ui/quickshop/screens/main.rpy", line 35, in execute
    vbox:
  File "game/src/ui/quickshop/screens/main.rpy", line 36, in execute
    for row in range(rows):
  File "game/src/ui/quickshop/screens/main.rpy", line 37, in execute
    hbox:
  File "game/src/ui/quickshop/screens/main.rpy", line 38, in execute
    for i in range(items_per_row):
  File "game/src/ui/quickshop/screens/main.rpy", line 40, in execute
    if index < items:
  File "game/src/ui/quickshop/screens/main.rpy", line 41, in execute
    use quickshop_item(qs_config.items[index])
  File "game/src/ui/quickshop/screens/button-item.rpy", line 25, in execute
    screen quickshop_item(item):
  File "game/src/ui/quickshop/screens/button-item.rpy", line 25, in execute
    screen quickshop_item(item):
  File "game/src/ui/quickshop/screens/button-item.rpy", line 30, in execute
    fixed:
  File "game/src/ui/quickshop/screens/button-item.rpy", line 33, in execute
    use quickshop_item_button(item, qs_transform)
  File "game/src/ui/quickshop/screens/button-item.rpy", line 16, in execute
    screen quickshop_item_button(item, qs_transform):
  File "game/src/ui/quickshop/screens/button-item.rpy", line 16, in execute
    screen quickshop_item_button(item, qs_transform):
  File "game/src/ui/quickshop/screens/button-item.rpy", line 17, in execute
    button:
  File "game/src/ui/quickshop/screens/button-item.rpy", line 23, in execute
    use quickshop_item_design(item)
  File "game/src/ui/quickshop/screens/button-item.rpy", line 1, in execute
    screen quickshop_item_design(item):
  File "game/src/ui/quickshop/screens/button-item.rpy", line 1, in execute
    screen quickshop_item_design(item):
  File "game/src/ui/quickshop/screens/button-item.rpy", line 2, in execute
    vbox:
  File "game/src/ui/quickshop/screens/button-item.rpy", line 3, in execute
    fixed:
  File "game/src/ui/quickshop/screens/button-item.rpy", line 4, in execute
    image "UI/quickshop/" + str(qs_config.button_color) + ".png":
  File "game/src/ui/quickshop/screens/button-item.rpy", line 4, in <module>
    image "UI/quickshop/" + str(qs_config.button_color) + ".png":
NameError: name 'qs_config' is not defined

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

Full traceback:
  File "game/src/places/home/menu/homeMain.rpy", line 4, in script call
    call homeMain
  File "game/src/places/home/menu/homeMain.rpy", line 4, in script call
    call homeMain
  File "game/src/places/home/menu/homeMain.rpy", line 4, in script call
    call homeMain
  [Previous line repeated 6 more times]
  File "game/src/places/home/menu/homeMain.rpy", line 63, in script call
    call town
  File "game/src/places/town/town.rpy", line 16, in script call
    call townTraveled
  File "game/src/places/town/town.rpy", line 100, in script call
    call foodClub()
  File "game/src/places/food-club/foodClub.rpy", line 127, in script call
    call foodClubAction
  File "game/src/places/food-club/foodClubAction.rpy", line 25, in script call
    call foodClubCafeteria
  File "game/src/places/food-club/cafeteria/cafeteria.rpy", line 17, in script call
    call foodCafeteriaCounter
  File "game/src/places/food-club/cafeteria/cafeteriaCounter.rpy", line 28, in script call
    call quickshop(QuickshopConfig(getCafeteriaMenu(), "orange", rows=2))
  File "game/src/ui/quickshop/quickshop.rpy", line 6, in script call
    call quickshop_store
  File "game/src/ui/quickshop/quickshop.rpy", line 14, in script
    $ purchasedItem = ui.interact()
  File "C:\Users\[name]\Downloads\misc\GainOfLife-v0.51.0-pc\renpy\ast.py", line 821, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "C:\Users\[name]\Downloads\misc\GainOfLife-v0.51.0-pc\renpy\python.py", line 1178, in py_exec_bytecode
    exec(bytecode, globals, locals)
  File "game/src/ui/quickshop/quickshop.rpy", line 14, in <module>
    $ purchasedItem = ui.interact()
  File "C:\Users\[name]\Downloads\misc\GainOfLife-v0.51.0-pc\renpy\ui.py", line 301, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "C:\Users\[name]\Downloads\misc\GainOfLife-v0.51.0-pc\renpy\display\core.py", line 2188, in interact
    repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, pause=pause, pause_start=pause_start, pause_modal=pause_modal, **kwargs) # type: ignore
  File "C:\Users\[name]\Downloads\misc\GainOfLife-v0.51.0-pc\renpy\display\core.py", line 2705, in interact_core
    root_widget.visit_all(lambda d : d.per_interact())
  File "C:\Users\[name]\Downloads\misc\GainOfLife-v0.51.0-pc\renpy\display\displayable.py", line 434, in visit_all
    d.visit_all(callback, seen)
  File "C:\Users\[name]\Downloads\misc\GainOfLife-v0.51.0-pc\renpy\display\displayable.py", line 434, in visit_all
    d.visit_all(callback, seen)
  File "C:\Users\[name]\Downloads\misc\GainOfLife-v0.51.0-pc\renpy\display\displayable.py", line 434, in visit_all
    d.visit_all(callback, seen)
  File "C:\Users\[name]\Downloads\misc\GainOfLife-v0.51.0-pc\renpy\display\screen.py", line 480, in visit_all
    callback(self)
  File "C:\Users\[name]\Downloads\misc\GainOfLife-v0.51.0-pc\renpy\display\core.py", line 2705, in <lambda>
    root_widget.visit_all(lambda d : d.per_interact())
  File "C:\Users\[name]\Downloads\misc\GainOfLife-v0.51.0-pc\renpy\display\screen.py", line 491, in per_interact
    self.update()
  File "C:\Users\[name]\Downloads\misc\GainOfLife-v0.51.0-pc\renpy\display\screen.py", line 697, in update
    self.screen.function(**self.scope)
  File "game/src/ui/quickshop/screens/main.rpy", line 3, in execute
    screen quickshop_ui(qs_config):
  File "game/src/ui/quickshop/screens/main.rpy", line 3, in execute
    screen quickshop_ui(qs_config):
  File "game/src/ui/quickshop/screens/main.rpy", line 18, in execute
    vbox:
  File "game/src/ui/quickshop/screens/main.rpy", line 21, in execute
    hbox:
  File "game/src/ui/quickshop/screens/main.rpy", line 26, in execute
    hbox:
  File "game/src/ui/quickshop/screens/main.rpy", line 30, in execute
    viewport id "quickshopScroll":
  File "game/src/ui/quickshop/screens/main.rpy", line 35, in execute
    vbox:
  File "game/src/ui/quickshop/screens/main.rpy", line 36, in execute
    for row in range(rows):
  File "game/src/ui/quickshop/screens/main.rpy", line 37, in execute
    hbox:
  File "game/src/ui/quickshop/screens/main.rpy", line 38, in execute
    for i in range(items_per_row):
  File "game/src/ui/quickshop/screens/main.rpy", line 40, in execute
    if index < items:
  File "game/src/ui/quickshop/screens/main.rpy", line 41, in execute
    use quickshop_item(qs_config.items[index])
  File "game/src/ui/quickshop/screens/button-item.rpy", line 25, in execute
    screen quickshop_item(item):
  File "game/src/ui/quickshop/screens/button-item.rpy", line 25, in execute
    screen quickshop_item(item):
  File "game/src/ui/quickshop/screens/button-item.rpy", line 30, in execute
    fixed:
  File "game/src/ui/quickshop/screens/button-item.rpy", line 33, in execute
    use quickshop_item_button(item, qs_transform)
  File "game/src/ui/quickshop/screens/button-item.rpy", line 16, in execute
    screen quickshop_item_button(item, qs_transform):
  File "game/src/ui/quickshop/screens/button-item.rpy", line 16, in execute
    screen quickshop_item_button(item, qs_transform):
  File "game/src/ui/quickshop/screens/button-item.rpy", line 17, in execute
    button:
  File "game/src/ui/quickshop/screens/button-item.rpy", line 23, in execute
    use quickshop_item_design(item)
  File "game/src/ui/quickshop/screens/button-item.rpy", line 1, in execute
    screen quickshop_item_design(item):
  File "game/src/ui/quickshop/screens/button-item.rpy", line 1, in execute
    screen quickshop_item_design(item):
  File "game/src/ui/quickshop/screens/button-item.rpy", line 2, in execute
    vbox:
  File "game/src/ui/quickshop/screens/button-item.rpy", line 3, in execute
    fixed:
  File "game/src/ui/quickshop/screens/button-item.rpy", line 4, in execute
    image "UI/quickshop/" + str(qs_config.button_color) + ".png":
  File "game/src/ui/quickshop/screens/button-item.rpy", line 4, in <module>
    image "UI/quickshop/" + str(qs_config.button_color) + ".png":
NameError: name 'qs_config' is not defined

Windows-10-10.0.22621 AMD64
Ren'Py 8.3.0.24082114
Gain of Life v0.51.0
Tue Jul 22 21:08:16 2025
1 Like

Appreciate it, thank you. Will get to fixing them right away. These bugs are from older versions.

Just uploaded bug v0.51.1 to Patreon containing several bug fixes.

1 Like

Have you fixed the one where eating or drinking brings up an error and drinks don’t fill up the thirst gauge?

I just released v0.52.2, which should fix the thirst problem too.

2 Likes

For some reason it wont let me open the macos free version. when i open it, it just says this application couldnt be opened. Does anybody know a fix for this??

Sorry such a late reply to something said months ago, but i figure i would make you aware of this:

If your not aware if when you go to build the the game, if you have already precompiled the byte code .rpyc files you can temporarily remove the .rpy files. This has the effect of when building that the rpy files are not distributed with the game only the byte code .rpyc files. This means no one can change the .rpy files because you will not be distributing them. also without all of the .rpy files, renpy won’t recompile the .rpy files and just run off the existing .rpyc byte code files.

This would then allow you to build in a game verification system. Now just like every c++ and other language out there you have to deal with people decompiling your binary byte code and trying to decipher what and where your drm is and bypass it , and recompile. Generaly speaking if your going to do this you would want your sript files to form an big blob of byte code so script archive is preferable to help hide which files the byte code relevant to the drm is in.

Point is you don’t have to release your source code with renpy games many renp’y games do this to keep the code a secret

General build workflow at time of release goes something like: wipe all .rpyc files → lauch game to make renpy recompile all .rpy files into .rpyc → remove .rpy files → build for release without .rpy files in the game directory → restore .rpy files to continue working on game

Highly suggest using something like git locally to commit changes before doing this such that you ccan pull all your files back in the case something goes wrong.