RimWorld

RimWorld

123 ratings
Variety Matters
4
3
2
   
Award
Favorite
Favorited
Unfavorite
Mod, 1.2
File Size
Posted
Updated
740.662 KB
24 Aug, 2020 @ 12:37am
31 Dec, 2020 @ 9:33am
25 Change Notes ( view )

Subscribe to download
Variety Matters

Description
Are you looking for a reason to plant something other than corn or hydroponics rice? Do you have mods that add new plants but no reason to grow them? Well, now you have a reason, because variety matters!

A newer version of this mod with an improved, easier to understand formula has been released: Variety Matters Improved!


Also check out Variety Matters Stockpile to create a stockpile that will allow cooks to use a variety of ingredients.

Recent Updates

[10/1/20]
Fixed compatbility issue.

Added half-day +1 thought when pawns eat a new variety. This was added primarily as a more effective and more compatible method for affecting a pawn's choice of food and replaces the old method of food selection tweaks.

Normal foods eaten directly (e.g. berries) are now treated as a separate variety than cooked foods.

[09/30/20]
Tweaked formula - neutral variety is now easier to maintain when meeting expectations.

Stack by ingredient setting - increases available variety by preventing meals with different ingredients from stacking. Recommend for balance, but increases required freezer space.

Everywhere Means Everywhere - When using the "do until you have x" setting for cooking bills, pawns will now look everywhere, not just in stockpiles.

Count All Meals Setting - If enabled, when using the "do until you have x" setting pawns will count all types of cooked meals (simple, fine, lavish, mod-added cooked meals).

[09/18/20]
Fixed issue with foods that have non-food ingredients.

Integrated Vanilla Cooking Expanded (base only):
  • Bakes, cheese, and soups are now prepared
  • Canned foods are no longer broken
Integrated RimCuisine 2 (base only):
  • Thick Pottage is now prepared (Thin pottage remains bland)
  • Hardtack, Dried Meat, Dried Fruit and Pickled Vegetables are now bland
  • Prepared fruit is normal
  • Durians and Truffles are exotic
  • Truffles and carrots are now raw tasty, breadfruit is raw bad

How It Works
Pawns now have a variety need and will remember the foods they've recently eaten. As pawns eat food, their variety will increase or decrease based on the number of different foods they've eaten and the number of times they've eaten those foods. The required number of different foods increases based on the expectation level. Exceeding that desire will cause variety to grow, leading to happy thoughts. Failing to provide enough variety will cause variety to fall, resulting in bad thoughts. The number of required varieties and the current number of varieties remembered is shown in the need tooltip.

Small bonuses are provided for eating lavish meals. Foods are also assigned variety categories, which alters how they affect the variety need.

Variety Categories

The variety category is displayed when a food is selected. Normal foods determine variety based on their ingredients while other categories ignore their ingredients. Foods can only have one variety category, which are determined in roughly the following order:

Revolting foods provide an immediate large drop in variety. They are so bad they stick in a pawn's memory, making pawns yearn for something good and potentially amplifying future variety gains and losses. All revolting foods are treated as a single variety, so there is no benefit to consuming different types of revolting foods. Corpses, rotted food, and foods with humanlike meat (except when eaten by cannibals) are revolting.

Unappetizing foods provide a reduced variety bonus but have a larger penatly for repeated consumption. They are best avoided unless you are certain it is a new variety, and then only once. Unappetizing foods include raw bad foods and foods that aren't typically consumed for nutritional value but don't fit into another category.

Synthetic foods are optimized to provide minimum required nutrition with enough artificial flavoring to make them palatable. Eating a diet of synthetic meals will push variety to neutral. Nutrient paste is a synthetic food.

Bland foods provide a reduced variety bonus compared to other foods, but the same penalty for repeated consumption. Awful meals and foods with a negative human likeness (packaged survival meals) are bland.

Exotic foods provide an immediate boost to variety and typically can't be consumed enough to cause variety to fall. However, exotic foods lose their luster while fresh in a pawn's memory, so the same exotic food won't provide a second variety boost until forgotten. Exotic foods are specially designated exotic (ambrosia) or are made using exotic ingredients.

Treats provide a normal variety boost the first time eaten and smaller boosts on repeated consumption. Like exotic foods, you have to eat a lot of the same treat to cause variety to fall. Liquor (beer) and gluttonous foods (chocolate) are treats. Cannibals consider any food with humanlike meat to be a treat.

ExoticTreat meets the qualifications of both exotic foods and treats and have the benefits of both. When used as ingredients, exotic treats turn any food exotic but lose their treat designation. Insect jelly is an exotic treat.

Drink won't cause a loss in variety unless they form a substantial part of a pawn's diet. A daily coffee won't negatively affect a well-balanced and varied diet. Fluids (milk) are considered drinks, except for liquor or gluttonous drinks, which are treats.

Prepared foods ignore their ingredients and are instead treated as their own variety. Prepared varieties include "mystery meals" (meals with 0 ingredients), pemmican, and mod-added foods with defs similar to pemmican. By request, there is a mod setting "Ignore ingredients" that will turn all normal variety foods into prepared varieties.

Normal foods increase or decrease variety based on their ingredients.

Tips & Tricks
Prepared and bland foods are treated as their own variety regardless of their ingredients. Feeding pawns prepared and bland foods like pemmican or packaged survival meals can add an extra variety.

The extra benefits of drinks only apply when consumed directly, but you can still use them as normal ingredients.

If your cook keeps using the same ingredients, get BestMix by Mlie, found in the Variety-Focused Collection.

Configuration Options
1. Adjust the required varieties for each expectation level.
2. Select whether to ignore ingredients, treating meals as their own variety. Not recommended unless using mods that add meals (not crops).
3. Change the number of ingredients stored when stacking meals. Increasing by 1-2 might help if you provide a lot of food, but increasing too much will likely hurt variety. [Added 9/20]
4. If using the Replimat mod, a new setting will appear to make replimated foods synthetic (except replimated package survival meals, which will remain bland). This has the side effect of turning any mystery ingredients meals into synthetic, but only after Multianalyzers is researched.
Popular Discussions View All (5)
11
18 Dec, 2020 @ 7:20am
Bug Reports
Cozar
1
30 Oct, 2020 @ 2:25pm
Balance Feedback
Cozar
1
8 Sep, 2020 @ 9:27am
Suggestion - variety can influence the immunity
tanyfilina
161 Comments
Cozar  [author] 7 Jan, 2021 @ 3:46pm 
A newer version of this mod with an improved, easier to understand formula has been released: Variety Matters Improved!
sidfu1 31 Dec, 2020 @ 10:01am 
no error on the revert. so something you changed was causing error
sidfu1 31 Dec, 2020 @ 9:53am 
dont think its food specefic as i went and added xml to see if that fix it but was still a error. it might be related to items that have no food madae of setting. it did it for jerky and cheese which have no setting for made of but some roasted was fine.
sidfu1 31 Dec, 2020 @ 9:45am 
when they eat everything is fine to the momenty they finish then teh bellow error pops and the food goes poof they get no food or any varity added
sidfu1 31 Dec, 2020 @ 9:45am 
the error is
JobDriver threw exception in initAction for pawn Ominotago driver=JobDriver_Ingest (toilIndex=9) driver.job=(Ingest (Job_2385973) A=Thing_MealJerky5956001 B=(114, 0, 207))
System.ArgumentOutOfRangeException: Index must be within the bounds of the List.
Cozar  [author] 31 Dec, 2020 @ 9:36am 
Thanks, I'll just revert the changes, since the update was just settings cosmetics and some code optimizations (that apparently weren't that optimal if they broke my null check).

Do you happen to remember what your pawns were eating when this happened?
sidfu1 31 Dec, 2020 @ 9:01am 
this happens when a pawn eats a food that variety cant place.
sidfu1 31 Dec, 2020 @ 9:01am 
a bit of bad news. after update it seems that if a food isnt on the list it will throw a null error then destory the eatten food so that a pawn basicaly doesnt get any food. might want to add a check to prevent a null error if a food isnt part of system for variety.
Panda 10 Dec, 2020 @ 9:40pm 
Yeah, actually my solution was to install better workbench mgmt and use it with the rest of Variety Matters. Works great. Again, thanks