Unstable Frienemies v0.9.4 (Updated January 27th, 2025)

One of the few things I intend to eventually still figure out and implement, probably post-1.0.0 release, is how to make the Cash and Energy levels flash a little / throb (grow and shrink back down) when they change. Without having to go over the whole game line by line to change every variable adjustment to a new function call. Because I agree - things suddenly starting to drain your energy levels as you get less capable of day-to-day activities is a big thematic and mechanical part of the later game on some paths (one in particular) and that should be even more obvious when it happens. Did you notice that just getting up from your work desk starts chipping small bits of energy away towards the end of the submission path?

I don’t think wg related humiliation is a big part of any of the other ideas I have rattling around in my weigh-gain-game idea bucket at the moment - I grew to hate Jasmine while writing this game and she pretty smug about the whole thing towards me while I crafted her. I made sure to program the Domination ending last, as a bit of a treat to myself / to spite her. I don’t think I’m going to let her (or her type) out of the bottle again any time soon. Hopefully, if I manage to finish any other games, they’ll stand on their other merits! ; - )

Have you played Gaining Perspective yet? You might like that one - I’m pretty sure it’s on the pinned mega-list of games in the Projects category.

4 Likes

I did not notice that you lose energy when getting up! I experimented a lot with other things but missed that!

I did try to see what happens when you try to go down the stairs at 5 energy to see if there was an exhausted fuck it going back home message but that is understandably a lot to ask for.

I guess hating Jasmine makes a lot of sense. She is the hatesomuch character and is written well in that! I’m sure that my love for her says nothing about me as a person.

Sorry to hear that it was a bit of a drain on you but I get not wanting to do the same thing over again. My love of humiliation wg was satisfied through this game at least!

I have downloaded most of the list but have yet to play any! Thanks for the recommendation on which to start first.

3 Likes

Gaining Perspective is a really great game, but it gets pretty out there in terms of health impacts and just insane size. This to me was a really great middle ground. This has the humiliation aspects in spades, but it does so in a way that isn’t quite so darn dark or so focused on detailed health impacts.

5 Likes

I think that actually is the better way to do it. With a good text editor it shouldn’t be hard to find all cases of "this = ", "this += ", etc. And you only have to make it into a function once! After that you just edit the function.

2 Likes

Yeah. I did it once already when I instituted the check to see if Trisha was “Literally Starving” enough to override the player and go buy expensive snacks at the corner store. Had to go through and change all the hunger changes into function calls. It’s just really annoying when you miss instances for dumb reasons (when you have two spaces between the variable and the equals sign, so the search doesn’t find it, that kind of thing).
You’re right though. I’ll probably do it that way when I get around to it.

EDIT : Nope! I added a check in the screen that holds the field, so it knows when it changes and ‘flexes’ a bit for a half second. Played around with the timing and the size of the jump. And I hate it, so I’m going to scrub it and take it off my list of eventual updates. (I might test changing the font color instead)

1 Like

For curvy route:

Eat a chicken breast or burger, workout(I always did lower body but I’m not sure it matters), go to the park and eat an icecream or two.

Bedtime message should have the word ‘junky’ in it and mention feeling sore or something.

After day 3 bedtime message will turn to something more generic like ‘time to get some shuteye’

5 Likes

When I try jogging in the park at max fat path I get this error.

I'm sorry, but an uncaught exception occurred.

While running game code:
  File "game/script.rpy", line 139, in script call
    call PrimaryLoop from _call_PrimaryLoop
  File "game/PrimaryLoop.rpy", line 75, in script call
    call departure from _call_departure
  File "game/PrimaryLoop.rpy", line 75, in script call
    call departure from _call_departure
  File "game/departure.rpy", line 963, in script
    mc "[size=0.5]... come on, Trisha, get your fat ass up.  Everyone\'s watching. You\'re embarassing yourself.[/size][size=0.33] Don\'t cry.  Don\'t you dare cry.[/size]"
SyntaxError: invalid syntax (<none>, line 1)

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

Full traceback:
  File "game/script.rpy", line 139, in script call
    call PrimaryLoop from _call_PrimaryLoop
  File "game/PrimaryLoop.rpy", line 75, in script call
    call departure from _call_departure
  File "game/PrimaryLoop.rpy", line 75, in script call
    call departure from _call_departure
  File "game/departure.rpy", line 963, in script
    mc "[size=0.5]... come on, Trisha, get your fat ass up.  Everyone\'s watching. You\'re embarassing yourself.[/size][size=0.33] Don\'t cry.  Don\'t you dare cry.[/size]"
  File "C:\Users\Vivian\Videos\You Know What You're About Games\Heavy Games\UnstableFrienemies-0.9.4-supporter-pc\UnstableFrienemies-0.9.4-pc\renpy\ast.py", line 2557, in execute
    Say.execute(self)
  File "C:\Users\Vivian\Videos\You Know What You're About Games\Heavy Games\UnstableFrienemies-0.9.4-supporter-pc\UnstableFrienemies-0.9.4-pc\renpy\ast.py", line 615, in execute
    renpy.exports.say(who, what, *args, **kwargs)
  File "C:\Users\Vivian\Videos\You Know What You're About Games\Heavy Games\UnstableFrienemies-0.9.4-supporter-pc\UnstableFrienemies-0.9.4-pc\renpy\exports.py", line 1493, in say
    who(what, *args, **kwargs)
  File "C:\Users\Vivian\Videos\You Know What You're About Games\Heavy Games\UnstableFrienemies-0.9.4-supporter-pc\UnstableFrienemies-0.9.4-pc\renpy\character.py", line 1376, in __call__
    what = self.prefix_suffix("what", self.what_prefix, what, self.what_suffix)
  File "C:\Users\Vivian\Videos\You Know What You're About Games\Heavy Games\UnstableFrienemies-0.9.4-supporter-pc\UnstableFrienemies-0.9.4-pc\renpy\character.py", line 1290, in prefix_suffix
    return (sub(prefix) + sub(body) + sub(suffix))
  File "C:\Users\Vivian\Videos\You Know What You're About Games\Heavy Games\UnstableFrienemies-0.9.4-supporter-pc\UnstableFrienemies-0.9.4-pc\renpy\character.py", line 1270, in sub
    return renpy.substitutions.substitute(s, scope=scope, force=force, translate=translate)[0]
  File "C:\Users\Vivian\Videos\You Know What You're About Games\Heavy Games\UnstableFrienemies-0.9.4-supporter-pc\UnstableFrienemies-0.9.4-pc\renpy\substitutions.py", line 368, in substitute
    s = interpolate(s, kwargs) # type: ignore
  File "C:\Users\Vivian\Videos\You Know What You're About Games\Heavy Games\UnstableFrienemies-0.9.4-supporter-pc\UnstableFrienemies-0.9.4-pc\renpy\substitutions.py", line 86, in interpolate
    raise e
  File "C:\Users\Vivian\Videos\You Know What You're About Games\Heavy Games\UnstableFrienemies-0.9.4-supporter-pc\UnstableFrienemies-0.9.4-pc\renpy\substitutions.py", line 78, in interpolate
    value = renpy.python.py_eval(code, {}, scope)
  File "C:\Users\Vivian\Videos\You Know What You're About Games\Heavy Games\UnstableFrienemies-0.9.4-supporter-pc\UnstableFrienemies-0.9.4-pc\renpy\python.py", line 1207, in py_eval
    code = py_compile(code, 'eval')
  File "C:\Users\Vivian\Videos\You Know What You're About Games\Heavy Games\UnstableFrienemies-0.9.4-supporter-pc\UnstableFrienemies-0.9.4-pc\renpy\python.py", line 1144, in py_compile
    raise e
  File "C:\Users\Vivian\Videos\You Know What You're About Games\Heavy Games\UnstableFrienemies-0.9.4-supporter-pc\UnstableFrienemies-0.9.4-pc\renpy\python.py", line 1081, in py_compile
    raise orig_e
  File "C:\Users\Vivian\Videos\You Know What You're About Games\Heavy Games\UnstableFrienemies-0.9.4-supporter-pc\UnstableFrienemies-0.9.4-pc\renpy\python.py", line 1073, in py_compile
    tree = compile(source, filename, py_mode, ast.PyCF_ONLY_AST | flags, 1)
SyntaxError: invalid syntax (<none>, line 1)

Windows-10-10.0.19045 AMD64
Ren'Py 8.2.0.24012702
Unstable Frienemies 0.9.4
Wed Jan 29 06:17:07 2025
1 Like

Thank you! Good catch, and the copy/paste tells me exactly what I screwed up. (I missed an “*”, so it tried to set the font size to 0.5, instead of half normal, and it doesn’t like noninteger font sizes.) A fix will come through in the next update.

The text you missed was Trisha saying to herself : “…come on, Trisha, get your fat ass up. Everyone’s watching. You’re embarrassing yourself… Don’t cry. Don’t you dare cry.” Then it goes back to the location’s choice menu.

(Typing out the missing text meant showing it in a field with autocorrect, which my code writing software doesn’t employ, so you ALSO showed me that I misspelled “embarrassing”! So, double thanks!)

2 Likes

List of Typos

Dissuaded is spelt as Disuaded. This is on the second meeting with Jasmine on the Fat path.

This is when you wake up on the second or third day of fat stage one. Breasts is spelt breats.

It spells trepidation as trepedation. This is on the fat path, fourth level. It’s the scene where she looks at all of the other photos of women “her size”

![Screenshot (16)|690x135](upload://zMOfIhXeZKWnxsfboaU2fu7RKtB.pn

Throat is spelt as troat here. This happens at max fatness when she eats a cheesecake at max weight.

This happens at the final meeting with Jasmine in the fat path. Embarrassing is spelt embarassing

Grueling is spelt gruelling. This happens at the final meeting with Jasmine on the fat path.

4 Likes

It’s probably a bit a ‘differing taste’ thing but I find it weird that in the muscle route you become a bit of a sociopath. Like I understand the catharsis but I’m fairly certain you “win” when you make your rival realize she goofed up and anything past that point is kinda punching down. Yeah she’s awful and would/does worse to you when your roles are flipped, but it just feels kinda odd not to have the option to back off of being ‘like her’

3 Likes

Hey! Beat the scavenger hunt!

Spoilers for what it gives

Is there anything to do with the cocaine other then sell it or use it? Is there anything good that happens if you just give it to the police?

I’ve tried hunting for info in the game but came up empty handed. I assumed it may have led to being black mailed or forced to serve criminals or something for the latter. I’m assuming it’s just for fun?

1 Like

Sound like you’ve figured out the limits. It gives a once-a-‘week’ Energy boost that can be sacrificed for a huge windfall that I don’t think you can possibly spend over the course of the game. That’s it - no rabbit hole of spiraling complications. There could be a story there, but it would probably cumulate in another ending, and I don’t want to make finding the coke a prerequisite for “100% Completion”, ending-wise

1 Like

Thank you! Half of these were typos, half me not knowing my own native tongue well enough.

I messed up on “Embarrassing” a couple of times, as it turns out. Which is embarassing.

2 Likes

Accomplished all endings, enjoyed the game. Writing is good, there is some mechanical twists with wg progress. Game loop and general plot are solid.

Now some suggestions:

  • Obviously more of everything, more subplots, random events, locations. Core of the game is too good to round up it on current stage.
  • More structure. Time skips should be predictable
  • Less railways. More stat base branching.It would be good to measure weight, bust, hips, to give to player more control of where it is going.
  • Made a save near the end of the game and tried different things, like eating and napping all day long, and then eating almost nothing and training non stop - it actually have not changed anything, because of the plot rails.
  • More money/energy balance. Buffet, unlimited burgers - too cheap. There should be more things to spend money on.
  • In a bad ending branch, it seems not fair, to not give neutral ending for players with lots of money.
  • Possibility to find boyfriends for both girls, different ones depending in their paths
  • More career paths, more locations. Work in a gym, ice cream, burger, buffet, with some actual workflow, like it is done for copyright.
  • Endings galery
2 Likes

I think the game is incredible as it is but it is fun to think of things that can be added. The above poster has a lot of fun suggestions!

The game feels very complete and has snappy pacing but there is the inherent greed for “more content” after really digging a game.

Just wanted to add some thoughts to how it might be added to as a fun mental exercise too!

I do think that once you are deep in a path that it shouldn’t change though. That would create a lot of variance but also part of what makes the fat path hot is her inability to stop eating or even do the most simple work outs from being lazy.

Having more things to buy could be fun! Maybe have the option to go on shopping trips at certain levels? Have a little dress up game that only works on the second to last stage levels for each path? Jasmine might also be the reason for it happening on the fat path, her overly enjoying watching her rival in too tight clothing. Where the player is the one dragging Jasmine on it for the fit path.

Having her buy exercise equipment could also be fun. Weight bench for the fit path, work out bands for the thick and an exercise bike that quickly becomes a clothes hanger for the fat path could be funny. Special text for her trying to use it while watching tv but just turning into a snacking session could be fun.

For jobs, the fit path being the only one with an additional mechanical job does feel a bit odd. Fat path could have a food reviewer path, or maybe hostess at the buffet. Thick path might be fun for becoming an instagram model or something like that.

I think a gallery could be good but another thing to use money for could be picture frames you put up around your house. It showing her progress as maybe Jasmine sends her a picture she forced them to take during their dinner could be more unique. It would also be another interactable dialogue which you have a real talent for.

Money might also be spent on

-Personal Trainer to help shift paths early on.

-Needing to pay to go to the gym each time.

-Life time membership to the gym or buffet.

-Diet fad books which help or send her spiraling to further weight gain.

-Clothing

Some random events that might be fun and also not pop up every run

-School Reunion

-Running into old flames

-Helping friends move apartments

-Girl getting her hips stuck in doors

-Finding pictures/videos of herself on gymfitgoals, hottiesonline or fattyfails accounts

-Her picture getting updated on her linkedin “mysteriously”

-Pants ripping or wardrobe malfunction

3 Likes

Ultimately I think this game can be expanded as much or as little as the original dev wants! There are a lot of opportunities for one-off scenes, more fleshing out of the existing locations, or additional new endings if desired for sure. But even if not, the game does feel quite complete already.

5 Likes

You are 100% on to something with this.

Trisha ‘told me’ how it would go on that route. I would hope that you or I in that position would do better than she wants to, but there’s a lot of ignored/suppressed hatred there. Years worth.

The best ending for my money is the Golden Ending (thus why it’s named that way) because Trisha can’t be a fully functional, uncorrupted person while in Jasmine’s orbit, even if she’s winning the competition and putting Jasmine in her place. She needs a clean break.

2 Likes