Multiple charges of Detergent?

I’m rather new to the game.

Yesterday I was able to clean my whole inventory with only using 1 charge of Detergent. Now I have to use as many charges as the amount of items I want to clean.

Did they change how it works, or am I missing something?

Background info:
Yesterday I was cleaning in a LMOE shelter beside one of those water puddles in the shelter.
Today I was cleaning beside an outside swimmingpool.

Looking through the commit log, I don’t see anything in the past few weeks that obviously would change how detergent was used. And my experience from playing through the past few weeks is that I’ve always had to use detergent in proportion to the volume of stuff I was cleaning.

Did you recently update from an older experimental to current?

Not that I know of.

If you look at this video, you can see he also only uses 1 charge of detergent:


time: 25:10

o_o Let’s all pretend this comment wasn’t deleted because I’m stupid.

I vaguely remember there being an issue about the old way it worked, so it was changed to this one. I believe the premise was essentially that realistically you’re not gonna use 5 charges to clean 5 clothes. The detergent spreads through the water source, so there is no need to use multiple charges. Just like if you wash dishes. all you need is one thing of sanitizing agent, and you can clean multiple dishes. You don’t clean one dish, empty the sink, refill the sink, readd sanitizer and soap, and clean one more dish, and repeat.

Thing is, I also cleaned multiple clothes without tearing them into rags, and it also required only 1 charge of detergent.

Could it be because im using a swimmingpool now instead of a 1 tile ‘‘puddle’’?

Okay, well, for starters, the water source should have no impact on how much detergent is used. Water only matters in that you need to have X amount of it, based on how much clothing you’re washing.

But secondly, probably more importantly, I was wrong about what I said earlier. Washing clothing is not a 1 to 1 ratio. Looking at the code, it appears to be based on the volume of what’s being washed. Which is pretty clever. So, you CAN wash multiple items of clothing and potentially use only one charge.

A blanket, for instance, requires 2 charges because of it’s large volume. Pretty interesting, I think.

Anyway, I apologize for misleading you.

Thank you for the clarification. I was also mystified as to why washing my clothing used all my detergent, while Quill seemed to only need one.

I had a look at the code myself. The relevant lines seem to be in active_item_handling.cpp
for( const act_item &filthy_item : items ) {
required_water += filthy_item.it->volume() / 125_ml;
required_cleanser += filthy_item.it->volume() / 1000_ml;
}

I would argue that volume is not the right metric, that it probably should be weight instead. Washing machines, laundry services and similar usually operate by weight. The required water might still be based on volume.

I would also argue that being able to clean only 1L with a portion of detergent is a bit low. The boxes I’ve encountered so far have had 20 portions. I know that in real life, I can wash 20+ times with a box of detergent, with one portion per machine load of about 7kg.

I would suggest
required_cleanser += filthy_item.it->weight() / 5000_gram;

Not sure if that would upset any game balance.

If people agree, I could make a PR for it and see how the devs like it :-/

The numbers might be off, maybe 2500_gram is more realistic for washing by hand.

Something here puzzles me. I looked at the rag, as that what Quill was washing, and the stats seem to be:
Volume: 0.25 L Weight: 0.18 lbs/0.08 kg

So if I understand the code right, you would need 1 portion of detergent per 4 rags.
Quill18 washed 29 rags with one portion of detergent.
This smells of a bug somewhere, but as far as I understand the code, I can’t see it.

I did some browsing of clothing items in the item browser to compare weight and volume.
I think it would mostly work, a few armors are really heavy. But most of those had a really big volume as well.

“You need 5 charges of detergent for the washing machine.” in vehicle.cpp

So a portion of detergent is about 5 times smaller than what I had assumed.

This would suggest
required_cleanser += filthy_item.it->weight() / 1000_gram;

How much would you think you need to wash a dinosaur suit:
Volume: 12 L Weight: 15.50 lbs/7.03 kg

  • Current code: 12 portions, or just over half a box of detergent
  • My initial suggestion 2 portions of detergent, about 1/10th of a box
  • Based on the vehicle.cpp code: 7-8 portions of detergent, just a little under half a box.

I still like my initial suggestion.

I agree that the current way seems a bit wasteful. When I first started out I had trouble finding enough detergent to clean the things I wanted. Now that I am a bit later in the game I just don’t clean anything anymore unless It’s an item that is hard to get otherwise. If I need clean rags etc, I just tear up sheets etc and don’t wash filthy clothes.

This is a fixed amount used only while using the washing machine. Amount of detergent required is calculated only when using the washboard.

I still think volume fits best here. Imagine washing curtains. They are very bulky, but don’t weight much. Or just a lot of featherweight silky clothes. You still need a lot of detergent to properly wash these despite they are almost weightless.

I don’t think that is correct. The amount of detergent needed scales with the amount of filth you need to clean and anything that might be in the water, like calcium, and the temperature of the water. You’re basically performing a chemical reaction. And usually people use way to much detergent. Look on the side of the box for the instructions on how much you need.

I think the amount of water needed should be based on the volume, but the amount of detergent needed scales more closely with the amount of material, which would be better represented by the weight.

Neither are perfect though, for modelling what is a chemical process with a lot of factors.

I understand. I my intention was just to reference it as what at least some developer thought was a good amount for a full washing machine. It was in comparison to my earlier statement that in real life I will easily be able to run 20 full washing machines from a single box of detergent. That’s why I initially suggested one portion per 5 kg.

I believe that the current system is more correct than the proposed system. The clothes that we are wearing in real life wouldn’t get the filthy tag because they lack the blood, guts, excitement, and zombie goo all over that one would get from pulling clothes off of a zombie corpse.

If one wanted to change laundry detergent recipes to match real world values, one could add a dirty tag that isn’t quite the same level as filthy, and without the same infection chances as the filthy tag. Maybe the scent radius could go up for dirty clothes, for example.

Filth for thought —

1 Like