In the mod, whether a colonist goes Earthsick depends on Morale, not Comfort: each sol a colonist below Morale 50 has a chance to turn Earthsick, higher the lower the Morale. What an Earthsick colonist does and who is immune is unchanged from the base game.
| Vanilla | Mod | |
|---|---|---|
| Becomes Earthsick | the instant Comfort reaches 0 | a per-sol chance while Morale is below 50 (see below); Comfort no longer triggers it directly |
| Recovers from Earthsick | Comfort climbs back to 70 | Morale climbs back to 70 |
| Never affected | Martianborn, Refugee, the International Mars Mission sponsor, and the Iron Colonists rule - unchanged | |
| Effect once Earthsick | loses the job, cannot work, boards the next departing rocket to Earth - unchanged | |
Comfort still matters, just indirectly: it is one of the three stats that feed Morale, so tanked Comfort pulls Morale down and raises the Earthsick chance that way. Because Earthsick now fires more often than a rare Comfort-0 event, the mod's existing rule that each fresh Earthsick removes up to two applicants triggers correspondingly more often.
Once each sol, every non-immune colonist below Morale 50 is checked: chance = 100 - 2 × Morale percent. At Morale 50 or above the chance is zero.
| Morale | Chance that sol |
|---|---|
| 50 or more | 0% |
| 40 | 20% |
| 30 | 40% |
| 25 | 50% |
| 20 | 60% |
| 10 | 80% |
| 0 | 100% |
The check runs once per sol, so a colonist who sits at low Morale gets one roll per sol - a colonist at Morale 10 has an 80% chance each sol, not a certainty. A colonist can be below Morale 50 (a chance to turn Earthsick) yet not have recovered to Morale 70 (still Earthsick if already), the same recover-higher-than-you-fell gap the base game has with Comfort.
Implemented in mod-survive/Code/StS_EarthsickChance.lua (v2.96), untested. The
chance curve and the Morale thresholds are the mod's design values; the vanilla behaviour it
replaces is read from the base game (Steam app 464920), paths relative to
external/SurvivingMars. Stats use the Stat scale (1000 = 1 point on the 0-100 bar).
Lua/Units/Colonist.lua:3256-3281 (ChangeComfort) - vanilla trigger: at Comfort 0, Affect("StatusEffect_Earthsick","start") unless traits.Martianborn / traits.Refugee / GetMissionSponsor().id=="IMM" / IsGameRuleActive("IronColonists"); cleared at Comfort >= HighStatLevel (70). The mod replaces ChangeComfort with a copy that omits both the trigger and the clear.Lua/Units/Colonist.lua:3285-3287 (GetMorale) - Clamp(stat_morale,0,max_stat)/1000, the 0-100 Morale the chance reads; UpdateMorale (:3339-3392) builds it from Health/Sanity/Comfort.Lua/StatusEffects.lua:291-307 (StatusEffect_Earthsick) - Start SetWorkplace(false); the effect the mod still applies via Affect. Return-to-Earth on rocket departure: Lua/Buildings/SupplyRocket.lua:50-84.Lua/DayTime.lua:56,77 - Msg("NewDay") fires once per sol, the hook for the per-sol roll and recovery pass over UIColony:GetCityLabels("Colonist").mod-survive/Code/StS_EarthsickApplicantMalus.lua - existing rule: each fresh Earthsick removes up to 2 applicants; fires more often under the chance-based trigger.