Difference between revisions of "Rest"

From RimWorld Wiki
Jump to navigation Jump to search
(Characters collapse from exhaustion.)
(10 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{Tocright}}
+
__NOTOC__
Rest is the game mechanic that controls [[Characters]]' needs for sleep. A character with a higher rest value has slept recently, and is less tired than another character with a low rest level.
+
{{Stub|reason=[[Sleep accelerator]]{{IdeologyIcon}} and [[circadian assistant]] {{RoyaltyIcon}} effects should be reflect in math.}}
 +
'''Rest''' is the game mechanic that controls [[Characters]]' [[needs]] for sleep. A character with a higher rest value has slept recently, and is less tired than another character with a low rest level.
  
 
==Levels of Rest==
 
==Levels of Rest==
Line 12: Line 13:
 
|-
 
|-
 
| Rested
 
| Rested
| Greater than 30
+
| >= 28%
 
|-
 
|-
 
| Tired
 
| Tired
| 20 to 30
+
| >=14% and <28%
 
|-
 
|-
 
| Very Tired
 
| Very Tired
| 0.01 to 20
+
| >=1% and <14%
 
|-
 
|-
 
| Exhausted
 
| Exhausted
| Less than 0.01
+
| <=1%
 
|}
 
|}
  
Rest caps at 100.
+
Rest caps at 0% and 100%.
  
 
==Rest Changes==
 
==Rest Changes==
 
====Negative====
 
====Negative====
When awake, rest goes down every tick (1/20000 of a game day) depending on the character's current rest.
+
When awake, rest goes down every 150 ticks (1/400 of a game day) depending on the character's current rest.
  
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Rest
+
! Rest threshold
! Change per tick
+
! Rest change per 150 ticks
! Change per day
+
! Rest change per game day
 +
! Time between previous and next thresholds
 +
! Time since 100% rest
 
|-
 
|-
| Rested
+
| Rested (100 => 28)
| -0.0026
+
| -0.2375%
| -52
+
| -95%
 +
| ~0.758 days / ~18.189 hours
 +
| ~0.758 days / ~18.189 hours
 
|-
 
|-
| Tired
+
| Tired (28 => 14)
| -0.0013
+
| -0.16625%
| -26
+
| -66.5%
 +
| ~0.211 days / ~5.053 hours
 +
| ~0.968 days / ~23.242 hours
 
|-
 
|-
| Very Tired
+
| Very Tired (14 => 1)
| -0.00065
+
| -0.07125%
| -13
+
| -28.5%
 +
| ~0.456 days / ~10.947 hours
 +
| ~1.425 days / ~34.189 hours
 
|-
 
|-
| Exhausted
+
| Exhausted (1 => 0)
| -0.00039
+
| -0.1425%
| -7.8
+
| -57%
 +
| ~0.018 days / ~0.421 hours
 +
| ~1.442 days / ~34.611 hours
 
|}
 
|}
  
 
====Positive====
 
====Positive====
When a character rests in a bed, their Rest value increases over time.
+
When a character rests in a bed, their Rest value increases over time. At 100% Rest Effectiveness and 100% Rest Rate Multiplier, a character requires 10.5 hours (26,250 ticks) to full rest from 0% to 100%.
 +
 
 +
  Every 150 ticks (2.5 seconds at 1x speed), rest increases by 100% * (Ticks in interval (150) / Ticks Per Game Day (60000)) * (Hours per day (24) / Sleep Hours for Full (10.5)) * Rest Effectiveness * Rest Rate Multiplier
 +
  = 100% * (150 * 24) / (60000 * 10.5) * Rest Effectiveness * Rest Rate Multiplier
 +
  = (100%/175) * Rest Effectiveness * Rest Rate Multiplier
 +
  = ~0.57143% * Rest Effectiveness * Rest Rate Multiplier
  
  Each tick, rest increases by 0.0125 * Rest Effectiveness.
+
175 of these 150-tick intervals is the 26,250 ticks (10.5 in-game hours) required to fully rest from 0%.
  
Rest Effectiveness depends on the object the character is sleeping on:
+
====Multipliers====
 +
[[Rest Rate Multiplier]] is a character (pawn) stat that defaults at 1.0 and is based off blood pumping, metabolism, and breathing capacities (and thus is affected by relevant injuries, bionics, etc.)
 +
 
 +
*Blood Pumping has a .3 weight
 +
*Metabolism has a .3 weight
 +
*Breathing has a .3 weight
 +
 
 +
[[Rest Effectiveness]] depends on the object the character is sleeping on:
  
 
{|class="wikitable"
 
{|class="wikitable"
 
|-
 
|-
 
! Object
 
! Object
! Rest Effectiveness
+
! Rest Effectiveness at Normal quality
! Rest Increase per Tick
+
! Rest increase per 150 ticks
! Rest Increase per Game Day
+
! Rest increase per full 24-hour game day
 
|-
 
|-
| Sleeping Spot
+
| Sleeping Spot or Ground
| 0.7
+
| 0.8
| 0.00875
+
| ~0.45714%
| 175
+
| ~182.857%
 +
|-
 +
| Bedroll
 +
| 0.95
 +
| ~0.54286%
 +
| ~217.143%
 
|-
 
|-
 
| Bed
 
| Bed
 
| 1.0
 
| 1.0
| 0.0125
+
| ~0.57143%
| 250
+
| ~228.571%
 
|-
 
|-
 
| Royal Bed
 
| Royal Bed
| 1.03
+
| 1.05
| 0.012875
+
| 0.6%
| 257.5
+
| 240%
 
|}
 
|}
  
 +
and the [[quality]] of that object:
 +
 +
{|class="wikitable"
 +
|-
 +
! Quality
 +
! Rest Effectiveness Multiplier
 +
|-
 +
| Awful
 +
| 0.86
 +
|-
 +
| Poor
 +
| 0.92
 +
|-
 +
| Normal
 +
| 1.0
 +
|-
 +
| Good
 +
| 1.08
 +
|-
 +
| Excellent
 +
| 1.14
 +
|-
 +
| Masterwork
 +
| 1.25
 +
|-
 +
| Legendary
 +
| 1.6
 +
|}
  
Therefore, when a character reaches the Tired threshold (30 Rest), it takes them this long to return to full (100) rest:
+
Therefore, when a character with 100% Rest Rate Multiplier reaches the Tired threshold (28%), it takes them this long to return to full (100%) rest:
 
{|class="wikitable"
 
{|class="wikitable"
 
|-
 
|-
 
! Object
 
! Object
! Time from Tired to Full Rest
+
! Ticks to Full Rest
 +
! Hours to Full Rest
 +
! % of Day to Full Rest
 
|-
 
|-
| Sleeping Spot
+
| Sleeping Spot / Ground (0.8)
| 0.571 game days
+
| 23,625
 +
| ‭9.45
 +
| 39.375%
 
|-
 
|-
| Bed
+
| Normal Bed (1.0)
| 0.4 game days
+
| 18,900
 +
| 7.56
 +
| 31.5%
 
|-
 
|-
| Royal Bed
+
| Legendary Royal Bed (1.05 * 1.6 = 1.68)
| 0.388 game days
+
| 11,250
 +
| 4.5
 +
| 18.75%
 
|}
 
|}
 +
 +
====Analysis====
 +
There exists a balance point for every type/quality of bed (and character, if that character has offsets to Rest Rate Multiplier or Rest Fall Rate), in which the hours spent sleeping and the hours spent awake during a 24-hour period precisely balance.  This is ultimately a piecewise equation, as the rest fall rate is piecewise based on the current rest level (see above).  We can ignore the Exhausted category, as a character must spend >24 hours awake (if starting at 100% rest) before reaching that threshold.
 +
 +
As long as the character is awake for less than 18.189 hours per day, however, this is a single-part equation, as the character will never reach Tired.  The percentage of the day that the character may stay awake, expressed as a decimal value, with a given RestMult (equal to Rest Effectiveness * Rest Rate Multiplier) is reached by solving the following equation for %DayAwake:
 +
 +
  0.95 * %DayAwake = (1 - %DayAwake) * (24/10.5) * RestMult
 +
 +
This gives the following equation:
 +
 +
  %DayAwake = (320 * RestMult) / (320 * RestMult + 133)
 +
 +
At 1.0 RestMult (normal unmodified character in a normal quality regular bed), this gives a value of 70.64% of the day awake, or ~16.95 hours.  Higher RestMults will grant more hours per day awake per this equation, up to 18.189 hours (75.789% of the day) awake.
 +
 +
Beyond that point, we need a piecewise equation.  The RestMult needed to be awake for 18.189 hours per day (0.75789 %DayAwake) is 1.301, which can be achieved with only a masterwork Royal Bed.  After this point, we can use a fixed value for the ~75% of the day awake before hitting Tired, which results in a 72% drop in rest, and then compute the remainder of the time awake off of the rest fall rate when Tired (66.5% per day rather than 95% per day).  This can be found by solving:
 +
 +
  0.72 + (%DayAwake - (0.72/0.95))*0.665 = (1 - %DayAwake) * (24/10.5) * RestMult
 +
 +
This gives:
 +
 +
  %DayAwake = (16000*RestMult - 1512) / (16000*RestMult + 4655)
 +
 +
At 1.3125 RestMult (an unmodified character in a masterwork Royal Bed), which is just past the threshold where this equation is needed, this gives a value of 75.962% 0f the day awake, or 18.231 hours.
 +
 +
At 1.68 Rest Effectiveness (the legendary quality Royal Bed in the table above) and a character with the Quick Sleeper trait (50% Rest Rate Multiplier), a Bionic Heart (+25% Blood Pumping = 7.5% Rest Rate Multiplier), and a Bionic or Royalty stomach (all of which are +25% part efficiency -> +12.5% Metabolism -> 3.75% Rest Rate Multiplier), for a net of 1.5*1.075*1.0375 = 1.673 Rest Rate Multiplier, the RestMult = 1.68 * 1.673 = 2.811.  At that level, the character can be awake for 87.573% of the day, or 21.017 hours.
 +
 +
In theory, there also exists a point at which the Very Tired piece of the equation becomes a factor, but this would require a pawn to be awake for at least 96.84% of the day (23.242 hours).  This would require a RestMult of at least 11.915 (ie. 1191.5%), which is impossible to hit in the base game (and even with most mod setups), and thus can be ignored.
 +
 +
If the character is using a [[Circadian assistant]], their rest fall rate is reduced by 20%, meaning it takes 25% longer to reach each threshold.  The equations in this case must be re-derived (derivation is left as an exercise for the reader), but the simple answer is:
 +
 +
* A character otherwise unmodified except for the Circadian Assistant, using a normal quality bed, can be awake for ~75.047% of the day (~18.011 hours), about 6.3% more of the day than without the implant.
 +
* An otherwise-unmodified character in a masterwork Royal Bed can be awake for ~79.787% of a day (~19.149 hours), about 5% more of the day.
 +
* The above bionically-modified Quick Sleeper pawn in a legendary quality Royal Bed, with the addition of a Circadian Assistant, could be awake for ~89.421% of a day (~21.461 hours), about 2.1% more of the day.
 +
* None of these characters would ever reach "Tired", which takes ~94.737% of a day, or ~22.737 hours, with a Circadian Assistant installed.
 +
 +
== See Also==
 +
Pawn sleeping furniture:
 +
* [[Sleeping spot]] - a free method to designate a place to sleep, but uncomfortable with terrible rest effectivness.
 +
* [[Double sleeping spot]] - a sleeping spot equvialent bed that allows up to two pawns to sleep together.
 +
* [[Bedroll]] - a portable, lower tech version of the bed that provides less comfort and rest effectivness.
 +
* [[Double bedroll]] - a bedroll equvialent bed that allows up to two pawns to sleep together.
 +
* [[Double bed]] - a bed equvialent bed that allows up to two pawns to sleep.
 +
* [[Royal bed]] - an expensive double bed that provides additional comfort and rest effectiveness.
 +
* [[Hospital bed]] - a bed equivalent with a larger immunity gain speed factor
 +
[[Animal]] sleeping furniture:
 +
* [[Animal sleeping spot]] - An animal-only equivalent to the sleeping spot
 +
* [[Animal sleeping box]] - An animal-only bed with stats equivalent to the bedroll
 +
* [[Animal bed]] - An animal-only bed equivalent to the bed.
 +
 
[[Category:Status Level]]
 
[[Category:Status Level]]

Revision as of 07:01, 15 September 2021

Rest is the game mechanic that controls Characters' needs for sleep. A character with a higher rest value has slept recently, and is less tired than another character with a low rest level.

Levels of Rest

Characters' rest level is grouped into four thresholds: Rested, Tired, Very Tired, and Exhausted. Each threshold exhibits different effects on a character, especially their Thoughts. When a character's rest level is zero they may collapse from exhaustion; they will immediately begin sleeping on the ground wherever they are.

The rest levels are as follows:

Label Rest
Rested >= 28%
Tired >=14% and <28%
Very Tired >=1% and <14%
Exhausted <=1%

Rest caps at 0% and 100%.

Rest Changes

Negative

When awake, rest goes down every 150 ticks (1/400 of a game day) depending on the character's current rest.

Rest threshold Rest change per 150 ticks Rest change per game day Time between previous and next thresholds Time since 100% rest
Rested (100 => 28) -0.2375% -95% ~0.758 days / ~18.189 hours ~0.758 days / ~18.189 hours
Tired (28 => 14) -0.16625% -66.5% ~0.211 days / ~5.053 hours ~0.968 days / ~23.242 hours
Very Tired (14 => 1) -0.07125% -28.5% ~0.456 days / ~10.947 hours ~1.425 days / ~34.189 hours
Exhausted (1 => 0) -0.1425% -57% ~0.018 days / ~0.421 hours ~1.442 days / ~34.611 hours

Positive

When a character rests in a bed, their Rest value increases over time. At 100% Rest Effectiveness and 100% Rest Rate Multiplier, a character requires 10.5 hours (26,250 ticks) to full rest from 0% to 100%.

 Every 150 ticks (2.5 seconds at 1x speed), rest increases by 100% * (Ticks in interval (150) / Ticks Per Game Day (60000)) * (Hours per day (24) / Sleep Hours for Full (10.5)) * Rest Effectiveness * Rest Rate Multiplier
 = 100% * (150 * 24) / (60000 * 10.5) * Rest Effectiveness * Rest Rate Multiplier
 = (100%/175) * Rest Effectiveness * Rest Rate Multiplier
 = ~0.57143% * Rest Effectiveness * Rest Rate Multiplier

175 of these 150-tick intervals is the 26,250 ticks (10.5 in-game hours) required to fully rest from 0%.

Multipliers

Rest Rate Multiplier is a character (pawn) stat that defaults at 1.0 and is based off blood pumping, metabolism, and breathing capacities (and thus is affected by relevant injuries, bionics, etc.)

  • Blood Pumping has a .3 weight
  • Metabolism has a .3 weight
  • Breathing has a .3 weight

Rest Effectiveness depends on the object the character is sleeping on:

Object Rest Effectiveness at Normal quality Rest increase per 150 ticks Rest increase per full 24-hour game day
Sleeping Spot or Ground 0.8 ~0.45714% ~182.857%
Bedroll 0.95 ~0.54286% ~217.143%
Bed 1.0 ~0.57143% ~228.571%
Royal Bed 1.05 0.6% 240%

and the quality of that object:

Quality Rest Effectiveness Multiplier
Awful 0.86
Poor 0.92
Normal 1.0
Good 1.08
Excellent 1.14
Masterwork 1.25
Legendary 1.6

Therefore, when a character with 100% Rest Rate Multiplier reaches the Tired threshold (28%), it takes them this long to return to full (100%) rest:

Object Ticks to Full Rest Hours to Full Rest % of Day to Full Rest
Sleeping Spot / Ground (0.8) 23,625 ‭9.45 39.375%
Normal Bed (1.0) 18,900 7.56 31.5%
Legendary Royal Bed (1.05 * 1.6 = 1.68) 11,250 4.5 18.75%

Analysis

There exists a balance point for every type/quality of bed (and character, if that character has offsets to Rest Rate Multiplier or Rest Fall Rate), in which the hours spent sleeping and the hours spent awake during a 24-hour period precisely balance. This is ultimately a piecewise equation, as the rest fall rate is piecewise based on the current rest level (see above). We can ignore the Exhausted category, as a character must spend >24 hours awake (if starting at 100% rest) before reaching that threshold.

As long as the character is awake for less than 18.189 hours per day, however, this is a single-part equation, as the character will never reach Tired. The percentage of the day that the character may stay awake, expressed as a decimal value, with a given RestMult (equal to Rest Effectiveness * Rest Rate Multiplier) is reached by solving the following equation for %DayAwake:

 0.95 * %DayAwake = (1 - %DayAwake) * (24/10.5) * RestMult

This gives the following equation:

 %DayAwake = (320 * RestMult) / (320 * RestMult + 133)

At 1.0 RestMult (normal unmodified character in a normal quality regular bed), this gives a value of 70.64% of the day awake, or ~16.95 hours. Higher RestMults will grant more hours per day awake per this equation, up to 18.189 hours (75.789% of the day) awake.

Beyond that point, we need a piecewise equation. The RestMult needed to be awake for 18.189 hours per day (0.75789 %DayAwake) is 1.301, which can be achieved with only a masterwork Royal Bed. After this point, we can use a fixed value for the ~75% of the day awake before hitting Tired, which results in a 72% drop in rest, and then compute the remainder of the time awake off of the rest fall rate when Tired (66.5% per day rather than 95% per day). This can be found by solving:

 0.72 + (%DayAwake - (0.72/0.95))*0.665 = (1 - %DayAwake) * (24/10.5) * RestMult

This gives:

 %DayAwake = (16000*RestMult - 1512) / (16000*RestMult + 4655)

At 1.3125 RestMult (an unmodified character in a masterwork Royal Bed), which is just past the threshold where this equation is needed, this gives a value of 75.962% 0f the day awake, or 18.231 hours.

At 1.68 Rest Effectiveness (the legendary quality Royal Bed in the table above) and a character with the Quick Sleeper trait (50% Rest Rate Multiplier), a Bionic Heart (+25% Blood Pumping = 7.5% Rest Rate Multiplier), and a Bionic or Royalty stomach (all of which are +25% part efficiency -> +12.5% Metabolism -> 3.75% Rest Rate Multiplier), for a net of 1.5*1.075*1.0375 = 1.673 Rest Rate Multiplier, the RestMult = 1.68 * 1.673 = 2.811. At that level, the character can be awake for 87.573% of the day, or 21.017 hours.

In theory, there also exists a point at which the Very Tired piece of the equation becomes a factor, but this would require a pawn to be awake for at least 96.84% of the day (23.242 hours). This would require a RestMult of at least 11.915 (ie. 1191.5%), which is impossible to hit in the base game (and even with most mod setups), and thus can be ignored.

If the character is using a Circadian assistant, their rest fall rate is reduced by 20%, meaning it takes 25% longer to reach each threshold. The equations in this case must be re-derived (derivation is left as an exercise for the reader), but the simple answer is:

  • A character otherwise unmodified except for the Circadian Assistant, using a normal quality bed, can be awake for ~75.047% of the day (~18.011 hours), about 6.3% more of the day than without the implant.
  • An otherwise-unmodified character in a masterwork Royal Bed can be awake for ~79.787% of a day (~19.149 hours), about 5% more of the day.
  • The above bionically-modified Quick Sleeper pawn in a legendary quality Royal Bed, with the addition of a Circadian Assistant, could be awake for ~89.421% of a day (~21.461 hours), about 2.1% more of the day.
  • None of these characters would ever reach "Tired", which takes ~94.737% of a day, or ~22.737 hours, with a Circadian Assistant installed.

See Also

Pawn sleeping furniture:

  • Sleeping spot - a free method to designate a place to sleep, but uncomfortable with terrible rest effectivness.
  • Double sleeping spot - a sleeping spot equvialent bed that allows up to two pawns to sleep together.
  • Bedroll - a portable, lower tech version of the bed that provides less comfort and rest effectivness.
  • Double bedroll - a bedroll equvialent bed that allows up to two pawns to sleep together.
  • Double bed - a bed equvialent bed that allows up to two pawns to sleep.
  • Royal bed - an expensive double bed that provides additional comfort and rest effectiveness.
  • Hospital bed - a bed equivalent with a larger immunity gain speed factor

Animal sleeping furniture: