Rooms

From RimWorld Wiki
Revision as of 06:10, 13 September 2019 by Siggboy (talk | contribs) (→‎Formula)
Jump to navigation Jump to search
Basics Menus Game Creation Gameplay Pawns Plants Resources Gear Mods
Gameplay Menu Caravan Combat Cover Drafting Environment Events Factions Firefighting Quality Quests Research Rooms Time Trade

Room stats are automatically calculated values of a room that passively affects thoughts about and events in the room. Room stats can be inspected with the Room inspection tool. Room roles, which also can be inspected with the same tool, may be affected by all, some or none of the room stats.

Room stats are:

  • Impressiveness (an aggregate of other stats)
  • Wealth
  • Space
  • Beauty
  • Cleanliness

Room stats affect things like:

  • Medical treatment quality (from cleanliness)
  • Research speed (from cleanliness)
  • Mood of the people residing in them, resulting in thoughts like
    • "Ate in impressive dining room"
    • Owning impressive bedroom
    • Owning bed in impressive barracks
    • "Did joy activity in impressive rec room"

Related traits:

  • Greedy: Unhappy without sufficiently impressive room.
  • Jealous: Unhappy if anyone has a noticeably better room.
  • Ascetic: Unhappy if room is too impressive. Happy if room is dull or worse.

Room roles

Basics Menus Game Creation Gameplay Pawns Plants Resources Gear Mods
Gameplay Menu Caravan Combat Cover Drafting Environment Events Factions Firefighting Quality Quests Research Rooms Time Trade

Room stats are automatically calculated values of a room that passively affects thoughts about and events in the room. Room stats can be inspected with the Room inspection tool. Room roles, which also can be inspected with the same tool, may be affected by all, some or none of the room stats.

Room stats are:

  • Impressiveness (an aggregate of other stats)
  • Wealth
  • Space
  • Beauty
  • Cleanliness

Room stats affect things like:

  • Medical treatment quality (from cleanliness)
  • Research speed (from cleanliness)
  • Mood of the people residing in them, resulting in thoughts like
    • "Ate in impressive dining room"
    • Owning impressive bedroom
    • Owning bed in impressive barracks
    • "Did joy activity in impressive rec room"

Related traits:

  • Greedy: Unhappy without sufficiently impressive room.
  • Jealous: Unhappy if anyone has a noticeably better room.
  • Ascetic: Unhappy if room is too impressive. Happy if room is dull or worse.

Room roles

Template loop detected: Room roles

Impressiveness

The value for impressiveness is based on the four other stats (wealth, beauty, spaciousness and cleanliness) with a heavy weighting towards the weakest of the four, as well as spaciousness being a limiting factor.

Since the impressiveness calculation (explained below) is fairly involved, it is not practical to predict impressiveness levels in an actual game. However, the following rules of thumb can be applied:

  1. Keep all relevant factors in mind equally when designing an impressive room. If one stat is low compared to the others, that stat will overwhelmingly determine the overall impressiveness of the room. For example, having a masterpiece work of art in a large room (high wealth, space and beauty) is not effective if the floor is covered in vomit (low cleanliness). It is very difficult to compensate for one low contributing factor by raising the others.
  2. Making a particularly small room impressive is very difficult. Impressiveness is limited by room size.
  3. Cleanliness matters. Since the level of impressiveness is what counts, and there are sharp thresholds separating the levels, even a minute change of any of the values can have a strong effect. This is usually due to cleanliness changing (because the other factors are pretty much fixed); even a single speck of dirt on the floor can result in major mood changes. Make sure that the room is not too close to a level threshold, and keep it clean.

Formula

The actual formula for calculating impressiveness involves multiple steps using a piecewise continuous function, so it's best to start with the basics.

First, each of the four stats has a corresponding divisor that's used to calculate that stat's base contribution.

Wealth: Wb = Wealth/1500
Beauty: Bb = Beauty/3
Space: Sb = Spaciousness/125
Cleanliness: Cb = 1 + (Cleanliness/2.5)

So, a room with a Wealth stat of 3000 gives a Wb value of 2 and a room with a Cleanliness of 0 gives a Cb of 1.

Now the fancier part starts. If these base contributions are between -1 and 1, the contribution does not get further modified. However, if it's above 1 (Or below -1 in the case of cleanliness, though that exact equation will be different), the value is modified to slow down the rate the impressiveness changes. The modified values become as follows:

modified = 1 + ln(base)       ; when base is greater than or equal to 1.
modified = base                 ; when base is less than 1 and greater than -1.
modified = -(1 + ln(-base))   ; when base is less than or equal to -1

These are natural logs here, and what this means in practice is that a stat's contribution to the impressiveness continues to grow more slowly as the base stat continues to increase. Here's an example with Wealth:

Start with a room with a Wealth value of 3000.
Wb = 3000/1500 = 2
Wm = 1 + ln(Wb) = 1 + ln(2) = 1.69

These modified values are then combined to give the impressiveness score as follows.

Take a weighted sum of the average of the values and the smallest of the values:

I' = (65 × (Wm + Bm + Sm + Cm) ÷ 4) + (35 × min(Wm, Bm, Sm, Cm))

This will make the smallest of the values contribute 51.25%, while the other three values each contribute 16.25%.

As a final step we compare this impressiveness value to the spaciousness of the room:

S' = 500 × Sm
If I' > S', then
  I = 0.25 × I' + 0.75 × S'
else
  I = I'

This means that a relatively small room cannot be very "impressive", because lack of spaciousness will heavily weigh down the overall impressiveness.

Example: an "rather right" room with a space of 25 would have S' = 25 ÷ 125 × 500 = 100. Any impressiveness up to 100 would thus not be influenced further by spaciousness. However, trying to add 1 more point to impressiveness (ie. going from 100 to 101) – without changing room space – would require 4 more points (assuming for simplicity that we are only working with integers). This is because the equation is

101 = 0.25 × (100 + i) + 0.75 × 100 = 25 + i × 0.25 + 75 = 100 + i × 0.25 = 101

therefore i = 4 (i is the required increment).

Levels of impressiveness

The exact impressiveness value will then be rounded to the nearest integer, and a label (or "level") of impressiveness will be given to the room, according to the below table.

Any mood effects from the room then depend on this impressiveness level, and not on the precise value.

Value Description
< 20 awful
>= 20 and < 30 dull
>= 30 and < 40 mediocre
>= 40 and < 50 decent
>= 50 and < 65 slightly impressive
>= 65 and < 85 somewhat impressive
>= 85 and < 120 very impressive
>= 120 and < 170 extremely impressive
>= 170 and < 240 unbelievably impressive
>= 240 wondrously impressive

Wealth

This is the sum of the market value of all items in the room and all walls (but not doors) surrounding the room.

Value Description
< 500 impoverished
>= 500 and < 700 somewhat poor
>= 700 and < 2000 mediocre
>= 2000 and < 4000 somewhat rich
>= 4000 and < 10000 rich
>= 10000 and < 40000 luxurious
>= 40000 and < 100000 very luxurious
>= 100000 and < 1000000 extremely luxurious
>= 1000000 unbelievably luxurious

Beauty

Does not includes the beauty value of the floors underneath the room's walls.

Value Description
< -3.5 hideous
>= -3.5 and < 0 ugly
>= 0 and < 2.4 neutral
>= 2.4 and < 5 rather nice
>= 5 and < 15 beautiful
>= 15 and < 50 very beautiful
>= 50 and < 100 extremely beautiful
>= 100 unbelievably beautiful

Space

Indicates how much free space is available in the room. A room's Space score is 1.4 times the number of tiles in the room. Objects that prevent a pawn from standing in a space will decrease the available space in the room by 0.9 per tile the object covers. Thus, an occupied tile contributes a total of 0.5 to space. Objects that reduce space include beds, tables, workbenches, lamps, and heaters. Stools and chairs do not reduce space.

Value Description
< 12.5 cramped
>= 12.5 and < 29 rather tight
>= 29 and < 55 average-sized
>= 55 and < 70 rather spacious
>= 70 and < 130 spacious
>= 130 and < 349.5 very spacious
>= 349.5 extremely spacious

Cleanliness

This stat affects medical outcomes, research speed, and the chance that cooked meals will cause food poisoning. A room's cleanliness is the average cleanliness score of all tiles in the room. It is determined by the type of flooring, the presence of filth, and the cleanliness value of some furniture such as the Butcher table and the Stonecutter's table.

Room Cleanliness Description
< -1.1 very dirty
>= -1.1 and < -0.4 dirty
>= -0.4 and < -0.05 a little bit dirty
>= -0.05 and < 0.4 clean
>= 0.4 sterile


Object Cleanliness
Value
Sterile Tile floor 0.6
Steel, Silver or Gold floor 0.2
Bridge and all other constructed flooring 0
Smooth or Rough stone 0
Dirt floor (soil, gravel, etc.) -1
Marshy soil -2
Blood -10
Insect blood, vomit, fuel puddle -15
Dirt, rubble, all other filth -5
Chunks -6


Using "Toggle the beauty display" the player can locate filth in a given room, which will be highlighted due to its negative "beauty value".

The beauty value is NOT equal to the cleanliness value but gives a very rough idea of the actual dirtiness. The Beauty value is heavily affected by other furniture in the room, especially sculptures or plant pots; a room or tile can be hideously dirty but still have a positive beauty value.

Test

The following content is the result of a study on the Effect of filth over sterile rooms. Results are raw observations, take with caution:

Effect of filth over sterile rooms
Size m^2 Measurements Dirt beauty Cleanliness
Value
Cleanliness
Value Difference
1 1*1 -15 -4.40/0.60 -5
25 5*5 -15 0.40/0.60 -0.20
50 5*10 -15 0.50/0.60 -0.10
100 10*10 -15 0.55/0.60 -0.05

Spilling behavior (observed in hospital):

  • When a tile has a -30 beauty value of blood on it, new blood will spill on another tile. It may be random or have something to do with a possible filth stacking limit.

Spilling test:

  • Method: 20 alpacas in a 5*5 room. All killed and body deleted using "damage 10 tool".
  • Result: Blood never stacks over 5, with -30 beauty. If no tile free to spill blood, nothing happens.

Observation:

  • Blood stacking on the same tile will not further decrease the room cleanliness and beauty. Only blood stacking on previously non bloody tiles will.

After further observations:

  • This mechanism works with any type of filth. Stacking them with the same type of filth does not increase their effect. Different types of filth stacking on the same tile will add the effects together.
  • Example : 2 x blood + 2 x firefoam on one tile will gives the same cleanliness than 1 x blood + 1 x firefoam on one tile.

Stacking of dirt and filth test

  • Method: 5*5 room, stacking as much filth as possible over all tiles.
    • Adding blood (-30) from Spilling test.
    • Adding fire foam (-25) using dev tools.
    • getting rid of the floor (-1).
    • Adding vomit (-41).
    • Adding dirt (-11, should be -15. Dirtiness values seems to be locked at -107 at most, to check).
    • insect fluids have not been tested.
  • Results:
    • From the given results it seems that the tiles can not have a beauty value past -107.
    • It has been observed that the "beauty value" does not decrease when stacking the same type of filth together. Would lock at -30 with the blood. cleanliness locks as beauty does.
    • Filth stack up to 5 time for a given type of filth. After that, if no space is available to spill filth, the action is cancelled.

Observation: During this study it has been observed that beauty values from indoor filth and outdoor filth are very different. Being indoor/outdoor has an effect on the beauty values.

Beauty values by type of filth (sample) :
Filth Beauty (outdoor) Beauty (indoor)
blood -8 to -10 -15 to -30
dirt -4 to -5 -15
vomit -11 to -13 -40
fire foam -8 -25
item on floor -6 to -7 -6 to -7
meat on floor -20 -20
chunk -20 -20
soil -1 -1
mud -2 -2

As we can observe, most filth have an increased beauty debuff when inside. Also, chunks do have an influence of -6 cleanliness (tested in a clean 1x1 room with wood floor).

Note that mud can not be built over, so you will rarely have the occasion to build a room filled with mud (why would you?). Test done by surrounding a small mud chunk with walls and building a roof over.

Also good to mention, items and raw meat do NOT have any effect on cleanliness. You can store medicine in your hospitals.

Conclusion

  • After a fight, colonists in need of treatment will often bleed huge amounts of blood. A proper hospital should be able to withstand up to -35 cleanliness (-105 beauty) per patients to keep cleanliness at 0. It counts as most patients will bleed up to 2-3 times (-10 cleanliness per bloody tiles and -30 beauty) and the doctor or the patient may add in -5 cleanliness (or -15 beauty) due to dirt.
    • The cheapest design to keep at least [0 <= cleanliness] would be to opt for a 6 x 10 (for at least 59 tiles) hospital for one bed.
    • The most effective option to keep at least [0.40 < cleanliness] would be to use a 14 x 14 (for at least 195 tiles) hospital for one bed.
  • Better to note, long term health care do not need such rooms. If you can afford to clean the hospital before healing/operating on a patient you might only need to worry about -20 debuff for cleanliness as you will only have to worry about the new blood spilling form the patient in bed (bleeds slower).
    • The cheapest design to keep at [0 <= cleanliness] would be 4x5 (for at least 17).
    • The most effective to keep at [0.40 < cleanliness] would be 6x5 (for at least 34).

Impressiveness

The value for impressiveness is based on the four other stats (wealth, beauty, spaciousness and cleanliness) with a heavy weighting towards the weakest of the four, as well as spaciousness being a limiting factor.

Since the impressiveness calculation (explained below) is fairly involved, it is not practical to predict impressiveness levels in an actual game. However, the following rules of thumb can be applied:

  1. Keep all relevant factors in mind equally when designing an impressive room. If one stat is low compared to the others, that stat will overwhelmingly determine the overall impressiveness of the room. For example, having a masterpiece work of art in a large room (high wealth, space and beauty) is not effective if the floor is covered in vomit (low cleanliness). It is very difficult to compensate for one low contributing factor by raising the others.
  2. Making a particularly small room impressive is very difficult. Impressiveness is limited by room size.
  3. Cleanliness matters. Since the level of impressiveness is what counts, and there are sharp thresholds separating the levels, even a minute change of any of the values can have a strong effect. This is usually due to cleanliness changing (because the other factors are pretty much fixed); even a single speck of dirt on the floor can result in major mood changes. Make sure that the room is not too close to a level threshold, and keep it clean.

Formula

The actual formula for calculating impressiveness involves multiple steps using a piecewise continuous function, so it's best to start with the basics.

First, each of the four stats has a corresponding divisor that's used to calculate that stat's base contribution.

Wealth: Wb = Wealth/1500
Beauty: Bb = Beauty/3
Space: Sb = Spaciousness/125
Cleanliness: Cb = 1 + (Cleanliness/2.5)

So, a room with a Wealth stat of 3000 gives a Wb value of 2 and a room with a Cleanliness of 0 gives a Cb of 1.

Now the fancier part starts. If these base contributions are between -1 and 1, the contribution does not get further modified. However, if it's above 1 (Or below -1 in the case of cleanliness, though that exact equation will be different), the value is modified to slow down the rate the impressiveness changes. The modified values become as follows:

modified = 1 + ln(base)       ; when base is greater than or equal to 1.
modified = base                 ; when base is less than 1 and greater than -1.
modified = -(1 + ln(-base))   ; when base is less than or equal to -1

These are natural logs here, and what this means in practice is that a stat's contribution to the impressiveness continues to grow more slowly as the base stat continues to increase. Here's an example with Wealth:

Start with a room with a Wealth value of 3000.
Wb = 3000/1500 = 2
Wm = 1 + ln(Wb) = 1 + ln(2) = 1.69

These modified values are then combined to give the impressiveness score as follows.

Take a weighted sum of the average of the values and the smallest of the values:

I' = (65 × (Wm + Bm + Sm + Cm) ÷ 4) + (35 × min(Wm, Bm, Sm, Cm))

This will make the smallest of the values contribute 51.25%, while the other three values each contribute 16.25%.

As a final step we compare this impressiveness value to the spaciousness of the room:

S' = 500 × Sm
If I' > S', then
  I = 0.25 × I' + 0.75 × S'
else
  I = I'

This means that a relatively small room cannot be very "impressive", because lack of spaciousness will heavily weigh down the overall impressiveness.

Example: an "rather right" room with a space of 25 would have S' = 25 ÷ 125 × 500 = 100. Any impressiveness up to 100 would thus not be influenced further by spaciousness. However, trying to add 1 more point to impressiveness (ie. going from 100 to 101) – without changing room space – would require 4 more points (assuming for simplicity that we are only working with integers). This is because the equation is

101 = 0.25 × (100 + i) + 0.75 × 100 = 25 + i × 0.25 + 75 = 100 + i × 0.25 = 101

therefore i = 4 (i is the required increment).

Levels of impressiveness

The exact impressiveness value will then be rounded to the nearest integer, and a label (or "level") of impressiveness will be given to the room, according to the below table.

Any mood effects from the room then depend on this impressiveness level, and not on the precise value.

Value Description
< 20 awful
>= 20 and < 30 dull
>= 30 and < 40 mediocre
>= 40 and < 50 decent
>= 50 and < 65 slightly impressive
>= 65 and < 85 somewhat impressive
>= 85 and < 120 very impressive
>= 120 and < 170 extremely impressive
>= 170 and < 240 unbelievably impressive
>= 240 wondrously impressive

Wealth

This is the sum of the market value of all items in the room and all walls (but not doors) surrounding the room.

Value Description
< 500 impoverished
>= 500 and < 700 somewhat poor
>= 700 and < 2000 mediocre
>= 2000 and < 4000 somewhat rich
>= 4000 and < 10000 rich
>= 10000 and < 40000 luxurious
>= 40000 and < 100000 very luxurious
>= 100000 and < 1000000 extremely luxurious
>= 1000000 unbelievably luxurious

Beauty

Does not includes the beauty value of the floors underneath the room's walls.

Value Description
< -3.5 hideous
>= -3.5 and < 0 ugly
>= 0 and < 2.4 neutral
>= 2.4 and < 5 rather nice
>= 5 and < 15 beautiful
>= 15 and < 50 very beautiful
>= 50 and < 100 extremely beautiful
>= 100 unbelievably beautiful

Space

Indicates how much free space is available in the room. A room's Space score is 1.4 times the number of tiles in the room. Objects that prevent a pawn from standing in a space will decrease the available space in the room by 0.9 per tile the object covers. Thus, an occupied tile contributes a total of 0.5 to space. Objects that reduce space include beds, tables, workbenches, lamps, and heaters. Stools and chairs do not reduce space.

Value Description
< 12.5 cramped
>= 12.5 and < 29 rather tight
>= 29 and < 55 average-sized
>= 55 and < 70 rather spacious
>= 70 and < 130 spacious
>= 130 and < 349.5 very spacious
>= 349.5 extremely spacious

Cleanliness

This stat affects medical outcomes, research speed, and the chance that cooked meals will cause food poisoning. A room's cleanliness is the average cleanliness score of all tiles in the room. It is determined by the type of flooring, the presence of filth, and the cleanliness value of some furniture such as the Butcher table and the Stonecutter's table.

Room Cleanliness Description
< -1.1 very dirty
>= -1.1 and < -0.4 dirty
>= -0.4 and < -0.05 a little bit dirty
>= -0.05 and < 0.4 clean
>= 0.4 sterile


Object Cleanliness
Value
Sterile Tile floor 0.6
Steel, Silver or Gold floor 0.2
Bridge and all other constructed flooring 0
Smooth or Rough stone 0
Dirt floor (soil, gravel, etc.) -1
Marshy soil -2
Blood -10
Insect blood, vomit, fuel puddle -15
Dirt, rubble, all other filth -5
Chunks -6


Using "Toggle the beauty display" the player can locate filth in a given room, which will be highlighted due to its negative "beauty value".

The beauty value is NOT equal to the cleanliness value but gives a very rough idea of the actual dirtiness. The Beauty value is heavily affected by other furniture in the room, especially sculptures or plant pots; a room or tile can be hideously dirty but still have a positive beauty value.

Test

The following content is the result of a study on the Effect of filth over sterile rooms. Results are raw observations, take with caution:

Effect of filth over sterile rooms
Size m^2 Measurements Dirt beauty Cleanliness
Value
Cleanliness
Value Difference
1 1*1 -15 -4.40/0.60 -5
25 5*5 -15 0.40/0.60 -0.20
50 5*10 -15 0.50/0.60 -0.10
100 10*10 -15 0.55/0.60 -0.05

Spilling behavior (observed in hospital):

  • When a tile has a -30 beauty value of blood on it, new blood will spill on another tile. It may be random or have something to do with a possible filth stacking limit.

Spilling test:

  • Method: 20 alpacas in a 5*5 room. All killed and body deleted using "damage 10 tool".
  • Result: Blood never stacks over 5, with -30 beauty. If no tile free to spill blood, nothing happens.

Observation:

  • Blood stacking on the same tile will not further decrease the room cleanliness and beauty. Only blood stacking on previously non bloody tiles will.

After further observations:

  • This mechanism works with any type of filth. Stacking them with the same type of filth does not increase their effect. Different types of filth stacking on the same tile will add the effects together.
  • Example : 2 x blood + 2 x firefoam on one tile will gives the same cleanliness than 1 x blood + 1 x firefoam on one tile.

Stacking of dirt and filth test

  • Method: 5*5 room, stacking as much filth as possible over all tiles.
    • Adding blood (-30) from Spilling test.
    • Adding fire foam (-25) using dev tools.
    • getting rid of the floor (-1).
    • Adding vomit (-41).
    • Adding dirt (-11, should be -15. Dirtiness values seems to be locked at -107 at most, to check).
    • insect fluids have not been tested.
  • Results:
    • From the given results it seems that the tiles can not have a beauty value past -107.
    • It has been observed that the "beauty value" does not decrease when stacking the same type of filth together. Would lock at -30 with the blood. cleanliness locks as beauty does.
    • Filth stack up to 5 time for a given type of filth. After that, if no space is available to spill filth, the action is cancelled.

Observation: During this study it has been observed that beauty values from indoor filth and outdoor filth are very different. Being indoor/outdoor has an effect on the beauty values.

Beauty values by type of filth (sample) :
Filth Beauty (outdoor) Beauty (indoor)
blood -8 to -10 -15 to -30
dirt -4 to -5 -15
vomit -11 to -13 -40
fire foam -8 -25
item on floor -6 to -7 -6 to -7
meat on floor -20 -20
chunk -20 -20
soil -1 -1
mud -2 -2

As we can observe, most filth have an increased beauty debuff when inside. Also, chunks do have an influence of -6 cleanliness (tested in a clean 1x1 room with wood floor).

Note that mud can not be built over, so you will rarely have the occasion to build a room filled with mud (why would you?). Test done by surrounding a small mud chunk with walls and building a roof over.

Also good to mention, items and raw meat do NOT have any effect on cleanliness. You can store medicine in your hospitals.

Conclusion

  • After a fight, colonists in need of treatment will often bleed huge amounts of blood. A proper hospital should be able to withstand up to -35 cleanliness (-105 beauty) per patients to keep cleanliness at 0. It counts as most patients will bleed up to 2-3 times (-10 cleanliness per bloody tiles and -30 beauty) and the doctor or the patient may add in -5 cleanliness (or -15 beauty) due to dirt.
    • The cheapest design to keep at least [0 <= cleanliness] would be to opt for a 6 x 10 (for at least 59 tiles) hospital for one bed.
    • The most effective option to keep at least [0.40 < cleanliness] would be to use a 14 x 14 (for at least 195 tiles) hospital for one bed.
  • Better to note, long term health care do not need such rooms. If you can afford to clean the hospital before healing/operating on a patient you might only need to worry about -20 debuff for cleanliness as you will only have to worry about the new blood spilling form the patient in bed (bleeds slower).
    • The cheapest design to keep at [0 <= cleanliness] would be 4x5 (for at least 17).
    • The most effective to keep at [0.40 < cleanliness] would be 6x5 (for at least 34).