The Sims 4 - Gradual Physique Changes mod

What does this mod do?

One of my biggest pet peeves in The Sims 4 is that they went to the trouble of implementing a really in-depth model for how Sims gain/lose weight… only to then make it so the character models only update every once in a blue moon :upside_down_face:

After seeing a Sim suddenly jump from skinny to fat one too many times, I finally decided to dig into the game’s XML to try to figure out how the synchronization works. As it turns out, the game has a set of stat ‘breakpoints’ defined that force an update. This mod adds 40 of these for both weight and fitness, evenly distributed between -100 and 100.

This makes it so whenever a Sim gains or loses 5 points of weight or fitness, their character model should update, keeping the changes subtle instead of being super jarring.

This mod also disables the animation that plays when a Sim’s weight/fitness changes, as this tends to interrupt whatever action they’re currently doing.

See this post for a video example.

Is this compatible with other mods?

This mod overrides:

  • The Fat and Fit CommodityBasedObjectState (and the values contained within).
  • The various fat_change_reaction and fit_change_reaction interactions.

So as long as other mods aren’t also overriding these, things should work fine.

Changelog

  • 0.1 - Initial release.
  • 0.2 - Added a fitness version of the mod.

Known Issues

  • Sometimes, a Sim’s weight/fitness will just get ‘stuck’ and stop updating (usually at -39.99, for some reason?) - a lot change usually seems to fix this. I suspect this might be a base game bug that’s just more noticable with this mod.

Download

Unzip this into your mods folder. If you only care about weight or fitness, you can just pick one of the included packages instead of installing both.

33 Likes

This sounds really great! The next time I boot up Sims 4 I’ll be sure to give this a try!

I think this is the mod the entire sims weight gain community has been looking for

5 Likes

Thank you!

To give a bit of a demonstration of how much impact this can have in-game, I hacked around with @redoestimate’s Reverse Treadmill mod to increase the effect.

Here’s what it looks like in the base game - notice the sudden jump at the very end: 3.66 MB file on MEGA

And here’s what it looks like with my mod installed: 2.9 MB file on MEGA

Obviously this is a super exaggerated example, but it’s cool nonetheless :slight_smile:

Honestly, I’m shocked that this didn’t already exist (to the point where I’m wondering if there’s some hidden downside to this change I’ve not spotted yet :sweat_smile:)

3 Likes

does the mod effect muscle as well or just fat?

It currently just affects fat, but I’d imagine muscle changes are implemented in the same way - I might have a go at implementing that at some point.

This is amazing! I’ve been meaning to get back into the modding space and I’d love to hear if you have ideas for stuff we could work on together, send me a message if you’re interested :smiley:

Great job, you accomplished did what everyone wanted to see!

3 Likes

im using the treadmill (and the reverse treadmill) and it does nothing

By default, both treadmills have a very subtle effect - I think it’s something like 0.3 points per Sim minute (more if you Push The Limits). This means that it’ll probably take a couple of runs on the treadmill to have any visible impact on your Sim, and even then it’ll be quite hard to notice. It’ll add up over time though!

To get the super obvious effect I showed in the screenshots, you need to do two things:

  • Install the Fitness Controls mod, with the ‘increased’ limits on Sim size.
  • Increase the effect that the treadmill has, either by:
    • Opening redoestimate’s mod in Sims4Studio and amending the stats (this is what I did)
    • Using the in-game settings in Fitness Controls to set the physique change multiplier to a higher value (this is probably easier, but will affect everything)
2 Likes

I am astonished something like this was possible all along. Thank you for finding/doing this.

1 Like

I have added a version of the mod that affects fitness instead of weight - there’s seperate packages for each, so people can just install the ones they care about.

3 Likes

This is utterly fantastic! I’ve been tinkering with the weight system in the Sims a lot the past week or so and it was always so frustrating how erratic it was.

As limited as it it is, there is quite a lot of detail in how a sim’s body changes (especially gaining/losing as a fit sim) and it’s normally completely obscured whenever you do something completely reasonable like eat 30 cupcakes in one sitting. :roll_eyes:

I do like the idea of an animation where your sim acknowledges the change, although I’d want to change it to something more fun (think: a contented tummy pat, embarrassed burp, etc). I wonder if it’s possible to set separate “milestones” for that than when the model updates.

1 Like

Not sure if I’m particularly interested in building this personally, but I do have a decent idea of how it could be achieved if anyone else wants to try it :slight_smile:

The base game’s physique change reactions (the ones this mod disables) are triggered in the on_state_changed method of the Sim class. This method gets called every time a Sim’s weight/fitness moves from one ‘breakpoint’ to another (so not very frequently in the base game, quite frequently with this mod).

By using a script mod to inject some extra logic into that method, you could theoretically trigger off whatever action you want, even a custom one.

The normal logic triggers on every single change, but the code has access to the old and new fat/fit value - so if you wanted to have milestones at certain points, you’d need do something like if old_value < milestone_value and new_value >= milestone_value.

thanks for the pointer, this is a major help if I decide to tinker with this. Do you know how heavy on_state_changed is? How much it does besides updating the model? I’m concerned about performance issues with calling it more often if it’s doing a lot of other things.

This game is slow enough without our help :roll_eyes:.

As far as I can tell, triggering the reactions (and then synchronizing the fit/fat state) is all that function does - adding extra logic to it shouldn’t make it significantly heavier, I wouldn’t think.

@Jentera23 Do you know if this is still working as of the latest update? I’m noticing in my game that the model has stopped updating completely, even from a -100 to 100 change.

Extremely late reply (I haven’t been doing much Sims stuff lately!), but as far as I can tell this is still working with the latest version!

I ran the same test as I did for the demo videos (cranking up the Fitness Controls multiplier and then having a Sim run on a Reverse Treadmill) and I could still see the Sim’s weight updating in real time.

Things to check:

  • Have you re-enabled mods (and made sure they’re all up to date) since the update? They get disabled in the settings every time the game patches, which always drives me crazy.
  • Does changing lots or entering and exiting CAS fix the issue? If so, this might be the bug I mentioned in the OP, which I still haven’t been able to find a workaround for unfortunately :frowning:

Hmmm, it seems if you manually set your weight to -100 with MCCC it has a tendency to get stuck there and and stop updating, that’s probably the issue I’m having. If I set it to -99 instead it seems to function properly.

Edit: no, definitely more going on here, going to have to troubleshoot some more. Sometimes the weight value stops increasing and sometime the model doesn’t update despite a notable increase, and i’m just not sure what’s going on here.

Yeah, definitely having issues with the weight getting stuck like you mentioned in OP, but it happens a LOT to me. It’s odd cause it persists though saving/loading or restarting the game completely. I haven’t tried changing lots yet but it seems to also be fixed by preforming an action that lowers it like running on the actual treadmill lol.

It’s really frustrating cause I can only tell if it’s happening by manually checking the raw values with MCCC. I often test by spamming the same food over and over so I wonder if receiving the exact same increase multiple times in a row makes it bug for whatever reason.

If you know where the code that runs when something is eaten is then poking around in that would probably be our best bet. Otherwise I’m going to have a charter a forum safari cause this bug annoys the hell outta me.