Skip to main content
This section of the configuration includes all the data required for the disease system to function. If you want to create a custom disease, you’ll need to add it to this file and define all the necessary properties. To keep things consistent and easy to understand, try to follow the naming conventions used in the existing entries. Note that the properties are not standardized across all diseases, each disease can have its own unique parameters, which can be customized and documented separately. Below, I’ll explain only the parameters that might not be immediately self explanatory.

Cold

For example, some properties of the “cold” disease are also found in other diseases:
  • name: REQUIRED, this is the name the module will be registered with in the systems
  • displayName: REQUIRED The friendly name, must be readable since it will end up in the UI eventually
  • healthLossPerTick: The amount of health lost per tick during the effect.
  • tickRate: The delay (in milliseconds) between ticks in the main module thread. Typically used for checking positions, temperature, and other similar tasks.
  • effectRate: The delay between each loop of the effect thread. This determines how often the effects are applied. (See healthLossPerTick for context.)
  • autoHealTime: The amount of time it takes to heal automatically, if you want this to be healed only by a medicine set it to -1
  • maxColdnessLevel: This is specific for this disease, basically it sets the maximum allowed value of “coldness”.
  • coldTemperature: The temperature considered to be cold for this disease.
  • temperatureRate: The coefficient used to increase the coldness level.
  • waterRate: The coefficient used to increase the coldness level based on water exposure.
  • symptoms: These are non-visible or roleplayable symptoms that can be detected by a doctor, typically through UI tools like temperature or heart rate measurement. These are required for the UI to function properly. You can customize these symptoms, as they are intended to give the doctor clues for administering the correct treatment. For example, the common cold will never cause a temperature of 40°C; such high temperatures likely indicate a different disease, such as malaria or cholera.

What is coldness

The coldness system works as follows: a player starts with a coldness level set to 0. Whenever a “cold factor” is present, such as being in a cold environment or in water, the coldness value increases by 1 * temperatureRate for cold temperatures or 1 * waterRate for being in water. The coldness level will then decrease by 1 each tick when the player is no longer exposed to any “cold factor.” Example A:
  • Player is in water.
  • WaterRate is set to 2.
  • Coldness is 0
  • Coldness gets incremented by 2 each tick
  • Coldness is 2
Example B:
  • Player is in water and in cold temperature.
  • WaterRate is set to 2 and temperatureRate is set to 1.
  • Coldness is 0
  • Coldness gets incremente by 2 for being in water and 1 for being in a cold temperature.
  • Coldness is 3
Example C:
  • Player is in good temperature and not in water.
  • Coldness is already at 10.
  • Coldness gets decreased by 1
  • Coldness is 9.

Malaria/Cholera

Infection level works the same as Coldness, take a look at the comments in the config or just scroll up to see the explanation in this page.
  • infectionZonesProbability: This is a list of zones where you could get infected, for each tick you’re inside one of these zones you will get an infection point. Each zone has a coords value which is the center of it, a radius which is how extended it is and the amount of infection points you get standing there without wearing a bandana.