From b187fb527b7b7eb02d527b262a65ce177db2253a Mon Sep 17 00:00:00 2001 From: Pok245 <113675512+Pok27@users.noreply.github.com> Date: Fri, 26 Sep 2025 11:39:42 +0300 Subject: [PATCH 01/13] diseases --- .../round-flow/proposals/diseases.md | 141 ++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 src/en/space-station-14/round-flow/proposals/diseases.md diff --git a/src/en/space-station-14/round-flow/proposals/diseases.md b/src/en/space-station-14/round-flow/proposals/diseases.md new file mode 100644 index 0000000000..8d0a92fb69 --- /dev/null +++ b/src/en/space-station-14/round-flow/proposals/diseases.md @@ -0,0 +1,141 @@ +# Diseases + +| Designers | Implemented | GitHub Links | +|---|---|---| +| Pok | ⚠️ Partially | Part 1: space-wizards/space-station-14#40545 | + +This document describes the mechanics of diseases, largely based on the [SS13 Paradise](https://github.com/ParadiseSS13/Paradise) build, as a simple and straightforward implementation. + +## Diseases mechanics +Diseases can be viruses, infections, or special conditions of living beings; they can have symptoms, stages, and treatment phases. + +The mechanics are based on disease prototypes and the carrier component. Each disease has a set of stages, a probability of progression, and infection parameters. Infection may have an incubation period during which symptoms and spread are disabled. On each tick, the system advances the stage with a specified probability, displays sensations, and attempts to trigger the symptoms of the current stage. + +### Immunity +Immunity is represented on the carrier as the probability of blocking infection with a specific disease. + +After complete recovery, the base immunity strength to the disease is applied. Immunity can also be pre-configured for each entity in the carrier component or [vaccines](#vaccines). + +### Stealth Flags +A characteristic of a disease that helps to conceal it. Some chemicals should reduce the stealth level of the disease, this is especially important for diseases with hidden treatment methods. + +* **None:** default behavior. +* **Hidden:** do not show in HUD. +* **VeryHidden:** hide from HUD, diagnoser, and health analyzer. +* **HiddenTreatment:** hide treatment steps in the diagnoser. +* **HiddenStage:** hide stage in the diagnoser and health analyzer. + +### Types of infection + +#### Contact +The infected spreads the virus through direct contact with other entities and through contact with surfaces. + +Mechanics: +* Through direct contact (hitting, touching), there is a chance of the virus being transmitted from the infected to the healthy. +* When in contact with a surface, the infected entity leaves a level of contamination on it. +* With each subsequent contact with the same surface, the level of contamination increases. +* Over time, the level of surface contamination gradually decreases. +* A healthy person interacting with an infected surface reduces the level of contamination; at the same time, they have a chance of becoming infected, which depends on the remaining level of contamination and the characteristics of the virus. + +Protective factors: +* Gloves (40%) +* Feet (20%) +* Outer clothing (20%) +* Inner clothing (10%) + +#### Airborne +The virus spreads through the air: an infected person releases particles when they exhale, cough, etc.; healthy people can inhale them and become infected. + +Mechanics: +* An infected entity generates a certain amount of virus in the surrounding atmosphere when they exhale. +* The concentration of the virus in the air around the source changes over time and distance. +* For airborne diseases, the environment parameter is important - under what atmospheric conditions can the virus survive or multiply. + * Example: miasma a suitable atmosphere for reproduction; when this environment is eliminated, the virus gradually dies. + +A simplified implementation allows for a simple chance of transmission within a certain radius from a breathing infected person to a suitable healthy person. + +Protective factors: +* Mask (40%) +* Head (20%) +* Eyes (10%) +* Connected cylinder (75%) + +#### Through blood +The infection is transmitted when infected blood comes into contact with the blood of a healthy person. + +Mechanics: +* Transmission occurs only when infected blood enters the bloodstream of a healthy entity. +* The probability of infection depends on the volume of blood and the characteristics of the virus. + +### Symptoms +Symptoms are configured as separate prototypes and tied to the stages of the disease. A symptom has a base chance of triggering per tick and a set of behavioral effects. Some symptoms can increase the spread of infection — for example, causing a one-time airborne “spread” that uses the radius and chance of the disease with symptom multipliers. + +### Treatment +Treatment is defined by healing steps at the disease level or a specific stage. On each tick, the system attempts to apply the appropriate steps with their probability (default is 100%; can be used for treatment with reagents). + +A step may lower the stage instead of a complete cure. Complete cure removes the disease and grants post-immunity. Individual symptoms may have their own steps that do not cure the disease but suppress the symptom for a specified period of time. + +The main methods of treatment are: +* **Waiting:** cure after staying in the disease for a specified time (in ticks) with a certain probability of success. +* **Temperature:** requires staying below a specified body temperature for several ticks in a row. +* **Bed rest:** chance of recovery when in a hospital bed or lying down; the chance may increase during sleep. +* **Reagents:** recovery when a set of reagents is present in the bloodstream at or above the required levels (reagents are not consumed). + +## Diagnostics +Diagnostics is built around two tools: +* Sample stick: used on a living object with a short delay; records a list of active diseases and their stages in a sample with the subject's name and DNA. +* Diagnoser: takes a sample and displays the diseases found, their current stages, characteristics, and descriptions/treatment steps in the UI. Can print paper reports; some characteristics will not be recorded in them. + +### Medical HUD and Console +Display an icon next to the infected person. If the disease is positive, it will be displayed in blue. + +### Analyzer +Shows the presence of the disease, its stage, and a hint in the tooltip: use the diagnoser for a detailed examination. + +## Diagnoser +The diagnoser is a stationary medical console that accepts a disease sample and provides a detailed analysis for medical staff. It does not detect diseases on its own, a sample is required. + +Inputs: +* Accepts a sample produced by the sample stick. Only one active sample is analyzed at a time. The sample preserves the subject's name and DNA. + +Displayed information (subject to stealth flags): +* **Patient:** name and DNA from the sample metadata. +* **Detected diseases:** list of diseases found in the sample. + * Name and description. + * Stage and stage progress. + * Incubation status if applicable. + * Spread characteristics: infection type (air/contact/blood) and general contagion parameters. + * Severity and notable symptoms for the current stage. + * Treatment steps and hints. + +Actions: +* Print report: prints a paper report with the current analysis; some fields may be omitted from printouts. +* Eject sample: returns the sample to the user without modification. + +## Vaccines +Vaccines are a special reagent (`id: vaccine`) that add disease-specific immunity by writing active entries to the carrier's resistances. + +Resistance mechanics: +* After a complete cure, the host receives an inactive resistance entry for that disease. Inactive entries do not protect but are eligible for vaccine cloning in the Vaccinator. The cloned vaccine, when administered, converts the matching resistance to active on the recipient. +* Active resistance completely blocks infection with the specified disease, but they cannot be used to create vaccines. + +Vaccines mechanics: +* Targeting: each vaccine dose contains a list of disease types (paths). It only affects those specific diseases. +* Effect on carrier: on internal application, for each matching disease the host gets an active resistance entry added to resistances. This prevents future contraction of those diseases and does not cure existing ones by itself. +* Stacking/merge: mixing vaccine reagents merges their target lists; multiple sources combine into one set of resistances. + +Notes: +* Resistance requires the disease to allow resistance. +* Normal metabolism applies; no special decay or booster mechanics exist beyond standard reagent behavior. + +## Vaccinator +Vaccinator a stationary virology machine that synthesizes vaccine bottles based on a loaded blood sample. It distinguishes between inactive and active resistances in the sample. + +Inputs: +* Accepts an open reagent container (e.g., beaker) containing a blood sample. The machine reads detected strains and the donor's stored resistances (if present). + +UI and actions: +* Culture Information: displays detected strains, analysis progress, and allows naming/printing release forms. +* Antibodies: lists disease resistances found in the sample with their state. Only inactive resistances can be used to clone a vaccine; active resistances are shown but not clonable. +* Clone Vaccine: available only for inactive resistances. Creates a glass bottle named after the target disease, filled with 15 units of [vaccine](#vaccines) that, when administered, activates that resistance on the recipient. +* Eject/Destroy: ejects the loaded container or safely discards its contents. From 9516ab7c2a82d2b8d4c1686260ff761dc0520f33 Mon Sep 17 00:00:00 2001 From: Pok245 <113675512+Pok27@users.noreply.github.com> Date: Fri, 26 Sep 2025 13:38:58 +0300 Subject: [PATCH 02/13] Why --- .../round-flow/proposals/diseases.md | 39 +++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/src/en/space-station-14/round-flow/proposals/diseases.md b/src/en/space-station-14/round-flow/proposals/diseases.md index 8d0a92fb69..05b34e05f5 100644 --- a/src/en/space-station-14/round-flow/proposals/diseases.md +++ b/src/en/space-station-14/round-flow/proposals/diseases.md @@ -4,9 +4,42 @@ |---|---|---| | Pok | ⚠️ Partially | Part 1: space-wizards/space-station-14#40545 | -This document describes the mechanics of diseases, largely based on the [SS13 Paradise](https://github.com/ParadiseSS13/Paradise) build, as a simple and straightforward implementation. +This document describes the mechanisms of diseases and virology. -## Diseases mechanics +## Why simulate diseases +* Deepens medical gameplay with diagnosis, triage, and prevention. +* Creates emergent, station-wide incidents that demand coordination. +* Increases the number of unexpected situations in a round due to a variety of symptoms and spread. + +## Gameplay impact + +### Сrew +* Notice symptoms; use PPE or seek medical help. +* Provide samples (use the [Diagnoser](#diagnoser)) isolate or disclose status. +* Follow treatments, take [Vaccines](#vaccines) for immunity. +* Comply with quarantine and cleaning. + +### Antagonists +* Spread of infection; exploit crowds and airflow. +* Take advantage of the panic at the station to achieve your goals. + +### Departments +* Medical/Virology: see. [Virology](#Virology) +* Security: enforce quarantines and access, manage crowds, investigate intent. +* Engineering/Atmos: adjust ventilation/scrubbers, seal routes, set up decontamination. +* Cargo: supply PPE, cleaners, meds, prioritize outbreak orders. +* Command: announce and coordinate response. + +## Virology +Purpose: detect -> confirm -> triage -> treat. + +### Role +The virologist is a separate role in the medical department, whose main task is to combat [diseases](#Diseases) by diagnosing, isolating infected individuals, obtaining medicines, and creating preventive [vaccines](#vaccines). In critical situations, close the department for quarantine. + +### Department +To combat viral diseases, the medical department is equipped with a virology sub-department, which has the necessary equipment ([Diagnoser](#diagnoser), [Vaccinator](#vaccinator), and sample stick), two connected airlocks, and separate wards. + +## Diseases Diseases can be viruses, infections, or special conditions of living beings; they can have symptoms, stages, and treatment phases. The mechanics are based on disease prototypes and the carrier component. Each disease has a set of stages, a probability of progression, and infection parameters. Infection may have an incubation period during which symptoms and spread are disabled. On each tick, the system advances the stage with a specified probability, displays sensations, and attempts to trigger the symptoms of the current stage. @@ -34,7 +67,7 @@ Mechanics: * Through direct contact (hitting, touching), there is a chance of the virus being transmitted from the infected to the healthy. * When in contact with a surface, the infected entity leaves a level of contamination on it. * With each subsequent contact with the same surface, the level of contamination increases. -* Over time, the level of surface contamination gradually decreases. +* The level of surface contamination can be cleaned with chemical agents, and also slowly decreases over time. * A healthy person interacting with an infected surface reduces the level of contamination; at the same time, they have a chance of becoming infected, which depends on the remaining level of contamination and the characteristics of the virus. Protective factors: From c567701af858052f572eb9f60b8d8ca54732a4d8 Mon Sep 17 00:00:00 2001 From: Pok245 <113675512+Pok27@users.noreply.github.com> Date: Fri, 26 Sep 2025 16:48:53 +0300 Subject: [PATCH 03/13] standard design --- src/SUMMARY.md | 1 + .../round-flow/proposals/diseases.md | 102 +++++++++++------- 2 files changed, 62 insertions(+), 41 deletions(-) diff --git a/src/SUMMARY.md b/src/SUMMARY.md index ae4eab9a39..11ee17b009 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -202,6 +202,7 @@ Space Station 14 - [Paradox Clone](en/space-station-14/round-flow/proposals/paradox-clone.md) - [Revolutionaries Rework](en/space-station-14/round-flow/proposals/revolutionaries-codeword-rework.md) - [Tourists](en/space-station-14/round-flow/proposals/tourists.md) + - [Diseases](en/space-station-14/round-flow/proposals/diseases.md) - [User Interface](en/space-station-14/user-interface.md) - [PR Guidelines](en/space-station-14/user-interface/guidelines.md) diff --git a/src/en/space-station-14/round-flow/proposals/diseases.md b/src/en/space-station-14/round-flow/proposals/diseases.md index 05b34e05f5..97090045c5 100644 --- a/src/en/space-station-14/round-flow/proposals/diseases.md +++ b/src/en/space-station-14/round-flow/proposals/diseases.md @@ -4,52 +4,72 @@ |---|---|---| | Pok | ⚠️ Partially | Part 1: space-wizards/space-station-14#40545 | +## Overview This document describes the mechanisms of diseases and virology. -## Why simulate diseases -* Deepens medical gameplay with diagnosis, triage, and prevention. -* Creates emergent, station-wide incidents that demand coordination. -* Increases the number of unexpected situations in a round due to a variety of symptoms and spread. - -## Gameplay impact - -### Сrew -* Notice symptoms; use PPE or seek medical help. -* Provide samples (use the [Diagnoser](#diagnoser)) isolate or disclose status. -* Follow treatments, take [Vaccines](#vaccines) for immunity. -* Comply with quarantine and cleaning. - -### Antagonists -* Spread of infection; exploit crowds and airflow. -* Take advantage of the panic at the station to achieve your goals. - -### Departments -* Medical/Virology: see. [Virology](#Virology) -* Security: enforce quarantines and access, manage crowds, investigate intent. -* Engineering/Atmos: adjust ventilation/scrubbers, seal routes, set up decontamination. -* Cargo: supply PPE, cleaners, meds, prioritize outbreak orders. -* Command: announce and coordinate response. - -## Virology -Purpose: detect -> confirm -> triage -> treat. - -### Role +## Background +We aim to introduce a clear, maintainable foundation for diseases and a virology role that integrates with existing medical workflows. The initial scope focuses on readable mechanics, predictable player tools, and performant systems that can be iterated on in future PRs on mutations and virus creation. + +## Game Design Rationale + +## Purpose +Diseases should create station-scale challenges that encourage teamwork rather than rewarding solo lab loops. They exist to drive investigation, communication, and coordinated response across departments. + +## Core design principles +1. **Readable, actionable problems**. Provide clear signals so players know what to investigate and who to call. +2. **Meaningful tradeoffs**. Every response has costs and benefits (see examples below). +3. **Support coordination**. UI and tools should reduce guesswork and focus play on cooperation. + +## Mechanical tradeoffs (examples) +* Wearing PPE against viruses instead of more desirable items or avoiding infection altogether. +* Deploy a narrow vaccine cloned from the first recovered patient now, versus wait to gather more samples to merge resistances into a broader vaccine. + +## Signals and tooling +Provide clear, actionable information to support decisions. +1. Quick identification (HUD/console). +2. Detailed diagnostics in the department (diagnoser). + +### Gameplay to avoid +* Prolonged solo lab isolation with little crew contact. Core progress depends on live samples, ward triage, distribution, and inter-department requests. +* Unbounded pandemics that overwhelm the station. Bounded severity, tunable spread, and accessible treatments. +* Excessive or indefinite quarantine. Quarantines are situational and mechanically costly; mitigations (PPE, cleaning, vaccines) are preferred. + +## Roundflow & Player interaction +### Work in virology +This is the work of the medical department, mainly prioritized by virologists. + +1. **Early response:** coordinate with chemists, stock up on personal protective equipment and cleaning supplies. +2. **Detection:** respond to reports of symptoms, collect samples using sample sticks, confirm diagnosis using a ([diagnoser](#diagnoser)). +3. **Mitigation:** organize triage and treatment, coordinate limited quarantine measures with security, request engineering services to ventilate or isolate the area, schedule cleaning. +4. **Prevention:** use a sample from a recovered patient to clone target [vaccines](#vaccines) and distribute them. +5. **Recovery:** lift quarantine, conduct follow-up observation. + +## Desired player experience +* Medical leads the diagnostic and treatment loop. +* Engineering and Atmos handle infrastructure responses. +* Cargo and Chemistry provide logistics and reagents. +* Crew make meaningful, situational choices: mask up, seek treatment, help with cleaning. +* Antagonists may exploit confusion, but diseases are **not** griefy, unstoppable tools. + +## Features to be added +### Virology +#### Role The virologist is a separate role in the medical department, whose main task is to combat [diseases](#Diseases) by diagnosing, isolating infected individuals, obtaining medicines, and creating preventive [vaccines](#vaccines). In critical situations, close the department for quarantine. -### Department -To combat viral diseases, the medical department is equipped with a virology sub-department, which has the necessary equipment ([Diagnoser](#diagnoser), [Vaccinator](#vaccinator), and sample stick), two connected airlocks, and separate wards. +#### Department +To combat viral diseases, the medical department is equipped with a virology sub-department, which has the necessary equipment diagnoser, vaccinator, and sample stick), two connected airlocks, and separate wards. -## Diseases +### Diseases Diseases can be viruses, infections, or special conditions of living beings; they can have symptoms, stages, and treatment phases. The mechanics are based on disease prototypes and the carrier component. Each disease has a set of stages, a probability of progression, and infection parameters. Infection may have an incubation period during which symptoms and spread are disabled. On each tick, the system advances the stage with a specified probability, displays sensations, and attempts to trigger the symptoms of the current stage. -### Immunity +#### Immunity Immunity is represented on the carrier as the probability of blocking infection with a specific disease. After complete recovery, the base immunity strength to the disease is applied. Immunity can also be pre-configured for each entity in the carrier component or [vaccines](#vaccines). -### Stealth Flags +#### Stealth Flags A characteristic of a disease that helps to conceal it. Some chemicals should reduce the stealth level of the disease, this is especially important for diseases with hidden treatment methods. * **None:** default behavior. @@ -83,7 +103,7 @@ Mechanics: * An infected entity generates a certain amount of virus in the surrounding atmosphere when they exhale. * The concentration of the virus in the air around the source changes over time and distance. * For airborne diseases, the environment parameter is important - under what atmospheric conditions can the virus survive or multiply. - * Example: miasma a suitable atmosphere for reproduction; when this environment is eliminated, the virus gradually dies. +* Example: miasma is a suitable atmosphere for reproduction; when this environment is eliminated, the virus gradually dies. A simplified implementation allows for a simple chance of transmission within a certain radius from a breathing infected person to a suitable healthy person. @@ -114,18 +134,18 @@ The main methods of treatment are: * **Bed rest:** chance of recovery when in a hospital bed or lying down; the chance may increase during sleep. * **Reagents:** recovery when a set of reagents is present in the bloodstream at or above the required levels (reagents are not consumed). -## Diagnostics +### Diagnostics Diagnostics is built around two tools: * Sample stick: used on a living object with a short delay; records a list of active diseases and their stages in a sample with the subject's name and DNA. * Diagnoser: takes a sample and displays the diseases found, their current stages, characteristics, and descriptions/treatment steps in the UI. Can print paper reports; some characteristics will not be recorded in them. -### Medical HUD and Console +#### Medical HUD and Console Display an icon next to the infected person. If the disease is positive, it will be displayed in blue. -### Analyzer +#### Analyzer Shows the presence of the disease, its stage, and a hint in the tooltip: use the diagnoser for a detailed examination. -## Diagnoser +### Diagnoser The diagnoser is a stationary medical console that accepts a disease sample and provides a detailed analysis for medical staff. It does not detect diseases on its own, a sample is required. Inputs: @@ -145,7 +165,7 @@ Actions: * Print report: prints a paper report with the current analysis; some fields may be omitted from printouts. * Eject sample: returns the sample to the user without modification. -## Vaccines +### Vaccines Vaccines are a special reagent (`id: vaccine`) that add disease-specific immunity by writing active entries to the carrier's resistances. Resistance mechanics: @@ -161,8 +181,8 @@ Notes: * Resistance requires the disease to allow resistance. * Normal metabolism applies; no special decay or booster mechanics exist beyond standard reagent behavior. -## Vaccinator -Vaccinator a stationary virology machine that synthesizes vaccine bottles based on a loaded blood sample. It distinguishes between inactive and active resistances in the sample. +### Vaccinator +Vaccinator is a stationary virology machine that synthesizes vaccine bottles based on a loaded blood sample. It distinguishes between inactive and active resistances in the sample. Inputs: * Accepts an open reagent container (e.g., beaker) containing a blood sample. The machine reads detected strains and the donor's stored resistances (if present). From 3dc02856548c862903c8b3d7c51e852b8f1d8d50 Mon Sep 17 00:00:00 2001 From: Pok245 <113675512+Pok27@users.noreply.github.com> Date: Sat, 27 Sep 2025 05:04:14 +0300 Subject: [PATCH 04/13] Overview --- .../space-station-14/round-flow/proposals/diseases.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/en/space-station-14/round-flow/proposals/diseases.md b/src/en/space-station-14/round-flow/proposals/diseases.md index 97090045c5..e0227df10a 100644 --- a/src/en/space-station-14/round-flow/proposals/diseases.md +++ b/src/en/space-station-14/round-flow/proposals/diseases.md @@ -5,7 +5,13 @@ | Pok | ⚠️ Partially | Part 1: space-wizards/space-station-14#40545 | ## Overview -This document describes the mechanisms of diseases and virology. +This document describes the mechanisms of diseases and virology, largely based on the [SS13 Paradise](https://github.com/ParadiseSS13/Paradise) build, as a simple and straightforward implementation. + +The transfer is not strict, there are and may be differences, priority should be given to the game design described in this document. + +Examples of differences: +* Vaccines require less time spent by a virologist in one place. +* Airborne transmission routes, taking into account viruses in the atmosphere, for greater involvement of the engineering department. ## Background We aim to introduce a clear, maintainable foundation for diseases and a virology role that integrates with existing medical workflows. The initial scope focuses on readable mechanics, predictable player tools, and performant systems that can be iterated on in future PRs on mutations and virus creation. @@ -57,7 +63,7 @@ This is the work of the medical department, mainly prioritized by virologists. The virologist is a separate role in the medical department, whose main task is to combat [diseases](#Diseases) by diagnosing, isolating infected individuals, obtaining medicines, and creating preventive [vaccines](#vaccines). In critical situations, close the department for quarantine. #### Department -To combat viral diseases, the medical department is equipped with a virology sub-department, which has the necessary equipment diagnoser, vaccinator, and sample stick), two connected airlocks, and separate wards. +To combat viral diseases, the medical department is equipped with a virology sub-department, which has the necessary equipment (diagnoser, vaccinator, and sample stick), two connected airlocks, and separate wards. ### Diseases Diseases can be viruses, infections, or special conditions of living beings; they can have symptoms, stages, and treatment phases. From 1e59f0ae0ec4894e81f89d253689d2b51befb373 Mon Sep 17 00:00:00 2001 From: Pok245 <113675512+Pok27@users.noreply.github.com> Date: Sun, 28 Sep 2025 06:35:49 +0300 Subject: [PATCH 05/13] clarifications --- src/en/space-station-14/round-flow/proposals/diseases.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/en/space-station-14/round-flow/proposals/diseases.md b/src/en/space-station-14/round-flow/proposals/diseases.md index e0227df10a..f9f38229bd 100644 --- a/src/en/space-station-14/round-flow/proposals/diseases.md +++ b/src/en/space-station-14/round-flow/proposals/diseases.md @@ -7,6 +7,8 @@ ## Overview This document describes the mechanisms of diseases and virology, largely based on the [SS13 Paradise](https://github.com/ParadiseSS13/Paradise) build, as a simple and straightforward implementation. +This document focuses on the viral aspect of diseases, but implementation should allow for use in medical systems with progressive physical conditions. + The transfer is not strict, there are and may be differences, priority should be given to the game design described in this document. Examples of differences: @@ -21,11 +23,16 @@ We aim to introduce a clear, maintainable foundation for diseases and a virology ## Purpose Diseases should create station-scale challenges that encourage teamwork rather than rewarding solo lab loops. They exist to drive investigation, communication, and coordinated response across departments. -## Core design principles +### Core design principles 1. **Readable, actionable problems**. Provide clear signals so players know what to investigate and who to call. 2. **Meaningful tradeoffs**. Every response has costs and benefits (see examples below). 3. **Support coordination**. UI and tools should reduce guesswork and focus play on cooperation. +## The onset of disease +Outbreaks may be seeded predictably (scripted incidents, contaminated cargo, wildlife) or arise stochastically from environmental conditions (miasma, poor hygiene, crowding). Randomness adds variety, not force majeure: every disease must offer counterplay via early signals, PPE and cleaning, ventilation, targeted reagents, vaccination, and situational isolation. + +Species and animals can possess innate or acquired resistances that modify infection chance, severity, or symptom expression; diagnostics and vaccines should respect these differences. + ## Mechanical tradeoffs (examples) * Wearing PPE against viruses instead of more desirable items or avoiding infection altogether. * Deploy a narrow vaccine cloned from the first recovered patient now, versus wait to gather more samples to merge resistances into a broader vaccine. From 42391b40b27ac904d5623acabf60b6a1a9f85f05 Mon Sep 17 00:00:00 2001 From: Pok245 <113675512+Pok27@users.noreply.github.com> Date: Sun, 28 Sep 2025 16:56:52 +0300 Subject: [PATCH 06/13] fix --- src/en/space-station-14/round-flow/proposals/diseases.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/en/space-station-14/round-flow/proposals/diseases.md b/src/en/space-station-14/round-flow/proposals/diseases.md index f9f38229bd..ad75c77ea5 100644 --- a/src/en/space-station-14/round-flow/proposals/diseases.md +++ b/src/en/space-station-14/round-flow/proposals/diseases.md @@ -152,8 +152,9 @@ Diagnostics is built around two tools: * Sample stick: used on a living object with a short delay; records a list of active diseases and their stages in a sample with the subject's name and DNA. * Diagnoser: takes a sample and displays the diseases found, their current stages, characteristics, and descriptions/treatment steps in the UI. Can print paper reports; some characteristics will not be recorded in them. -#### Medical HUD and Console -Display an icon next to the infected person. If the disease is positive, it will be displayed in blue. +#### Partial diagnosis +Analyzer, medical HUD, and crew monitoring. +Displays only the presence and type of disease (beneficial virus or not). For initial warning about the presence of disease for further diagnosis. #### Analyzer Shows the presence of the disease, its stage, and a hint in the tooltip: use the diagnoser for a detailed examination. From 3bc13e91b8728d071cd5fddded5901f4025c3e93 Mon Sep 17 00:00:00 2001 From: Pok245 <113675512+Pok27@users.noreply.github.com> Date: Wed, 1 Oct 2025 13:06:39 +0300 Subject: [PATCH 07/13] Update diseases.md --- .../round-flow/proposals/diseases.md | 227 +++++++----------- 1 file changed, 89 insertions(+), 138 deletions(-) diff --git a/src/en/space-station-14/round-flow/proposals/diseases.md b/src/en/space-station-14/round-flow/proposals/diseases.md index ad75c77ea5..84fbac3527 100644 --- a/src/en/space-station-14/round-flow/proposals/diseases.md +++ b/src/en/space-station-14/round-flow/proposals/diseases.md @@ -2,99 +2,108 @@ | Designers | Implemented | GitHub Links | |---|---|---| -| Pok | ⚠️ Partially | Part 1: space-wizards/space-station-14#40545 | +| Pok | :warning: Partially | Part 1: space-wizards/space-station-14#40545 | ## Overview -This document describes the mechanisms of diseases and virology, largely based on the [SS13 Paradise](https://github.com/ParadiseSS13/Paradise) build, as a simple and straightforward implementation. +This document describes the mechanisms of diseases and virology. -This document focuses on the viral aspect of diseases, but implementation should allow for use in medical systems with progressive physical conditions. +This document focuses on viral diseases, but the implementation should also support medical systems with progressive physical conditions. -The transfer is not strict, there are and may be differences, priority should be given to the game design described in this document. +The proposed implementation may resemble those in SS13, but differs to achieve the gameplay experience described [below](#Game-Design-Rationale). Examples of differences: -* Vaccines require less time spent by a virologist in one place. -* Airborne transmission routes, taking into account viruses in the atmosphere, for greater involvement of the engineering department. +* Vaccines require less time spent by a medical personnel in one place. +* Airborne transmission routes that account for viruses in the atmosphere, increasing engineering involvement. ## Background We aim to introduce a clear, maintainable foundation for diseases and a virology role that integrates with existing medical workflows. The initial scope focuses on readable mechanics, predictable player tools, and performant systems that can be iterated on in future PRs on mutations and virus creation. ## Game Design Rationale +### The onset of disease +Outbreaks may be seeded predictably or arise stochastically from environmental conditions. Randomness adds variety, not force majeure: every disease must offer counterplay via early signals. -## Purpose -Diseases should create station-scale challenges that encourage teamwork rather than rewarding solo lab loops. They exist to drive investigation, communication, and coordinated response across departments. +Species and animals may possess innate or acquired resistance that alters the probability of infection, to create desired gameplay situations. -### Core design principles -1. **Readable, actionable problems**. Provide clear signals so players know what to investigate and who to call. -2. **Meaningful tradeoffs**. Every response has costs and benefits (see examples below). -3. **Support coordination**. UI and tools should reduce guesswork and focus play on cooperation. +#### Global outbreaks +A virus outbreak affecting a significant number of station personnel (random event). It need not be rare, due to measures that [protect against spread](#protection-against-spread), but it should not occur every round. -## The onset of disease -Outbreaks may be seeded predictably (scripted incidents, contaminated cargo, wildlife) or arise stochastically from environmental conditions (miasma, poor hygiene, crowding). Randomness adds variety, not force majeure: every disease must offer counterplay via early signals, PPE and cleaning, ventilation, targeted reagents, vaccination, and situational isolation. +#### Local outbreak +A virus outbreak affecting one or more individuals due to a predictable event (contact with a corpse, artifact, food poisoning, etc.). May be more dangerous for the carrier because the cause is localized rather than random. -Species and animals can possess innate or acquired resistances that modify infection chance, severity, or symptom expression; diagnostics and vaccines should respect these differences. +### Diagnostics +Diagnostics is an important measure for combating disease; it can be either comprehensive or simply warn of the presence of disease. + +Some diseases may be hidden, countermeasures should exist, such as a reagent that temporarily reveals the disease to enable targeted treatment. + +#### Partial diagnosis +Partial diagnostics should warn of the presence of illness but not indicate its type or treatment, motivating more detailed examination using specialized tools. +These include HUDs, analyzers, and crew monitoring—simple standard medical tools. + +#### Complete diagnostics +A complete diagnosis should provide comprehensive information about the disease, including its characteristics and stages of treatment. Therefore, it should be performed by a stationary machine in the medical department (the diagnoser). For convenience, it can accept samples collected beforehand (e.g., a swab). + +### Protection against spread +Protection prioritizes targeted mitigations that let infected crew keep playing while reducing risk to others. -## Mechanical tradeoffs (examples) -* Wearing PPE against viruses instead of more desirable items or avoiding infection altogether. -* Deploy a narrow vaccine cloned from the first recovered patient now, versus wait to gather more samples to merge resistances into a broader vaccine. +* Diseases with different types of spread should have their own reagent that greatly reduces the likelihood of spreading the virus while it is active. This lets infected crew keep moving while awaiting treatment. Some strong diseases may be resistant. -## Signals and tooling -Provide clear, actionable information to support decisions. -1. Quick identification (HUD/console). -2. Detailed diagnostics in the department (diagnoser). +* Different types of infection should be blocked by different types of clothing. This increases immersion—less clothing means more points of contact with the disease. Specialized clothing (e.g., medical masks) may have their own protection values. Percentages should be determined during playtesting. -### Gameplay to avoid -* Prolonged solo lab isolation with little crew contact. Core progress depends on live samples, ward triage, distribution, and inter-department requests. -* Unbounded pandemics that overwhelm the station. Bounded severity, tunable spread, and accessible treatments. -* Excessive or indefinite quarantine. Quarantines are situational and mechanically costly; mitigations (PPE, cleaning, vaccines) are preferred. +* Quarantine should be avoided as a priority containment measure, as it requires the crew to remain in isolation, which is not a pleasant experience. For some major events or game modes (e.g., zombies), it is acceptable as an effective means of control. ## Roundflow & Player interaction -### Work in virology -This is the work of the medical department, mainly prioritized by virologists. - -1. **Early response:** coordinate with chemists, stock up on personal protective equipment and cleaning supplies. -2. **Detection:** respond to reports of symptoms, collect samples using sample sticks, confirm diagnosis using a ([diagnoser](#diagnoser)). -3. **Mitigation:** organize triage and treatment, coordinate limited quarantine measures with security, request engineering services to ventilate or isolate the area, schedule cleaning. -4. **Prevention:** use a sample from a recovered patient to clone target [vaccines](#vaccines) and distribute them. -5. **Recovery:** lift quarantine, conduct follow-up observation. - -## Desired player experience -* Medical leads the diagnostic and treatment loop. -* Engineering and Atmos handle infrastructure responses. -* Cargo and Chemistry provide logistics and reagents. -* Crew make meaningful, situational choices: mask up, seek treatment, help with cleaning. -* Antagonists may exploit confusion, but diseases are **not** griefy, unstoppable tools. +### Gameplay loops +A sample crew gameplay loop during a virus outbreak. + +1. Outbreak begins (global or local). Early, soft symptoms appear, crew notices and reports. +2. Triage and partial diagnostics. Suspected carriers are flagged via [partial diagnosis](#partial-diagnosis), PPE is issued to limit spread. +3. Immediate suppression and mitigation. Carriers take suppressants, wear masks and gloves, cleaning starts, ventilation is adjusted, players keep working. +4. Sampling and complete diagnostics. Med collects swabs and runs the [diagnoser](#complete-diagnostics) to identify disease, stages, and treatment paths. +5. Treatment execution. Targeted therapy is applied. Symptom suppression as needed. +6. Optional vaccine creation. The Vaccinator clones a vaccine from recovered or inactive resistances. +7. Vaccination rollout. Healthy at‑risk crew are vaccinated to prevent new cases. +8. Cleanup and follow‑up. Remaining patients are treated, hotspots decontaminated, atmos corrected. Quarantine is reserved for exceptional modes or events. ## Features to be added -### Virology -#### Role -The virologist is a separate role in the medical department, whose main task is to combat [diseases](#Diseases) by diagnosing, isolating infected individuals, obtaining medicines, and creating preventive [vaccines](#vaccines). In critical situations, close the department for quarantine. +### Virology Department +Virology is needed as a place where medical personnel can focus on treating and diagnosing viruses and, in extreme cases, isolating the crew. -#### Department -To combat viral diseases, the medical department is equipped with a virology sub-department, which has the necessary equipment (diagnoser, vaccinator, and sample stick), two connected airlocks, and separate wards. +The implementation described in this document does not require a virologist, but does not completely rule out its appearance in the future if another design document describes the need for one. + +To combat viral diseases, the medical department is equipped with a virology sub-department, which has the necessary equipment (diagnoser, vaccinator, and swab), two connected airlocks, and separate wards. ### Diseases +Common viruses should cause discomfort (vomiting, brief stuns, etc.) to motivate players to seek treatment, but should not force remove the carrier from the game when immediate treatment is not possible. Damage is allowed in later stages, but it should not be rapidly lethal and should be reducible until complete recovery. + Diseases can be viruses, infections, or special conditions of living beings; they can have symptoms, stages, and treatment phases. -The mechanics are based on disease prototypes and the carrier component. Each disease has a set of stages, a probability of progression, and infection parameters. Infection may have an incubation period during which symptoms and spread are disabled. On each tick, the system advances the stage with a specified probability, displays sensations, and attempts to trigger the symptoms of the current stage. +Mechanics: +* The mechanics are based on disease prototypes and the carrier component. Each disease has a set of stages, a probability of progression, and infection parameters. On each tick, the system advances the stage with a specified probability, displays sensations, and attempts to trigger symptoms of the current stage. #### Immunity Immunity is represented on the carrier as the probability of blocking infection with a specific disease. -After complete recovery, the base immunity strength to the disease is applied. Immunity can also be pre-configured for each entity in the carrier component or [vaccines](#vaccines). +#### Symptoms +Symptoms should clearly signal that a character is ill, drive the player toward medical tools and help, and shape risk for nearby crew without turning the carrier into a spectator. -#### Stealth Flags -A characteristic of a disease that helps to conceal it. Some chemicals should reduce the stealth level of the disease, this is especially important for diseases with hidden treatment methods. +Design goals: +1. Noticeable cues to the carrier and observers (emotes, sensations) so suspicion of illness does not require machines. +2. Frequency and intensity scale by stage with clear early tells; avoid sudden spikes to severe effects with no telegraphing. +3. Symptom channels reflect infection routes (cough/sneeze -> airborne, vomiting/slime -> contact, bleeding -> bloodborne) to teach responses. +4. Short stumbles or brief stuns are acceptable; long stun chains or frequent item drops that stall the player are not. +5. Symptoms can harm not only the carrier, but also those around them (e.g., spreading the virus more actively when sneezing), motivating the crew to suppress the symptom or cure the carrier. -* **None:** default behavior. -* **Hidden:** do not show in HUD. -* **VeryHidden:** hide from HUD, diagnoser, and health analyzer. -* **HiddenTreatment:** hide treatment steps in the diagnoser. -* **HiddenStage:** hide stage in the diagnoser and health analyzer. +#### Treatment +Treatment of the disease can be complete, reducing the stage, or at the symptom level. It all depends on the type of disease and what goal it pursues. -### Types of infection +Design goals: +1. Complete diagnostics inform targeted therapy, which is a reward for the time spent. +2. Blind treatment can be wrong; drugs should have side effects in small doses to punish random search. +3. Treatment at the symptom level is temporary and should contain the harm from the disease until complete treatment, so it may require less effort. +4. Completing treatment grants immunity against this disease. Its strength depends on the disease type, but is usually high to prevent reinfection loops. -#### Contact -The infected spreads the virus through direct contact with other entities and through contact with surfaces. +#### Contact infection +Contact infections spread via direct touch and contaminated surfaces. This path exists to promote hygiene, and active decontamination. Mechanics: * Through direct contact (hitting, touching), there is a chance of the virus being transmitted from the infected to the healthy. @@ -103,106 +112,48 @@ Mechanics: * The level of surface contamination can be cleaned with chemical agents, and also slowly decreases over time. * A healthy person interacting with an infected surface reduces the level of contamination; at the same time, they have a chance of becoming infected, which depends on the remaining level of contamination and the characteristics of the virus. -Protective factors: -* Gloves (40%) -* Feet (20%) -* Outer clothing (20%) -* Inner clothing (10%) +Countermeasures: +* Clean contaminated surfaces using cleaning chemicals that can be used by cleaners or medical personnel. -#### Airborne -The virus spreads through the air: an infected person releases particles when they exhale, cough, etc.; healthy people can inhale them and become infected. +#### Airborne infection +Airborne infections spread through exhaled aerosols and ambient atmosphere. This path makes masks, ventilation, and air‑quality management matter. Mechanics: * An infected entity generates a certain amount of virus in the surrounding atmosphere when they exhale. * The concentration of the virus in the air around the source changes over time and distance. -* For airborne diseases, the environment parameter is important - under what atmospheric conditions can the virus survive or multiply. -* Example: miasma is a suitable atmosphere for reproduction; when this environment is eliminated, the virus gradually dies. +* For airborne diseases, environmental conditions matter—the atmospheric conditions under which the virus can survive or multiply. + * Example: miasma is a suitable atmosphere for reproduction. When this environment is eliminated, the virus gradually dies. -A simplified implementation allows for a simple chance of transmission within a certain radius from a breathing infected person to a suitable healthy person. +A simplified implementation uses a flat chance of transmission within a certain radius from a breathing infected person to a suitable healthy person. -Protective factors: -* Mask (40%) -* Head (20%) -* Eyes (10%) -* Connected cylinder (75%) +Countermeasures: +* Eliminating harmful atmospheres in which viruses multiply. This is the job of an atmospheric technician, which leads to more interaction between departments. -#### Through blood -The infection is transmitted when infected blood comes into contact with the blood of a healthy person. +#### Blood infection +Blood infections require blood-to-blood exposure. This path reinforces safety during blood transfusions. Mechanics: * Transmission occurs only when infected blood enters the bloodstream of a healthy entity. * The probability of infection depends on the volume of blood and the characteristics of the virus. -### Symptoms -Symptoms are configured as separate prototypes and tied to the stages of the disease. A symptom has a base chance of triggering per tick and a set of behavioral effects. Some symptoms can increase the spread of infection — for example, causing a one-time airborne “spread” that uses the radius and chance of the disease with symptom multipliers. - -### Treatment -Treatment is defined by healing steps at the disease level or a specific stage. On each tick, the system attempts to apply the appropriate steps with their probability (default is 100%; can be used for treatment with reagents). - -A step may lower the stage instead of a complete cure. Complete cure removes the disease and grants post-immunity. Individual symptoms may have their own steps that do not cure the disease but suppress the symptom for a specified period of time. - -The main methods of treatment are: -* **Waiting:** cure after staying in the disease for a specified time (in ticks) with a certain probability of success. -* **Temperature:** requires staying below a specified body temperature for several ticks in a row. -* **Bed rest:** chance of recovery when in a hospital bed or lying down; the chance may increase during sleep. -* **Reagents:** recovery when a set of reagents is present in the bloodstream at or above the required levels (reagents are not consumed). - -### Diagnostics -Diagnostics is built around two tools: -* Sample stick: used on a living object with a short delay; records a list of active diseases and their stages in a sample with the subject's name and DNA. -* Diagnoser: takes a sample and displays the diseases found, their current stages, characteristics, and descriptions/treatment steps in the UI. Can print paper reports; some characteristics will not be recorded in them. - -#### Partial diagnosis -Analyzer, medical HUD, and crew monitoring. -Displays only the presence and type of disease (beneficial virus or not). For initial warning about the presence of disease for further diagnosis. - -#### Analyzer -Shows the presence of the disease, its stage, and a hint in the tooltip: use the diagnoser for a detailed examination. - -### Diagnoser -The diagnoser is a stationary medical console that accepts a disease sample and provides a detailed analysis for medical staff. It does not detect diseases on its own, a sample is required. - -Inputs: -* Accepts a sample produced by the sample stick. Only one active sample is analyzed at a time. The sample preserves the subject's name and DNA. - -Displayed information (subject to stealth flags): -* **Patient:** name and DNA from the sample metadata. -* **Detected diseases:** list of diseases found in the sample. - * Name and description. - * Stage and stage progress. - * Incubation status if applicable. - * Spread characteristics: infection type (air/contact/blood) and general contagion parameters. - * Severity and notable symptoms for the current stage. - * Treatment steps and hints. - -Actions: -* Print report: prints a paper report with the current analysis; some fields may be omitted from printouts. -* Eject sample: returns the sample to the user without modification. +Countermeasures: +* Cleaning and removal of blood. ### Vaccines -Vaccines are a special reagent (`id: vaccine`) that add disease-specific immunity by writing active entries to the carrier's resistances. +The primary purpose of vaccines is to reward medical treatment by preventing healthy personnel from becoming infected with this disease, rather than curing existing infections. + +Vaccines are special reagents that add disease‑specific immunity by adding active entries to the carrier's resistances. Resistance mechanics: -* After a complete cure, the host receives an inactive resistance entry for that disease. Inactive entries do not protect but are eligible for vaccine cloning in the Vaccinator. The cloned vaccine, when administered, converts the matching resistance to active on the recipient. -* Active resistance completely blocks infection with the specified disease, but they cannot be used to create vaccines. +* After a complete cure, the host receives an inactive resistance entry for that disease. Inactive entries do not protect but are eligible for vaccine cloning in the [vaccinator](#vaccinator). The cloned vaccine, when administered, converts the matching resistance to active on the recipient. +* Active entries completely block infection with the specified disease but cannot be used to create vaccines. -Vaccines mechanics: +Vaccine mechanics: * Targeting: each vaccine dose contains a list of disease types (paths). It only affects those specific diseases. * Effect on carrier: on internal application, for each matching disease the host gets an active resistance entry added to resistances. This prevents future contraction of those diseases and does not cure existing ones by itself. * Stacking/merge: mixing vaccine reagents merges their target lists; multiple sources combine into one set of resistances. -Notes: -* Resistance requires the disease to allow resistance. -* Normal metabolism applies; no special decay or booster mechanics exist beyond standard reagent behavior. - -### Vaccinator -Vaccinator is a stationary virology machine that synthesizes vaccine bottles based on a loaded blood sample. It distinguishes between inactive and active resistances in the sample. - -Inputs: -* Accepts an open reagent container (e.g., beaker) containing a blood sample. The machine reads detected strains and the donor's stored resistances (if present). +#### Vaccinator +Similar to the diagnoser, it is a way to obtain vaccines. It accepts samples for convenience and is stationary due to the utility of vaccines. -UI and actions: -* Culture Information: displays detected strains, analysis progress, and allows naming/printing release forms. -* Antibodies: lists disease resistances found in the sample with their state. Only inactive resistances can be used to clone a vaccine; active resistances are shown but not clonable. -* Clone Vaccine: available only for inactive resistances. Creates a glass bottle named after the target disease, filled with 15 units of [vaccine](#vaccines) that, when administered, activates that resistance on the recipient. -* Eject/Destroy: ejects the loaded container or safely discards its contents. +The Vaccinator is a stationary virology machine that synthesizes vaccine bottles based on a loaded blood sample. It distinguishes between inactive and active resistances in the sample. From 5844cbdd2e0db4c2c964f18e8056027751fad7a0 Mon Sep 17 00:00:00 2001 From: Pok245 <113675512+Pok27@users.noreply.github.com> Date: Thu, 2 Oct 2025 16:02:28 +0300 Subject: [PATCH 08/13] Update 1 --- .../round-flow/proposals/diseases.md | 56 ++++++++++--------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/src/en/space-station-14/round-flow/proposals/diseases.md b/src/en/space-station-14/round-flow/proposals/diseases.md index 84fbac3527..277d587dee 100644 --- a/src/en/space-station-14/round-flow/proposals/diseases.md +++ b/src/en/space-station-14/round-flow/proposals/diseases.md @@ -16,19 +16,18 @@ Examples of differences: * Airborne transmission routes that account for viruses in the atmosphere, increasing engineering involvement. ## Background -We aim to introduce a clear, maintainable foundation for diseases and a virology role that integrates with existing medical workflows. The initial scope focuses on readable mechanics, predictable player tools, and performant systems that can be iterated on in future PRs on mutations and virus creation. +This design doc aims to introduce a clear, maintainable foundation for diseases that integrates with existing medical workflows and expands the responsibilities of medical personnel. The initial scope focuses on readable mechanics, predictable player tools that can be iterated on in future PRs on mutations and virus creation. ## Game Design Rationale -### The onset of disease -Outbreaks may be seeded predictably or arise stochastically from environmental conditions. Randomness adds variety, not force majeure: every disease must offer counterplay via early signals. +### Local outbreak +A disease outbreak occurs due to a predictable event. -Species and animals may possess innate or acquired resistance that alters the probability of infection, to create desired gameplay situations. - -#### Global outbreaks -A virus outbreak affecting a significant number of station personnel (random event). It need not be rare, due to measures that [protect against spread](#protection-against-spread), but it should not occur every round. +* Disease carriers can vary (corpse, artifact, expired food, etc.) depending on the desired gaming experience. +* Diseases occur in persons upon contact with a carrier, the nature of which depends on the type of disease. The method of infection can be anything, but it must originate from the event that acts as the carrier (gas from an artifact -> airborne transmission, dirt -> contact transmission) and take into account the appropriate methods of protection. +* Diseases caused by a local event should have a low chance of infecting others so as not to provoke a chain reaction spreading to most of the station. However, this chance should not be so low that medical personnel can ignore the disease and delay treatment or [containment measures](#protection-against-spread). The danger of the disease can be regulated by the prevalence of the carrier. -#### Local outbreak -A virus outbreak affecting one or more individuals due to a predictable event (contact with a corpse, artifact, food poisoning, etc.). May be more dangerous for the carrier because the cause is localized rather than random. +### Global outbreak +TODO: there should be a description of a funny random event here. ### Diagnostics Diagnostics is an important measure for combating disease; it can be either comprehensive or simply warn of the presence of disease. @@ -43,26 +42,28 @@ These include HUDs, analyzers, and crew monitoring—simple standard medical too A complete diagnosis should provide comprehensive information about the disease, including its characteristics and stages of treatment. Therefore, it should be performed by a stationary machine in the medical department (the diagnoser). For convenience, it can accept samples collected beforehand (e.g., a swab). ### Protection against spread -Protection prioritizes targeted mitigations that let infected crew keep playing while reducing risk to others. +Protection prioritizes targeted mitigations that let infected crew keep playing while reducing risk to others. Correlate spreadability with mechanical interestingness: the more compelling the disease loop (e.g., zombies), the more acceptable strong measures like quarantine become. * Diseases with different types of spread should have their own reagent that greatly reduces the likelihood of spreading the virus while it is active. This lets infected crew keep moving while awaiting treatment. Some strong diseases may be resistant. - * Different types of infection should be blocked by different types of clothing. This increases immersion—less clothing means more points of contact with the disease. Specialized clothing (e.g., medical masks) may have their own protection values. Percentages should be determined during playtesting. - -* Quarantine should be avoided as a priority containment measure, as it requires the crew to remain in isolation, which is not a pleasant experience. For some major events or game modes (e.g., zombies), it is acceptable as an effective means of control. +* Quarantine should be avoided as a priority containment measure in most cases, as it requires the crew to remain in isolation, which is not a pleasant experience. ## Roundflow & Player interaction -### Gameplay loops A sample crew gameplay loop during a virus outbreak. -1. Outbreak begins (global or local). Early, soft symptoms appear, crew notices and reports. -2. Triage and partial diagnostics. Suspected carriers are flagged via [partial diagnosis](#partial-diagnosis), PPE is issued to limit spread. -3. Immediate suppression and mitigation. Carriers take suppressants, wear masks and gloves, cleaning starts, ventilation is adjusted, players keep working. -4. Sampling and complete diagnostics. Med collects swabs and runs the [diagnoser](#complete-diagnostics) to identify disease, stages, and treatment paths. -5. Treatment execution. Targeted therapy is applied. Symptom suppression as needed. -6. Optional vaccine creation. The Vaccinator clones a vaccine from recovered or inactive resistances. -7. Vaccination rollout. Healthy at‑risk crew are vaccinated to prevent new cases. -8. Cleanup and follow‑up. Remaining patients are treated, hotspots decontaminated, atmos corrected. Quarantine is reserved for exceptional modes or events. +### Local outbreak loop +1. Early tells: soft symptoms on affected workers prompt self‑care and reporting. +2. Mitigation: [protection against spread](#protection-against-spread), local cleaning, limited access to the dirty area. +3. Diagnosis: swabs and [complete diagnostics](#complete-diagnostics) confirm disease and stages. +4. Treatment: targeted therapy for patients, symptom suppression as needed. If not treated in time, the infection can slowly spread throughout the crew, which can lead to a [global outbreak](#global-outbreak-loop). + +### Global outbreak loop +1. Early tells: soft symptoms on affected workers prompt self‑care and reporting. +2. Mitigation: [protection against spread](#protection-against-spread), local cleaning, limited access to the dirty area. +3. Diagnosis: swabs and [complete diagnostics](#complete-diagnostics) confirm disease and stages. +4. Treatment: targeted therapy for patients, symptom suppression as needed. If not treated in time, the infection can slowly kill the crew in the final stage. +5. Vaccine creation (optional): the Vaccinator clones a vaccine from inactive resistances. Healthy at‑risk crew are vaccinated to prevent new cases. +6. Resolution: after treatment, immunity rises, cases fall, [disinfection](#contact-infection) or/and [atmos corrections](#airborne-infection) finish the event. ## Features to be added ### Virology Department @@ -73,7 +74,7 @@ The implementation described in this document does not require a virologist, but To combat viral diseases, the medical department is equipped with a virology sub-department, which has the necessary equipment (diagnoser, vaccinator, and swab), two connected airlocks, and separate wards. ### Diseases -Common viruses should cause discomfort (vomiting, brief stuns, etc.) to motivate players to seek treatment, but should not force remove the carrier from the game when immediate treatment is not possible. Damage is allowed in later stages, but it should not be rapidly lethal and should be reducible until complete recovery. +Diseases should cause discomfort (vomiting, brief stuns, etc.) to motivate players to seek treatment, but should not remove the carrier from play when immediate treatment is not possible. Not every disease must be harmful, benign or quirky effects can exist, but ignoring harmful diseases should entail increasingly serious consequences, such as damage or other negative effects. Diseases can be viruses, infections, or special conditions of living beings; they can have symptoms, stages, and treatment phases. @@ -83,14 +84,16 @@ Mechanics: #### Immunity Immunity is represented on the carrier as the probability of blocking infection with a specific disease. +Species and animals may possess innate or acquired resistance that alters the probability of infection, to create desired gameplay situations. + #### Symptoms Symptoms should clearly signal that a character is ill, drive the player toward medical tools and help, and shape risk for nearby crew without turning the carrier into a spectator. Design goals: 1. Noticeable cues to the carrier and observers (emotes, sensations) so suspicion of illness does not require machines. -2. Frequency and intensity scale by stage with clear early tells; avoid sudden spikes to severe effects with no telegraphing. +2. Frequency and intensity scale by stage with clear early tells. If ignored, consequences should escalate meaningfully. 3. Symptom channels reflect infection routes (cough/sneeze -> airborne, vomiting/slime -> contact, bleeding -> bloodborne) to teach responses. -4. Short stumbles or brief stuns are acceptable; long stun chains or frequent item drops that stall the player are not. +4. Short stumbles or brief stuns are acceptable. Long stun chains or frequent item drops that stall the player are avoided unless a disease is intentionally high‑risk. 5. Symptoms can harm not only the carrier, but also those around them (e.g., spreading the virus more actively when sneezing), motivating the crew to suppress the symptom or cure the carrier. #### Treatment @@ -114,6 +117,7 @@ Mechanics: Countermeasures: * Clean contaminated surfaces using cleaning chemicals that can be used by cleaners or medical personnel. +* Cleaning items under running water (sink, shower). #### Airborne infection Airborne infections spread through exhaled aerosols and ambient atmosphere. This path makes masks, ventilation, and air‑quality management matter. @@ -154,6 +158,6 @@ Vaccine mechanics: * Stacking/merge: mixing vaccine reagents merges their target lists; multiple sources combine into one set of resistances. #### Vaccinator -Similar to the diagnoser, it is a way to obtain vaccines. It accepts samples for convenience and is stationary due to the utility of vaccines. +Similar to the [diagnoser](#complete-diagnostics), it is a way to obtain vaccines. It accepts samples for convenience and is stationary due to the utility of vaccines. The Vaccinator is a stationary virology machine that synthesizes vaccine bottles based on a loaded blood sample. It distinguishes between inactive and active resistances in the sample. From f135a964fb29e04b8193e6ec0844a0899f57e3f0 Mon Sep 17 00:00:00 2001 From: Pok245 <113675512+Pok27@users.noreply.github.com> Date: Thu, 2 Oct 2025 17:04:42 +0300 Subject: [PATCH 09/13] Update 2 --- src/en/space-station-14/round-flow/proposals/diseases.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/en/space-station-14/round-flow/proposals/diseases.md b/src/en/space-station-14/round-flow/proposals/diseases.md index 277d587dee..b4ac5330ab 100644 --- a/src/en/space-station-14/round-flow/proposals/diseases.md +++ b/src/en/space-station-14/round-flow/proposals/diseases.md @@ -24,10 +24,15 @@ A disease outbreak occurs due to a predictable event. * Disease carriers can vary (corpse, artifact, expired food, etc.) depending on the desired gaming experience. * Diseases occur in persons upon contact with a carrier, the nature of which depends on the type of disease. The method of infection can be anything, but it must originate from the event that acts as the carrier (gas from an artifact -> airborne transmission, dirt -> contact transmission) and take into account the appropriate methods of protection. -* Diseases caused by a local event should have a low chance of infecting others so as not to provoke a chain reaction spreading to most of the station. However, this chance should not be so low that medical personnel can ignore the disease and delay treatment or [containment measures](#protection-against-spread). The danger of the disease can be regulated by the prevalence of the carrier. +* Diseases caused by a local event should have a low chance of infecting others so as not to provoke a chain reaction spreading to most of the station. However, this chance should not be so low that medical personnel can ignore the disease and delay treatment or [containment measures](#protection-against-spread). +* The danger of the disease can be regulated by the prevalence of the carrier (the rarer it is, the more dangerous it can be). ### Global outbreak -TODO: there should be a description of a funny random event here. +Global outbreaks arise from a random station‑level event. + +* Usually, the trigger should be a random station event. +* Diseases caused by a station‑level event should have a high chance of infecting others, creating a chain reaction that can spread to most of the station. At the same time, this chance should not be so high that medical personnel are overwhelmed and unable to react with timely treatment or [containment measures](#protection-against-spread). +* The danger of the disease can be regulated by the probability and time when the event usually occurs (the rarer and further in time, the more dangerous it can be). ### Diagnostics Diagnostics is an important measure for combating disease; it can be either comprehensive or simply warn of the presence of disease. From 3e9f4b70d9f37467592b1167c0bda0d58ec59da8 Mon Sep 17 00:00:00 2001 From: Pok245 <113675512+Pok27@users.noreply.github.com> Date: Fri, 3 Oct 2025 07:05:42 +0300 Subject: [PATCH 10/13] Update 3 --- src/en/space-station-14/round-flow/proposals/diseases.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/en/space-station-14/round-flow/proposals/diseases.md b/src/en/space-station-14/round-flow/proposals/diseases.md index b4ac5330ab..066d7c270a 100644 --- a/src/en/space-station-14/round-flow/proposals/diseases.md +++ b/src/en/space-station-14/round-flow/proposals/diseases.md @@ -25,14 +25,14 @@ A disease outbreak occurs due to a predictable event. * Disease carriers can vary (corpse, artifact, expired food, etc.) depending on the desired gaming experience. * Diseases occur in persons upon contact with a carrier, the nature of which depends on the type of disease. The method of infection can be anything, but it must originate from the event that acts as the carrier (gas from an artifact -> airborne transmission, dirt -> contact transmission) and take into account the appropriate methods of protection. * Diseases caused by a local event should have a low chance of infecting others so as not to provoke a chain reaction spreading to most of the station. However, this chance should not be so low that medical personnel can ignore the disease and delay treatment or [containment measures](#protection-against-spread). -* The danger of the disease can be regulated by the prevalence of the carrier (the rarer it is, the more dangerous it can be). +* The danger of the disease can be regulated by the prevalence of the carrier (the rarer it is, the more dangerous it can be) and controllability of the source (the easier it is to prevent, the more dangerous it can be). ### Global outbreak Global outbreaks arise from a random station‑level event. -* Usually, the trigger should be a random station event. +* Usually, the trigger should be a random station event or game mode. * Diseases caused by a station‑level event should have a high chance of infecting others, creating a chain reaction that can spread to most of the station. At the same time, this chance should not be so high that medical personnel are overwhelmed and unable to react with timely treatment or [containment measures](#protection-against-spread). -* The danger of the disease can be regulated by the probability and time when the event usually occurs (the rarer and further in time, the more dangerous it can be). +* The danger of the disease can be regulated by how late and how rarely a disease event occurs in the round (the later and rarer it is, the more dangerous it can be). ### Diagnostics Diagnostics is an important measure for combating disease; it can be either comprehensive or simply warn of the presence of disease. From 9340080f9c4e6e444669dade2c5e87b21f6b4483 Mon Sep 17 00:00:00 2001 From: Pok245 <113675512+Pok27@users.noreply.github.com> Date: Fri, 3 Oct 2025 08:29:56 +0300 Subject: [PATCH 11/13] fix --- src/en/space-station-14/round-flow/proposals/diseases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/en/space-station-14/round-flow/proposals/diseases.md b/src/en/space-station-14/round-flow/proposals/diseases.md index 066d7c270a..895c8c8dbc 100644 --- a/src/en/space-station-14/round-flow/proposals/diseases.md +++ b/src/en/space-station-14/round-flow/proposals/diseases.md @@ -108,7 +108,7 @@ Design goals: 1. Complete diagnostics inform targeted therapy, which is a reward for the time spent. 2. Blind treatment can be wrong; drugs should have side effects in small doses to punish random search. 3. Treatment at the symptom level is temporary and should contain the harm from the disease until complete treatment, so it may require less effort. -4. Completing treatment grants immunity against this disease. Its strength depends on the disease type, but is usually high to prevent reinfection loops. +4. Completing treatment grants immunity against this virus. Its strength depends on the virus type, but is usually high to prevent reinfection loops. #### Contact infection Contact infections spread via direct touch and contaminated surfaces. This path exists to promote hygiene, and active decontamination. From 0a8f020ee412ed40b93433f608d36730ee7030f9 Mon Sep 17 00:00:00 2001 From: Pok245 <113675512+Pok27@users.noreply.github.com> Date: Thu, 23 Oct 2025 12:11:51 +0300 Subject: [PATCH 12/13] Roundflow & Player interaction --- src/en/space-station-14/round-flow/proposals/diseases.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/en/space-station-14/round-flow/proposals/diseases.md b/src/en/space-station-14/round-flow/proposals/diseases.md index 895c8c8dbc..f327bee7cf 100644 --- a/src/en/space-station-14/round-flow/proposals/diseases.md +++ b/src/en/space-station-14/round-flow/proposals/diseases.md @@ -54,15 +54,18 @@ Protection prioritizes targeted mitigations that let infected crew keep playing * Quarantine should be avoided as a priority containment measure in most cases, as it requires the crew to remain in isolation, which is not a pleasant experience. ## Roundflow & Player interaction +The goal of Roundflow is to make rounds more diverse for medical personnel and crew by introducing diseases whose complex mechanics allow them to be used to achieve various [gameplay goals](#game-design-rationale), from simply entertaining events (e.g., zombies) to motivating cleanliness during operations. [Countermeasures](#protection-against-spread) for contagious diseases should make infection more fair, but not completely eliminate the element of chance. + +### Game loop A sample crew gameplay loop during a virus outbreak. -### Local outbreak loop +Local outbreak: 1. Early tells: soft symptoms on affected workers prompt self‑care and reporting. 2. Mitigation: [protection against spread](#protection-against-spread), local cleaning, limited access to the dirty area. 3. Diagnosis: swabs and [complete diagnostics](#complete-diagnostics) confirm disease and stages. 4. Treatment: targeted therapy for patients, symptom suppression as needed. If not treated in time, the infection can slowly spread throughout the crew, which can lead to a [global outbreak](#global-outbreak-loop). -### Global outbreak loop +Global outbreak: 1. Early tells: soft symptoms on affected workers prompt self‑care and reporting. 2. Mitigation: [protection against spread](#protection-against-spread), local cleaning, limited access to the dirty area. 3. Diagnosis: swabs and [complete diagnostics](#complete-diagnostics) confirm disease and stages. From 7c356b874a64d3723d9a7085b2428aa9455c9d42 Mon Sep 17 00:00:00 2001 From: Pok245 <113675512+Pok27@users.noreply.github.com> Date: Thu, 23 Oct 2025 12:26:17 +0300 Subject: [PATCH 13/13] oops --- src/en/space-station-14/round-flow/proposals/diseases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/en/space-station-14/round-flow/proposals/diseases.md b/src/en/space-station-14/round-flow/proposals/diseases.md index f327bee7cf..1f33b113e5 100644 --- a/src/en/space-station-14/round-flow/proposals/diseases.md +++ b/src/en/space-station-14/round-flow/proposals/diseases.md @@ -54,7 +54,7 @@ Protection prioritizes targeted mitigations that let infected crew keep playing * Quarantine should be avoided as a priority containment measure in most cases, as it requires the crew to remain in isolation, which is not a pleasant experience. ## Roundflow & Player interaction -The goal of Roundflow is to make rounds more diverse for medical personnel and crew by introducing diseases whose complex mechanics allow them to be used to achieve various [gameplay goals](#game-design-rationale), from simply entertaining events (e.g., zombies) to motivating cleanliness during operations. [Countermeasures](#protection-against-spread) for contagious diseases should make infection more fair, but not completely eliminate the element of chance. +The goal of Roundflow is to make rounds more diverse for medical personnel and crew by introducing diseases whose complex mechanics allow them to be used to achieve various [gameplay goals](#game-design-rationale), from simply entertaining events (e.g., zombies) to motivating cleanliness during surgical procedures. [Countermeasures](#protection-against-spread) for contagious diseases should make infection more fair, but not completely eliminate the element of chance. ### Game loop A sample crew gameplay loop during a virus outbreak.