Stinky Chair is an immersion-focused survival mod for Vintage Story that turns hygiene and odor into a real gameplay system.
Your character’s hygiene is tracked on a 0-100 scale and divided into five odor stages. Dirt builds up through movement, stamina use, exhaustion, clothing, armor, weather, and everyday activity, while water, swimming, and rain can help clean you off.
As your hygiene gets worse, the world reacts. Animals detect you differently, drifters change their behavior at the highest stage, your HUD becomes dirtier, flies begin to gather, and the final stage starts feeding into the game’s vanilla temporal stability system.
Stinky Chair is designed as a survival and immersion feature, not a joke mechanic. The goal is to make grime feel like a natural part of living in the world.
It includes:
-
a full hygiene and odor system
-
reactive AI behavior
-
HUD and visual dirt feedback
-
fly particles and ambient audio
-
temporal pressure at the highest stage
-
multiplayer-safe behavior
-
client-side settings through ConfigLib
1.1.1
Performance optimization release.
- Moved heavy per-tick calculations (clothing scan, weather queries, stat updates, temporal stability, debug sync) to a slow tick running at ~2Hz instead of ~30Hz, reducing server-side overhead by ~15x for those operations
- Cached WeatherSystemBase and TemporalStabilityAffected behavior references once on initialization instead of resolving them every tick
- Animal seeking range stat registration now runs once per player instead of every tick
- Particles and audio remain on the normal tick rate for visual and auditory smoothness
New in 1.1.0
Crafting
Barrel Shower – Stack three vanilla barrels vertically in the crafting grid to build a 3-block tall wash station. Once placed, fill it with up to 50 litres of water using a bucket or watering can. Toggle the valve with an empty hand to start or stop the flow. Standing inside an active shower washes you at the same rate as swimming, while a visible water level in the top barrel shows how much is left.

Washing
Clean yourself through natural and manual methods:
- Swimming – The fastest cleaning method when fully submerged
- Standing in water – Slower than swimming, but still effective
- Rain – Gradual cleaning if you're exposed to the sky
- Watering can wash – Another player can right-click you with a filled watering can to wash you directly. The session continues as long as they keep pouring and you stay in range
- Barrel shower – A stationary wash point you can build at your base. Fill it with water, turn on the valve, and step inside

The shower model, shower particles, and watering-can washing effect still need some polish. The next step is proper multiplayer testing on our server with friends to confirm that everything is functioning correctly at this stage.
Suggestion: a "water pump" item maybe made from iron or other later game materials, that refills the barrel shower without buckets? Could be tricky but your concept is already great as is!
2 things :
Soap and more ways to clean yourself (like baths or different types of showers)
great concept, can't wait to play with it :) (Also maybe perfume or cologne to mask scent on long trips?)
I like the concept but would like to see more kinds of showers. I think a watering can style would be neat as well as some intergration with irrigation would be really awesome too, having an interactable plummed water system for a shower.
I tried it again, and the debug overlay was still active. I was sure to wipe the configs from the servers modconfig folder. It didn't make a difference.
To be explicitly clear about the setup here:
I am running linux
VS runs in a fedora distro shelf
I am hosting a dedicated server
I am modifying the stench and stench client jsons in the servers modconfig folder when attempting to make changes
The aforementioned folders are where I deleted the configs from when trying the new version of the game
my character is not in the admin group. They are suplayer
I tried using the 'defaults' option in configlib in game to reset. This didn't change the state of the overlay.
While a suplayer role, I am unable to modify any of stinky chairs settings in config lib. They are disabled.
While admin role, I can easily disable the overlay.
I tried changing the 'debug' ( "DebugMode": false) flag in the configs to false in the stench config. That didn't disable it for clients joining.
The stench-client file contained an empty set of curlies. I tried adding the debug flag as it exists in the server config and setting that to false. This also did not change client behavior.
The debug overlay just doesn't want to go away :(
traugdor What did you find suspect? The only thing that really stood out to me was the seemingly endless use of what I think are pointless nullable types. Granted, I didn't spend a whole lot of time on the repo, just a few mintues. That was all that really stood out to me. It did feel a little AI generated but that doesn't really bother me so much. As long as the code makes sense, is easy to read, and doesn't contain any really painful design choices or Inefficiencies it's all good.
When filling or emptying the barrel shower, if you are holding a stack of buckets, all five of them get filled at once with 10L each, but when emptying them into the shower they only fill ten liters. You can duplicate water by turning 1L into 5L, then 5L into 25L. Or simply 10L into 50L. Fortunately, the shower can only take basic water, so you can't duplicate boiled water or anything.
Still, probably worth fixing so you don't have to separate all the buckets before filling or emptying the shower.
traugdor
Yeah sorry man, I didn't see your responses until now. I'd love to check out the updated version, and thank you very much for considering and implementing that change! Big +1 man! I do know C#. I don't know much about the class library or anything for VS. Structurally I could evaluate your code. I could probably learn a bunch from it too. Feel free to message me directly.
traugdor
Yamahi
The mods listed in the requirements were included as essential because, as I mentioned in the mod description, we primarily use this mod on our own small server, where it was tested together with them.
I cannot guarantee that it will work correctly in a different configuration.
For example, Vigor itself affects how quickly stink/dirt builds up, and when exhaustion is maxed out, an additional debuff is applied in the form of a further penalty.
Will it work without them? Probably yes, but I have not tested it that way, so I cannot guarantee it.
is vigor a hard dep or not?
seems to work without but not 100% sure if there some things not working without it on,
Vigor seems to have some kind of memory leak or something, needing client resets after awhile.
I inspected your source code and I find a lot of things about it very suspect. Nearest I can tell Vigor and Hydrate or Diedrate aren't actually required, but only supported. The only actual requirement here is config lib. But yeah definitely looks like it was vibe-coded.
Good job.
Sunconure11 ModernScience Please check 1.1.2; I turned off debug by default.
ModernScience
https://github.com/tomekcrm/Stinky-Chair/issues/1
I also want you to see if you can go over the code a bit for me, assuming you know C#. I... want to rule out something possibly related that may impact the mod, as I have seen other mods made in such fashions have some nasty issues. That is, some mods that were obviously vibe coded had constant issues with the game. My knowledge of C# is not good enough yet to rule that out myself.
Yeah dude, I can't use this mod until you disable the overlay by default. I don't know how to modify this in such a way that clients who connect and are not allowed admin priviledges can disable the overlay.
when I connect as admin, it's trivial. I open the mod settings per config lib and turn it off.
If I connect as anything other than admin, all of the options in config lib are disabled. I cannot edit them, thus cannot shut off the overlay.
Please turn off the overlay by default.
-Edit
I tried both setting the DebugMode setting to false in the stench.json server side. That didn't work
I then tried adding DebugMode=false to the stench-client.json file, as it is empty by default. This was a shot in the dark that also didn't work.
I love the idea of this mod dude, but I cannot fathom why you would leave this overlay on by default. It's assinine dude. Just shut it off. Take it from a guy who writes software for a living; "Here's a cool thing, now do a backflip to use it" is NEVER the right answer.
I think the problem was that I was in the admin group. The server, and my character were both in survival, but after I removed myself from the admin group, it started working. Nice catch!
MrRogvold Just to mention it first: if you have debug enabled, you can turn it off in the config. Also, like I wrote in the mod description, the UI part is configurable through ConfigLib: https://mods.vintagestory.at/configlib
As for the system itself, it’s kind of a mix of both approaches.
Some parts are already action-based, not just raw tick updates. For example, stamina drain from running, fighting, mining, or digging increases stench gain through the Vigor integration. If Vigor isn’t installed, movement speed is used as a fallback. Entering or leaving water affects washing, using a watering can on another player starts a wash event, and death/respawn fully resets the system.
The tick-based part is mostly there for things that are naturally continuous. That includes the passive base stench buildup, rain checks, clothing and armor evaluation, fly/audio timing, particles, and the higher-stage effects like animal detection changes and temporal stability.
So it’s not really “you get dirty only because of ticks.” Activity already matters a lot. The periodic checks are mainly handling the stuff that has to be updated over time anyway, like passive grime, weather exposure, and visual/audio feedback.
That said, you’re not wrong about optimization. Some checks definitely run more often than they need to right now. Clothing and weather are good examples — those don’t need to be evaluated that often. I’ll probably reduce the frequency of some of the heavier checks in a future update so it keeps the same feel but runs lighter.
Harbardthr Stamina usage (Vigor) makes you get dirty faster, and fully depleting your stamina adds an extra amount of dirt buildup.
ModernScience are you testing on creative or survival? You can test the stench level by using the command /smrod <user> <level 0-100>
ModernScience thank you for the hint :)
Despite being able to disable the debug mode, I can't seem to get this mod to work. The hygene bar displays but is always filled. I re-enabled the debug overlay and watched it while I messed around in game. I never see anything other than zeros for reductions and gains. net is zero, everything stays zero regardless. The rest of the debug overlay content shows values that make sense.
I don't see any obvious errors in my server logs. Haven't checked the client logs. Cool idea though!
@MrRogvold
I forget the mod that adds it, but I have an ingame 'Mod Settings' menu when I hit escape. From there you can select Stinky Chair and disable the overlay by unchecking the box and clicking save.
I find it very cumbersome that this is enabled by default without explanation, but you can disable it so there's that.
Also a technical question - does this mod implemented through tics? I am experiencing some slight game lag which I didn't have with "bath time" mod.
If I am correct maybe it would be better to rethink the idea towards some specific player action? Like getting girty by N point while digging or mining for example
Is there a way to remove debug menu?
This is slowly becoming a strong competitor to bath time
why is vigor required?
--
+ i second adding bonus' / compatability with soap and lye
+ Make a drying towel option?
neet one! how about adding clothes to get durty as well, so you have to clean them too?
+ integration with soap and lye mod to speed up process of cleaning?
When do you plan to update to 1.22?!
Sunconure11 There are quite a lot of plans for the mod’s development. For now, I’ve released a version with basic features so I can test it on a server with my friends. But we’re planning to keep working on it some more :)
Not sure if I failed to post this or if I got my post deleted, but I think you should add some compat with a few other mods. Natural fertilizer because well, that is a mod dealing with manure. Butchering because I doubt processing meat all day is gonna smell nice. BathTime since it adds some similar mechanics. Soap and Lye (both versions), as to add one way to help reduce filth.