A Study of Sims 2 Diseases
Expanded and updated (30.03.26). Numbers used within are as they apear in SimPe.
I am a collector of all mods related to sickness/health in my Sims 2 gameplay. For a current WIP, I needed an overview of the available diseases. It's quite technical. But maybe someone else enjoys this overview.
STD by Chris Hatch or its medieval replacement of the Great Pox by @hodgekiss. The unique disease ID is 96.
@lamare-sims Elder Cough and Adult Weakness (inside of the RandomDeathSickness mod). The unique IDs are 34 and 314, respectively.
MidgetheTree’s Guinea Pig Disease. Uses the IDs of maxis mysterious disease from 99-199.
Lamare’s Carbon Simoxide poisoning. The unique ID is 604. Run the fuel generator inside, or near windows, doors or stairs that lead inside, will cause carbon simoxide poisoning (CSOP).
Nyami's Chronic Illness mod uses a unique token instead of the "disease token" of the game, therefore representing a whole new class of disease. More details below.
Are there more mods out there, that assign a unique disease ID? Or create a new disease?
Recently, I noticed a shift in terminology regarding disease token properties—e.g. in code and mods by @episims, @lamare-sims or @blueybre (formerly know as LimeYoshi). My guess is that Maxis updated the disease properties BCON with labels in a later expansion pack. Because, if you open the latest object.package, you will find:
BCON x1001 (group ID 0x7F8A70B6)
The disease ID is still labeled as "SH: sympton hash" in maxis plague dialog string and in the early disease studies by Chris Hatch, Cyjon and J. M. Pescado. (Did I forget someone? let me know in the comments.)
If you use the FFS Lot Debugger (which uses maxis coding and labels) you might be familiar with the earlier terminology.
Terminology in modern mods are labeled green.
SH: Symptom Hash became disease ID
LD: Lethal Dose == deadliness. (Lamare called it the "Death Threshold"—my personal favorite).
CS: Current Severity (if CS >= LD, sim dies) == severity
CT: Contagiousness (if -1, no disease tiles are droped and other sims can't catch it.)
RP: Recovery Points == avarage care (positive means your sim is recovering, negative means it will get worse)
RHC: Recovery Hour Count == loops since update (recovery points are subtracted from severity at fixed intervals. Popular mods let you adjust those intervals, making diseases more deadly.)
UNK: Pescado wrote "Your guess is as good as mine. ChrisHatch wrote that it is the 8th value and might be the diseasID." Which turned out to be incorrect, as we now know it is called initial severity.
From a coding perspective, I needed to learn which values I have to give the disease token to make a Sim sick with a specific disease. Below is an overview of the values that define and characterize the available diseases the disease token will be given when it is created upon infection. Meaning, that these are initial values that are set by the code and from where the disease controller will progress the sickness.
A wonderful feature of @lamare-sims mod is that some of the disease properties for Adult Weakness and Elders' Cough are BCON-tunable. The table above should help you to put these values into perspective.
The CS and IS values of Maxis Mysterious Diseases calculated based on skill, mood and personality when the virus is generated via the Biotech Station. The end result is a rough d90 with a skewed distribution towards lower numbers. If you want to know how, read BlueyBre's reblock comment of this post.
After staring at the original maxis mystrious disease code for far toooo long without beeing able to decipher it, I decided to used Epi's Biotech Station to infect a large number of Sims (hehehe) to eyeball empirically determine the values leading to easier code for a recent mod I am working on. My tests showed a rough I wanted somthing more dangerous then pneumonia in the onset and setteled on d40+50. This gives the same maximum severity as food poisoning and pneumonia (90), but the average level of severity is higher upon initial infection. Making it the more dangerous disease. And, the Mysterious Disease has the highest contagiousness of all. @blueybre explaines how the maxis calculations work in his reblock. Turns out, I was at least in the same ball park. And that SimPe displays and handles the random number primitive a little odd for my taste. See below.
MidgetheTree, like Epi, used the same value for CS and IS in the Guinea Pig disease. The code sets the values as a d50. Making the Guinea pig disease a little less dangerous than the maxis MD.
For my project, I decided to use d40+50 for CS but an IS of d50. I am currently revisiting my mod based on BlueyBre's comment.
The STD has code, that assigns different values to playables and townies. Clever, since the disease of townies does not progress. Its severity starts of quite close to the death threshold and if you have mods that make diseases more severe, this diasease is deadly very fast.
Nyamis Chronical Illness does not use the ingame "disease token". It codes a unique new token. That means, ingame features and mods alike that search for the GUID of the disease token (comfort soup, immunity, spells, ginie wishes, the lot debugger, the simmanipulator, Simlers90 disease mod etc.) can't report or affect this disease. It is indeed a very unique illness.
@lamare-sims reblock added one more disease to the list. Yay! Its carbon simoxide poisoning if you run a power generator indoor. It will take longer to die, the death threshold is the highest so far and the onset severity is low. Similar to food poisoning, it is not contagiousness.
One question for me remains after all this:
What does initial severity do?
My in-game tests did not reveal what this value does. It never changes when a disease progresses. It isn't really 'initial' in the sense that the sickness starts with it, because that is the value of CS. CS then changes as a disease progresses.
Is it more like a minimum value for severity that CS can't drop below? That doesn't make sense, though, because if CS becomes ≤0, a Sim is 'healed.' My tests confirm Sims are healed through sleep for an STD.
Having a different value on the disease onset in CS and IS aslo has no effect.
Is someone out there that can explain it? Point me into a direction?
yay, Blueybre and Lamare had more insights into Sims diseases. Go and read their reblocks!
Thank you so much for sharing your notes and explaining aspecs that I havent't covered yet.
They shed some light on the initial severity property, on how the value of the disease ID is used later on to calculate the symptons. And how mad your scientist has to be to create the perfect virus on the unmodded Biotech Station.
Thanks to BlueyBre, I learned that SimPe displays and handles primitive 0x08 differently. It displays "zero to 50" but you actually get 0-49. After debating back and forth with myself, I decided to leave my numbers in the table. But highlighted it as the SimPe numbers.
I guess its why there is a coinflip global. Because in theory, you could use primitiv 0x08 from "0 to 1" for a coinflip calculation, or so I thought. With the new inside, that would only give me zeros? I think I will test that in game. Just out of curiosity.