|This article is a stub. You can help RimWorld Wiki by expanding it. Reason: Sleep accelerator and circadian assistant effects should be reflect in math..|
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:
|Drowsy||>=14% and <28%||−6|
|Tired||>=1% and <14%||−12|
Rest caps at 0% and 100%.
When awake, rest goes down every 150 ticks (1/400 of a game day) depending on the character's current rest.
|Threshold range||Rest change per 150 ticks||Rest change per game day||Real time in state||Game time in state||Real time since 100% rest||Game time since 100% rest|
|Rested||100% - 28%||0.237%||95%||45,474 ticks (||18.189 hours||0 ticks (||0 hours|
|Drowsy||28% - 14%||0.166%||66%||12,632 ticks (||5.053 hours||45,474 ticks (||18.189 hours|
|Tired||14% - 1%||0.071%||28%||27,368 ticks (||10.947 hours||58,105 ticks (||23.242 hours|
|Exhausted||1% - 0%||0.142%||57%||-||-||85,474 ticks (||34.189 hours|
- Real time spent in the state before crossing the lower threshold, assuming no rest is gained
- Game time spent in the state before crossing the lower threshold, assuming no rest is gained
- Real time spent before entering the state, assuming no rest is gained and the starting rest is 100%
- Game time spent before entering the state, assuming no rest is gained and the starting rest is 100%
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%.
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%|
and the quality of that object:
|Quality||Rest Effectiveness Multiplier|
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%|
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
%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.
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.