Tramp 0.16.3 2026-02-16

Hell yeah!

I was about to crack into playing another round of 0.15.0 and saw this.

Thanks for your hard work. Diving in.

2 Likes

IT LIVES!

this is glorious to see

1 Like

All the characters have been updated:

  • Sofia’s story can progress further with her and the PC wanting to move in together
  • Steve has a new way he can become an FA
  • All three go through a flirty phase before the relationship starts (Reg had a little of this before) and have different reactions to the PC

There’s not much at the community centre yet, say one special event.

As others have noted these are Finite State Machines: they bundle togther lots of flags into a single integer, and make it much easier to program/extend, and honestly more reliable.

I’ll be getting on to fixing bugs later…

3 Likes

I’ve found this one; it’s down to a change in the way Ren’Py interpolates text. I’ve fixed that specific one internally, just looking for others…

Thanks, that helped pin it down!

3 Likes

I told Sophia I couldn’t help her over the weekend after all, and was thus punished:

Exception
I'm sorry, but an uncaught exception occurred.

While running game code:
  File "game/script.rpy", line 147, in script call
    call main from start_main
  File "game/main.rpy", line 173, in script call
    call .freeOrEvent from main_free
  File "game/main.rpy", line 236, in script call
    call util.checkEventOr(renLabel) from main_free_event
  File "game/util/utilRenpy.rpy", line 72, in script call
    call expression ceoSched.rejLabel from eor_reject
  File "game/loc/nw/diner/nwDinerWork.rpy", line 1106, in script
    $ sofia.rel.dateDist(10 + sofia.rel.breakCount * 5)
  File "game/loc/nw/diner/nwDinerWork.rpy", line 1106, in <module>
    $ sofia.rel.dateDist(10 + sofia.rel.breakCount * 5)
      ^^^^^^^^^^^^^^^^^^                               
AttributeError: 'RelationshipFsm' object has no attribute 'dateDist'

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

Traceback (most recent call last):
  File "game/script.rpy", line 147, in script call
    call main from start_main
  File "game/main.rpy", line 173, in script call
    call .freeOrEvent from main_free
  File "game/main.rpy", line 236, in script call
    call util.checkEventOr(renLabel) from main_free_event
  File "game/util/utilRenpy.rpy", line 72, in script call
    call expression ceoSched.rejLabel from eor_reject
  File "game/loc/nw/diner/nwDinerWork.rpy", line 1106, in script
    $ sofia.rel.dateDist(10 + sofia.rel.breakCount * 5)
  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 "game/loc/nw/diner/nwDinerWork.rpy", line 1106, in <module>
    $ sofia.rel.dateDist(10 + sofia.rel.breakCount * 5)
      ^^^^^^^^^^^^^^^^^^                               
AttributeError: 'RelationshipFsm' object has no attribute 'dateDist'

macOS-26.2-arm64-arm-64bit arm64
Ren'Py 8.5.2.26010301
Tramp 0.16
Mon Feb  2 13:01:26 2026
3 Likes

Super random question, but seeing the feedee and feeder kinks when poking through the debug, does that mean it’s possible to fatten up Sophia? Or it it meant for something else

1 Like

During sex with Sophie:

Exception

I’m sorry, but an uncaught exception occurred.

While running game code:
File “game/script.rpy”, line 147, in script call
call main from start_main
File “game/main.rpy”, line 162, in script call
call .workEnd from main_work_end
File “game/main.rpy”, line 272, in script call
call expression workEndlabel from main_world_work_end
File “game/loc/nw/diner/nwDinerWork.rpy”, line 46, in script call
call .andSoToBed from nw_diner_work_tmp_bed
File “game/loc/nw/diner/nwDinerWork.rpy”, line 1027, in script call
call nwDinerHomeBed.sexyTimes from nw_diner_work_to_bed
File “game/loc/nw/diner/nwDinerHomeBed.rpy”, line 106, in script call
call .sex from nw_diner_sexy_yes
File “game/loc/nw/diner/nwDinerHomeBed.rpy”, line 529, in script
$ select = picker.choose(dinerLru, 2, 2, 49)
File “game/loc/nw/diner/nwDinerHomeBed.rpy”, line 529, in
$ select = picker.choose(dinerLru, 2, 2, 49)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File “game/classes/classPicker.rpy”, line 216, in choose
rnd = pc.random(0, sumWeights-1)
~~~~~~~~~^^^^^^^^^^^^^^^^^
File “game/classes/classPlayer.rpy”, line 571, in random
result = renpy.random.randint(low, high)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
TypeError: ‘float’ object cannot be interpreted as an integer

– Full Traceback ------------------------------------------------------------

Traceback (most recent call last):
File “game/script.rpy”, line 147, in script call
call main from start_main
File “game/main.rpy”, line 162, in script call
call .workEnd from main_work_end
File “game/main.rpy”, line 272, in script call
call expression workEndlabel from main_world_work_end
File “game/loc/nw/diner/nwDinerWork.rpy”, line 46, in script call
call .andSoToBed from nw_diner_work_tmp_bed
File “game/loc/nw/diner/nwDinerWork.rpy”, line 1027, in script call
call nwDinerHomeBed.sexyTimes from nw_diner_work_to_bed
File “game/loc/nw/diner/nwDinerHomeBed.rpy”, line 106, in script call
call .sex from nw_diner_sexy_yes
File “game/loc/nw/diner/nwDinerHomeBed.rpy”, line 529, in script
$ select = picker.choose(dinerLru, 2, 2, 49)
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 “game/loc/nw/diner/nwDinerHomeBed.rpy”, line 529, in
$ select = picker.choose(dinerLru, 2, 2, 49)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File “game/classes/classPicker.rpy”, line 216, in choose
rnd = pc.random(0, sumWeights-1)
~~~~~~~~~^^^^^^^^^^^^^^^^^
File “game/classes/classPlayer.rpy”, line 571, in random
result = renpy.random.randint(low, high)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File “lib/python3.12/random.py”, line 336, in randint
File “lib/python3.12/random.py”, line 312, in randrange
TypeError: ‘float’ object cannot be interpreted as an integer

macOS-26.2-arm64-arm-64bit arm64
Ren’Py 8.5.2.26010301
Tramp 0.16
Mon Feb 2 21:32:02 2026

2 Likes

The links in the OP download v0.16.1. This patch fixes:

Which has been an issue for a while…

That was down to an incompatible change in the Ren’Py engine.

I missed that one when I converted all the relationship code

It should fix this, no idea how a float even got in there though!

It is safe to save and download the new version.

4 Likes

i’ll figure out this steve route if it kills me.

(i know it’s not that hard but i am a simple creature)

1 Like

Thanks to everyone who welcomed the new version. I did want to come back to some of these once the initial bug-hunt was done:

Thank you! I really didn’t want Tramp to feel fetishy from the outset (even if it does nudge you that way), or force the PC to gain. As it’s the protagonist that gains it would remove player agency to force them to be fat. You could choose to stay slim … it is an option.

I was a little concerned that with the long break it would have slipped out of the collective consciousness.

I had The Weighting Game 0.7 on the back burner while working on this. So inspirational.

Those two have been part of the NPCs for a while (do they like being fed, and do they like feeding the PC), though they did see some updates. The game doesn’t have variant text for NPCs weights though.

“Control” is one of the harder ones to get and maintain long enough to reach the “Out of control” achievement. There’s always the built-in Wiki for clues.

7 Likes

Number Goes Up (or down)

If you’re playing with debug on there’s one feature that didn’t make it into the changelog. In Debug > Player the option Export Weight CSV writes a | delimited .csv file named pc-nameweights.csv to your Tramp directory (the one with game in it).

The first part is the PC’s daily weight for the last 60 days, the second part is all her weekly weights.
Feel free to import into your favourite spreadsheet and chart away…

7 Likes

Do any of the npc’s in the game ever call the addfeedee function? thus making them more likely to want to be fed by the player? Or is that currently unused code? (wiki is really deep but not 100% enough to spoil everything for me, heh, I should find a list of all the hidden achievements and try to earn them though!)

1 Like

Sofia only at the moment. When they are going to bed, it makes it more likely that the PC feeds her instead of the other way around.

You can step through the achievements in the Debug screens, look at persistent/achievementList.rpy, or the Achievement entry in the wiki.

2 Likes

I finally had some time to download the update and play it. Everything is working well so far! I’m crazy impressed with the wiki! That must’ve taken a huge amount of time to set up! The game is fun and well written, both from a story and a code standpoint!

2 Likes

Oof, I had some fun with Ren’Py interpolation myself working on my Rebounding reboot/remake/clone/thing.

Glad to see this back and updated - and you, as well! This is a rather inspirational game in addition to just being fun to play.

3 Likes

really fantastic game, enjoyable, realistic and well-written!

One minor thing is just, could I please BEG for a dark mode? the bright white fries my retinas every time…

3 Likes

The carbonized retinas are a feature.

3 Likes

Thank you! I started the wiki to help with development when it wasn’t just me working on it (there was a spreadsheet before) - partly to document what everything did, and also to function as a “walkthrough” of a kind. It’s built in TiddlyWiki - which also underpins Twine games.

The Ren’Py parser only used to accept var[name] and var.field inside the interpolation brackets. A recent update changed it to a Python simple expression, so that first one has to be written as var['name'] now - otherwise name is treated as a variable.

I’m glad to be part of encouraging more games like this … downloading now.

Thank you!

I knew there was something I’d forgotten to do. Fiddlesticks.

5 Likes

Oo, Dingotush looking at my WIP. Simultaneously humbled and anxietied. (I know that’s not a word, but you know what I mean.)

2 Likes

Hey Dingotush, so happy to see this updated! This game has always been one of my favorite on the site, the ability to progress from a tiny waif to an immobile blob pound by pound is truly unique. Not to mention all the dialog and reaction changes as you get there. As excited as I was to play through, I really didn’t encounter any new stuff, but that’s most likely my fault for having played this game front to back so many times :sweat_smile:

I’m always fascinated how the game is constructed too, definitely one of the most complex renpy games on the site (I don’t mean that in a bad way, it’s great for adding new content I’m sure, but it’s definitely a LOT harder to crawl through by hand haha). I’ve used this game as inspiration for pursuing my own content for years, and there’s so many little concepts in here I wish to see in more games: Internal dialog, wrestling with gluttony, consequences, evolving reactions, rich non-ai descriptions.

My Wishlist of changes just for ideas:

  • Something I noticed on this replay is just how much content I skip through, and wish there was a way to sort of standardize my orders or food preferences to streamline the experience and reduce the total number of clicks I’m making (since a lot of the time I’m honed in on a specific strategy and end up clicking the same 10 things every day for the whole game). Then calling out or breaking that automated choice when the situation changes. For Instance, if I start the game at Ermintrude’s always going “Double Cheeseburger” → “Onion Rings” → “Coke” → “Apple Pie”, it’d be great to suddenly pause that flow when I can suddenly eat a bigger entree, or more dessert, or Fries AND Onion Rings.
  • I wish I could do more mutual gaining content with Sophia and Steve ( It’s my most favorite under served stuff on the site :smiling_face_with_tear: ) I’d imagine it’d be a lot of same kind of dialog system that the MC adheres to, where they also battle with Regret/Guilt, Consequence, and the MC has the chance to have opinions about their weight gain. (Perhaps Steve’/Sophia entering their own state of Gluttony)
  • I wish there was more immobility content at the end of the game related to bariatric care. I know you don’t want to do health stuff which is fine, but just considerations for like larger beds, couches, mobility aids (like the newly added scooters), shower chairs/aids, etc. As well as more MooTube or maybe Blogging Content.
  • Any chance for stretch mark or cellulite descriptions? Maybe a system of exposing the dialog at certain checkpoints to allow for modded dialog?
  • I like the Americanization of the dialog, I did notice on this playthrough a lot less UK-isms, but I still feel you’re missing some essential American experiences through Walmart and at least one Fast Food option.

Like I said I think this game is amazing, and has always been one of my favorite on the site, so ultimately whatever you do Dingotush I will enjoy!

3 Likes