Forks: A Weight Gain Visual Novel (Cancelled, all assets posted for everyone)

The images folder seems to be missing in the games files, Idk if that is on purpose to prevent spoilers but I believe its causing errors. For instance during spring break when Alex talks to a fat and skinny version of herself the image of her at her fatter version is no longer there and is only a floating face. Also while browsing the extras in the home screen this would appear anytime I tried to look at Alex’s different outfits in her last weight stage.

2 Likes

Had the same bug, but with Morgan’s top weight as well as Alex’s.

Also missing the last CG in the current demo, and I’m at a bit of a loss as to how to unlock it. If anyone has any advice, I’d appreciate it.

I assume the missing images are intentional? The only bug would be that the game throws a full screen error like that instead of just saying the image doesn’t exist normally in game?

In this case, I don’t think it’s a missing image thing.

We see the top unlocked weight in game, so they aren’t hidden images at all. I suspect it is just a bug. Thinking about it, I may go back and check if the same happens with Rea and Grace, as it may be a max weight thing regardless of character.

As for the floating eyes mentioned above by @Pagsram, I wonder if it’s just an unfinished image as opposed to a full error.

I’m trying to launch the new build on Mac, but when I try to open it, it immediately closes.

1 Like

You might have to look at your security settings for unsigned apps if you haven’t already. I might take a peek later and see if I’m having the same error, though.

The phone ui has random weird lines through it, likely unintended, no idea what causes it.

They’re subtle white lines, they don’t ruin it, but well, like I said I doubt it’s intentional which makes it a bug.

Oh, also, so far I haven’t been able to skip already seen text, maybe all the text is counting as new scenes due to the UI changes? But yeah my persistent file from last year’s version isn’t registering any previously read text (at least so far. I’m replaying from the start but I’ve gotten far enough that I’m hitting scenes I definitely read before, but maybe minor proofreading edits is declaring them new?)

Nothing shows up when I do. The last version works fine, so I’m not sure what to do.

So is Alex leaving the clothing store the end of the content on Hannah’s route for now or is there a bug? Cause that was a very abrupt cut to the title screen lol.

3 Likes

From what I can tell this seems to be an issue with the way renpy is packaging the app file, but I managed to work around it.

Unpack the entire .zip file, then open the inside of the Forks .app file from Finder rather than running it as an app. Find the darwin-x86_64 folder (inside /Contents/MacOS/lib/), and copy it back into lib folder from the extracted zip file. Open the Terminal app inside the main extracted folder (with the app file, the Windows exe, the game and lib libraries, etc.) and start the game with the ./ForksTeaser014d.sh command (you may need to run chmod +x ./ForksTeaser014d.sh first). It might take a minute or two to load, but the game should start and run fine. Unfortunately you’ll have to keep running it from the .sh command rather than the app file.

1 Like

It keeps giving me different stuff that says it can’t be opened from a verified developer. I keep clicking “Allow Anyway”, but it keeps giving me different stuff to verify

It seems to be on purpose since the other routes end pretty abruptly too

Hi, finally made an account in this place so I can do more than lurk around in certain topics
so uh
Is it just me or is Rea a lot less likable in Hannah’s route? Like, I guess light teasing of being chumby is fine but stuff like purposely tanking the quiz bowl? Idk she kinda gives bad vibes

2 Likes

Checking back in! I’m glad so many of you decided to give the build a try (136 clicks on a stealth upload! :partying_face:), and even better is that it seems to (mostly) work! Let’s go through replies:

@smugdotexe Thanks! Hope you got some good sleep and enjoyed the demo!

@Hello213 Thanks for letting me know, I’m glad it works in Linux!

@Pagsram Yes, this time I encrypted the images like you’re encouraged to do with Ren’Py releases (I’d forgotten to do so with the current demo), but that’s thankfully not the cause for the issues. The developer build I work in has everything, and part of making public builds is ripping out what I don’t want players to see yet. I’d accidentally removed that fatter Alex along with her other outfits at her highest weight stage. While I didn’t want to show off her unseen outfits early, including them should fix the problem. Both of these were on me :sweat_smile:

@LeftHandManGary Same thing with Morgan! She’s got some other outfits at that weight and I hadn’t wanted to include them yet. The easy fix will be to just add them back in. That missing CG is also a placeholder for one of Toro’s upcoming two. You’ll see and unlock it properly in the finished release (he worked on Mina today).

@namad We’ve had this issue for ages, and our programmer’s at a loss for what’s happening. It may just be something with Ren’Py itself, although messing with the resolution can fix it. Behold:


I just wish it did that by default :grimacing:

@Alexr244 , @jimbobvii Thanks for the help! I think the issue may come from the version of Ren’Py Forks is developed in, 7.3.5. It looks like something in MacOS changed which required a fix from Ren’Py, and that fix isn’t in 7.3.5. Unfortunately, using an updated version of Ren’Py breaks several things, notably Alex’s weight graph. The plan had been to continue using 7.3.5, and I’m not tech savvy enough to update the code myself. Our programmer’s been extremely busy with their own professional life, but was kind enough to code tools which make implementing his features easy. Those all seem to break in updated versions :dizzy_face:

@Simbionis It’s indeed the end of the current content! It’s definitely more abrupt than the old demo, but I had no idea when I’d narratively get to a better stopping point and everything else (sans art) was ready to go. Suddenly having to move to my parents’ and Toro being able to make new art meant this was the best time to update.

And if you want really abrupt, try Rea’s new content :rofl:! I almost end it mid-sentence, I’m sorry to everyone who was hoping for more from her :confounded:

@2bit Hi, thanks for trying the new demo :grinning:. I was curious how players would take that, but she’s got her reasons for acting the way she does and I tried dropping hints as to what they might be. Whether or not I can make them good reasons will have to be seen in her route :sweat_smile:

I’m hoping each route can give you a different (and by itself, incomplete) perspective on each character. This bit’s part of hers!

Looks like the only significant issues are the missing images, which will be fixed in the finished release! Since there hasn’t been anything major reported yet (aside from MacOS issues which may be out of my control), I’m not going to fix this version, and instead wait until the art’s finished.

12 Likes

Finally decided to play through this after telling myself not to do that so uh… that’s a story

Anyways after a few hours of poking around the story, I gotta say this was a pretty nice showcase on what’s to come. I still wasn’t expecting Hannah to get the next update but still her story is pretty nice on what we got and seems to build up that conflict from before.

Rea route seems to be going places as well and I have a feeling on where it’s gonna go. Hannah better watch out sooner or later or she’s gonna start gaining the consequence soon. And the ending seems like a alright note to stop at and start with the next update.

And Grace is Grace. not much I can say other than it’s similar case with Rea for the ending

My personal favorite scene though, if it wasn’t obvious from previous messages was

Alex’s and Morgan chat in Hannah route for two reasons. First off was Morgan new sprite which is amazing imo. Seems like she’s gonna be a all rounder like Alex unless her next size proves me otherwise.Second off is pretty why I like Morgan in general, She’s just comforting to Alex and her journey, not to mention her going on a similar route. Wouldn’t mind a cg of the two them stuffing their faces together or just more Morgan content and what not in general, but that’s a personal wish and not valid criticism.

Anyways the only thing I could truly ask for is maybe a few more scene with Rea and Hannah arguing with increasing negative and results to make the last two conflicts feel more like a progress. And maybe a extra Hannah stage due to a line she says in her route.These are also personal wishes but I just thought I could add that if you don’t mind.

Anyways that’s pretty much all I got say so I supossed I’m just gonna snoop around the game a bit more to see if there’s any weight sizes I missed. Thanks if you read this wall of text Tron really enjoyed this update so far

1 Like

Trying to rollback out of an error I actually crashed to desktop. Should be repeatable, play the game, go to the menu at some point, open up morgans outfits, play around with them and their sizes, almost right away you get an array out of bounds error, trying to rollback out of the error doesn’t work properly because you’re still out of bonds on the array for the variable for her size or whatever.

I'm sorry, but an uncaught exception occurred.

While running game code:
  File "renpy/common/00start.rpy", line 273, in script
    python:
  File "renpy/common/00start.rpy", line 273, in script
    python:
  File "renpy/common/00start.rpy", line 275, in <module>
    renpy.call_in_new_context(_restart[2])
  File "game/script.rpy", line 1488, in script
    call screen main_menu with Dissolve(0.5)
  File "game/script.rpy", line 1488, in script
    call screen main_menu with Dissolve(0.5)
  File "renpy/common/000statements.rpy", line 531, in execute_call_screen
    store._return = renpy.call_screen(name, *args, **kwargs)
  File "game/screens.rpy", line 1053, in execute
    screen sub_character(chrname):
  File "game/screens.rpy", line 1053, in execute
    screen sub_character(chrname):
  File "game/screens.rpy", line 1085, in execute
    hbox:
  File "game/screens.rpy", line 1088, in execute
    frame:
  File "game/screens.rpy", line 1092, in execute
    python:
  File "game/screens.rpy", line 1093, in <module>
    outfits = tierset[tier_i]['outfits']
IndexError: list index out of range

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

Full traceback:
  File "V:\ForksTeaser014d-014e-market\renpy\bootstrap.py", line 316, in bootstrap
    renpy.main.main()
  File "V:\ForksTeaser014d-014e-market\renpy\main.py", line 578, in main
    run(restart)
  File "V:\ForksTeaser014d-014e-market\renpy\main.py", line 143, in run
    renpy.execution.run_context(True)
  File "V:\ForksTeaser014d-014e-market\renpy\execution.py", line 908, in run_context
    context.run()
  File "renpy/common/00start.rpy", line 273, in script
    python:
  File "renpy/common/00start.rpy", line 273, in script
    python:
  File "V:\ForksTeaser014d-014e-market\renpy\ast.py", line 914, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "V:\ForksTeaser014d-014e-market\renpy\python.py", line 2028, in py_exec_bytecode
    exec bytecode in globals, locals
  File "renpy/common/00start.rpy", line 275, in <module>
    renpy.call_in_new_context(_restart[2])
  File "V:\ForksTeaser014d-014e-market\renpy\game.py", line 332, in call_in_new_context
    return renpy.execution.run_context(False)
  File "V:\ForksTeaser014d-014e-market\renpy\execution.py", line 908, in run_context
    context.run()
  File "game/script.rpy", line 1488, in script
    call screen main_menu with Dissolve(0.5)
  File "game/script.rpy", line 1488, in script
    call screen main_menu with Dissolve(0.5)
  File "V:\ForksTeaser014d-014e-market\renpy\ast.py", line 1949, in execute
    self.call("execute")
  File "V:\ForksTeaser014d-014e-market\renpy\ast.py", line 1937, in call
    return renpy.statements.call(method, parsed, *args, **kwargs)
  File "V:\ForksTeaser014d-014e-market\renpy\statements.py", line 277, in call
    return method(parsed, *args, **kwargs)
  File "renpy/common/000statements.rpy", line 531, in execute_call_screen
    store._return = renpy.call_screen(name, *args, **kwargs)
  File "V:\ForksTeaser014d-014e-market\renpy\exports.py", line 2905, in call_screen
    rv = renpy.ui.interact(mouse="screen", type="screen", roll_forward=roll_forward)
  File "V:\ForksTeaser014d-014e-market\renpy\ui.py", line 297, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "V:\ForksTeaser014d-014e-market\renpy\display\core.py", line 2702, in interact
    repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, **kwargs)
  File "V:\ForksTeaser014d-014e-market\renpy\display\core.py", line 3094, in interact_core
    root_widget.visit_all(lambda i : i.per_interact())
  File "V:\ForksTeaser014d-014e-market\renpy\display\core.py", line 541, in visit_all
    d.visit_all(callback, seen)
  File "V:\ForksTeaser014d-014e-market\renpy\display\core.py", line 541, in visit_all
    d.visit_all(callback, seen)
  File "V:\ForksTeaser014d-014e-market\renpy\display\core.py", line 541, in visit_all
    d.visit_all(callback, seen)
  File "V:\ForksTeaser014d-014e-market\renpy\display\core.py", line 541, in visit_all
    d.visit_all(callback, seen)
  File "V:\ForksTeaser014d-014e-market\renpy\display\screen.py", line 430, in visit_all
    callback(self)
  File "V:\ForksTeaser014d-014e-market\renpy\display\core.py", line 3094, in <lambda>
    root_widget.visit_all(lambda i : i.per_interact())
  File "V:\ForksTeaser014d-014e-market\renpy\display\screen.py", line 440, in per_interact
    self.update()
  File "V:\ForksTeaser014d-014e-market\renpy\display\screen.py", line 625, in update
    self.screen.function(**self.scope)
  File "game/screens.rpy", line 1053, in execute
    screen sub_character(chrname):
  File "game/screens.rpy", line 1053, in execute
    screen sub_character(chrname):
  File "game/screens.rpy", line 1085, in execute
    hbox:
  File "game/screens.rpy", line 1088, in execute
    frame:
  File "game/screens.rpy", line 1092, in execute
    python:
  File "game/screens.rpy", line 1093, in <module>
    outfits = tierset[tier_i]['outfits']
  File "V:\ForksTeaser014d-014e-market\renpy\python.py", line 847, in __getitem__
    rv = list.__getitem__(self, index)
IndexError: list index out of range

Windows-8-6.2.9200
Ren'Py 7.3.5.606
Forks Teaser 014e
Sun Feb 13 06:45:18 2022

not sure if the dump log text matters. in theory with all the art in this wouldn’t be a problem, but well, even if all the art was in, a variable can still target art that doesn’t exist :slight_smile: missing art shouldn’t result in a crash to desktop, ideally you’d get the error like above that pagsram mentioned (missing image, rollback or ignore or whatever and move on.)

edit: note the quoted text is the log file on crash, not the in game error text originally shown on the error, the original error I described above as an array out of bounds exception.

edit2: to be clear, I was trying to get errors when this happened, so it’s not a huge deal and most people won’t see it, or mind, because in order to get this error you have to be hoping to find and see spoilers of art that’s not in the game. But well, if the art existed and was in the game, this error would’ve still happened because it wasn’t a missing image error but a variable error (I assume targeting a size of morgan that doesn’t exist at all art or no art.)

edit3: This issue is actually a tiny bit worse than I thought.

The error actually appears to alter the persistent file in such a way as to move the slider on the character’s weight on the extras menu.

New save file, deleted persistent file (both in game directory and in user settings appdata roaming), start fresh, rapidly play through the first two weeks, go to the title screen, this time choose hannah, scroll her slider from far left to far right. Same error. Close program. Re-open program. hannah’s slider is on the far right (actually when this error happens everyone’s slider except alex’s is broken in the same way it seems) instead of the far left like it presumably should be. Since the extras character section is a menu option (not a game scene), that means changes to it are saved in the persistent file.

So I think what’s happening is the player moves the scrollbar, this moves the variable for the slider, then tries to access an out of bounds array selection for progression (what the slider controls). Then the error happens. So the position of the slider is moved, saved, then the game tries to act on the change in the slider and fails to do so.

TL;DR It’s possible that after you fix this bug players might have to delete their persistent file in order to use the slider to access the art once that art is in the game. Alternatively this is irrelevant because ideally you’ll fix the bug by writing code of some sort such that if say 5 is maximum progression size in game for a given character you can do some sort of if statement in that menu that’s like
if indexvariable => 5
$ indexvariable = 5

edit: given the default of setting the variable to 0 to avoid errors this should probably also be = 0 not a made up = 5 :slight_smile:

Which should in theory both fix the bug entirely and potentially avoid any problems with the persistent file? Although you’ll probably want to make it so that when the extras menu is opened every single time it’s opened the variables controlling all the sliders are set to far left (probably index values of either 0or1 I didn’t check the code myself.)

This will avoid players needing to delete their persistent file (in any fringe case where any of this would matter at all.)

edit4:

here’s the in game error text before rolling back or closing the game or crashing:

[code]
I'm sorry, but an uncaught exception occurred.

While running game code:
  File "game/script.rpy", line 1488, in script
    call screen main_menu with Dissolve(0.5)
  File "renpy/common/000statements.rpy", line 531, in execute_call_screen
    store._return = renpy.call_screen(name, *args, **kwargs)
  File "game/screens.rpy", line 1053, in execute
    screen sub_character(chrname):
  File "game/screens.rpy", line 1053, in execute
    screen sub_character(chrname):
  File "game/screens.rpy", line 1085, in execute
    hbox:
  File "game/screens.rpy", line 1088, in execute
    frame:
  File "game/screens.rpy", line 1092, in execute
    python:
  File "game/screens.rpy", line 1093, in <module>
    outfits = tierset[tier_i]['outfits']
IndexError: list index out of range

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

Full traceback:
  File "game/script.rpy", line 1488, in script
    call screen main_menu with Dissolve(0.5)
  File "V:\ForksTeaser014d-014e-market\renpy\ast.py", line 1949, in execute
    self.call("execute")
  File "V:\ForksTeaser014d-014e-market\renpy\ast.py", line 1937, in call
    return renpy.statements.call(method, parsed, *args, **kwargs)
  File "V:\ForksTeaser014d-014e-market\renpy\statements.py", line 277, in call
    return method(parsed, *args, **kwargs)
  File "renpy/common/000statements.rpy", line 531, in execute_call_screen
    store._return = renpy.call_screen(name, *args, **kwargs)
  File "V:\ForksTeaser014d-014e-market\renpy\exports.py", line 2905, in call_screen
    rv = renpy.ui.interact(mouse="screen", type="screen", roll_forward=roll_forward)
  File "V:\ForksTeaser014d-014e-market\renpy\ui.py", line 297, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "V:\ForksTeaser014d-014e-market\renpy\display\core.py", line 2702, in interact
    repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, **kwargs)
  File "V:\ForksTeaser014d-014e-market\renpy\display\core.py", line 3094, in interact_core
    root_widget.visit_all(lambda i : i.per_interact())
  File "V:\ForksTeaser014d-014e-market\renpy\display\core.py", line 541, in visit_all
    d.visit_all(callback, seen)
  File "V:\ForksTeaser014d-014e-market\renpy\display\core.py", line 541, in visit_all
    d.visit_all(callback, seen)
  File "V:\ForksTeaser014d-014e-market\renpy\display\core.py", line 541, in visit_all
    d.visit_all(callback, seen)
  File "V:\ForksTeaser014d-014e-market\renpy\display\core.py", line 541, in visit_all
    d.visit_all(callback, seen)
  File "V:\ForksTeaser014d-014e-market\renpy\display\screen.py", line 430, in visit_all
    callback(self)
  File "V:\ForksTeaser014d-014e-market\renpy\display\core.py", line 3094, in <lambda>
    root_widget.visit_all(lambda i : i.per_interact())
  File "V:\ForksTeaser014d-014e-market\renpy\display\screen.py", line 440, in per_interact
    self.update()
  File "V:\ForksTeaser014d-014e-market\renpy\display\screen.py", line 625, in update
    self.screen.function(**self.scope)
  File "game/screens.rpy", line 1053, in execute
    screen sub_character(chrname):
  File "game/screens.rpy", line 1053, in execute
    screen sub_character(chrname):
  File "game/screens.rpy", line 1085, in execute
    hbox:
  File "game/screens.rpy", line 1088, in execute
    frame:
  File "game/screens.rpy", line 1092, in execute
    python:
  File "game/screens.rpy", line 1093, in <module>
    outfits = tierset[tier_i]['outfits']
  File "V:\ForksTeaser014d-014e-market\renpy\python.py", line 847, in __getitem__
    rv = list.__getitem__(self, index)
IndexError: list index out of range

Windows-8-6.2.9200
Ren'Py 7.3.5.606
Forks Teaser 014e
Sun Feb 13 07:11:52 2022
[/code]

so when I say index variable up above? I mean

tier_i

edit5: looking at the code now it looks like safeguards are in place to ensure that if the index variable were undefined or something it gets set to 0 (this should mean the persistent file is fine, and once the bug is fixed players won’t have to delete it), but I guess there’s no such protection in place if tier_i is simply too big of a number? I guess? maybe? It’s tough for me to follow because it’s got a bunch of try’s and catches.

edit6: Keep in mind I’m not a pro at this code stuff, so I could be totally wrong, which was why I included both of the errors themselves for someone better at knowing ren’py than me to see :slight_smile: Also, if you’re not looking for hidden spoilers on art that isn’t even in the game? You won’t see this bug :slight_smile: So players can pretty easily avoid it if they want.

edit7: BTW, really loving all the new ui tweaks, they’re amazing, very big upgrade. Very dynamic conversations with the various window setups and they’re all very readable even with bad eyesight.

1 Like

@jimbobvii You are such a legend.

@Tron Once I was able to launch the new version on mac I loved the new content. I expected this update to be focused exclusively on Hannah, but the real MVP is Morgan. Every scene with her is the best and she is quickly becoming the best girl imo. Even though Morgan technically isn’t a main route I hope we continue to get more scenes where Morgan helps Alex grow both her belly and self-esteem. Their mutual growth is the most wholesome part of the game.
P.S.
Could you try going back to separate downloads for PC, MAC and Linux to see if that fixes the issue next build?

1 Like

Right Hidden what i thought of the current build of Forks in a summary

Summary

This new version so far is quite nice although some of the notes for characters do repeat themselves, Hannahs new route when taking also account Reas route is quite fun to see two perspective of two stubborn roomates with clashing personalities with how Self-controlled Hannah comes off while Rea is the wild fun yet selfish chaos trying to enjoy life for the thrills! even if it comes off as more of a negative around others now.

Reas Route itself is quite deacent with what is their clearly preparing the readers for the rollercoaster… of LOVE!- Cough-ehem sorry was their for the taking… anyway Reas route is quite interesting with how it shows part of the true Person Behind the energetic mask and the wild ride Alex is in for

Shame not much content for Grace so far (Strangely my most liked character despite her artistic vocabulary) though with what was their is a good snippet of how different it will go being Alexs Enabler and provider to help her on her way to get much much larger in other routes but also perhaps showing that Grace likes to be in control of the situation more than she lets on.

1 Like

I’ve been able to wait for months Tron, a few more weeks is nothing for a great product :slight_smile: Hope u and the team are doing well

2 Likes

Oh yeah that’s another thing, I really like Grace not just because “pear shape make 2Bit go brrrrr” but like, she’s the rare artist character that isn’t super spaced out and doesn’t undertand literally any social queues (I mean characters like Katawa Shojo’s Rin and Mina from Pokemon Sun/Moon)

4 Likes