LUA   49

Disease System

Guest on 30th July 2022 07:50:17 PM

  1. -- Fully functional disease script with over 30 diseases which each produce their own set of symptoms. Diseases are spread through raycasting. Intended to be used for a SCPF Medical Department to add a whole layer of functionality above the typical click-to-heal gameplay you see in most SCPFs.
  2. local function getPlayerFromName(name)
  3.         for _, player in pairs(game:GetService("Players"):GetPlayers()) do
  4.                 if player.Name:lower() == name:lower() then
  5.                         return player
  6.                 end
  7.         end
  8. end
  9.  
  10. local player = getPlayerFromName(script.Parent.Parent.Name)
  11. repeat wait() until player.Character
  12. local localCharacter = player.Character
  13.  
  14. --// Services
  15.  
  16. local Players = game:GetService("Players")
  17.  
  18. --\\
  19.  
  20. --// Checks
  21.  
  22. local infected = false
  23.  
  24. --\\
  25.  
  26. local infections = {}
  27. local bindableEvent = game.ReplicatedStorage.BindableEvents.DiseaseTrigger
  28. local infectionsFolder = script.Parent.Infections
  29.  
  30. --// Diseases
  31.  
  32. -- Bacterial
  33.  
  34. local bacterial = script.Parent.Infections.Bacterial
  35. local bacterialMeningitis = bacterial["Bacterial Meningitis"]
  36. local cholera = bacterial.Cholera
  37. local diphtheria = bacterial.Diphtheria
  38. local strepThroat = bacterial["Strep Throat"]
  39. local tuberculosis = bacterial.Tuberculosis
  40. local typhoid = bacterial.Typhoid
  41. local typhus = bacterial.Typhus
  42. local whoopingCough = bacterial["Whooping Cough"]
  43.  
  44. --// Viral
  45.  
  46. local viral = script.Parent.Infections.Viral
  47. local covid19 = viral["C19"]
  48. local ebola = viral.Ebola
  49. local influenza = viral.Influenza
  50. local measles = viral.Measles
  51. local norovirus = viral.Norovirus
  52. local polio = viral.Polio
  53. local respiratorySyncytialVirus = viral["Respiratory Syncytial Virus"]
  54. local rhinitis = viral.Rhinitis
  55. local rotavirus = viral.Rotavirus
  56. local rubella = viral.Rubella
  57. local severeAcuteRespiratorySyndrome = viral["Severe Acute Respiratory Syndrome"]
  58. local shingles = viral.Shingles
  59. local viralMeningitis = viral["Viral Meningitis"]
  60. local yellowFever = viral["Yellow Fever"]
  61.  
  62. --\\
  63.  
  64. --// Parasitic
  65.  
  66. local parasitic = script.Parent.Infections.Parasitic
  67. local amebiasis = parasitic.Amebiasis
  68. local cysticercosis = parasitic.Cysticercosis
  69. local eVermicularis = parasitic["Evermicularis"]
  70. local echinococcosis = parasitic.Echinococcosis
  71. local malaria = parasitic.Malaria
  72. local toxocariasis = parasitic.Toxocariasis
  73. local trypanosomaCruzi = parasitic["Trypanosoma cruzi"]
  74.  
  75. --\\
  76.  
  77. --// Symptoms
  78.  
  79. local symptoms = script.Parent.Infections.Symptoms
  80. local bleeding = symptoms.Bleeding
  81. local conjunctivitis = symptoms.Conjunctivitis
  82. local croup = symptoms.Croup
  83. local cyanosis = symptoms.Cyanosis
  84. local dry_cough = symptoms["Dry Cough"]
  85. local fainting = symptoms.Fainting
  86. local fatigue = symptoms.Fatigue
  87. local fever = symptoms.Fever
  88. local jaundice = symptoms.Jaundice
  89. local nausea = symptoms.Nausea
  90. local runnyNose = symptoms["Runny Nose"]
  91. local sneezing = symptoms.Sneezing
  92. local sweating = symptoms.Sweating
  93. local uncontrollable_cough = symptoms["Uncontrollable Coughing"]
  94. local vomiting = symptoms["Vomiting"]
  95. local wet_cough = symptoms["Wet Cough"]
  96. local wheezing = symptoms["Wheezing"]
  97.  
  98. --\\
  99.  
  100. local diseaseDictionary = {
  101.         amebiasis = {
  102.                 diseaseName = amebiasis.Name,
  103.                 spreadDistance = 10,
  104.                 baseSpreadChance = 500,
  105.                 progressionSpeed = 1,
  106.                 symptomList = {
  107.                         nausea.Name,
  108.                         fever.Name,
  109.                 },
  110.                 vulnerabilities = {
  111.                         "Anti-Parasitic"
  112.                 },
  113.                 extremeVulnerabilities = {
  114.                         "Anti-Parasitic Beta"
  115.                 }
  116.         },
  117.         cysticercosis = {
  118.                 diseaseName = cysticercosis.Name,
  119.                 spreadDistance = 8,
  120.                 baseSpreadChance = 250,
  121.                 progressionSpeed = 1,
  122.                 symptomList = {
  123.                         fainting.Name,
  124.                 },
  125.                 vulnerabilities = {
  126.                         "Anti-Parasitic"
  127.                 },
  128.                 extremeVulnerabilities = {
  129.                         "Anti-Parasitic Alpha"
  130.                 }
  131.         },
  132.         evermicularis = {
  133.                 diseaseName = eVermicularis.Name,
  134.                 spreadDistance = 25,
  135.                 baseSpreadChance = 200,
  136.                 progressionSpeed = 1,  
  137.                 symptomList = {
  138.                         fatigue.Name,
  139.                 },
  140.                 vulnerabilities = {
  141.                         "Anti-Parasitic"
  142.                 },
  143.                 extremeVulnerabilities = {
  144.                         "Anti-Parasitic Beta"
  145.                 }
  146.  
  147.         },
  148.         echinococcosis = {
  149.                 diseaseName = echinococcosis.Name,
  150.                 spreadDistance = 10,
  151.                 baseSpreadChance = 200,
  152.                 progressionSpeed = 1,  
  153.                 symptomList = {
  154.                         wet_cough.Name,
  155.                         fever.Name,
  156.                 },
  157.                 vulnerabilities = {
  158.                         "Anti-Parasitic"
  159.                 },
  160.                 extremeVulnerabilities = {
  161.                         "Anti-Parasitic Charlie"
  162.                 }
  163.         },
  164.         malaria = {
  165.                 diseaseName = malaria.Name,
  166.                 spreadDistance = 50,
  167.                 baseSpreadChance = 200,
  168.                 progressionSpeed = 1,  
  169.                 symptomList = {
  170.                         fever.Name,
  171.                         nausea.Name,
  172.                         jaundice.Name,
  173.                 },
  174.                 vulnerabilities = {
  175.                         "Anti-Parasitic"
  176.                 },
  177.                 extremeVulnerabilities = {
  178.                         "Anti-Parasitic Alpha"
  179.                 }
  180.         },
  181.         toxocariasis = {
  182.                 diseaseName = toxocariasis.Name,
  183.                 spreadDistance = 10,
  184.                 baseSpreadChance = 500,
  185.                 progressionSpeed = 1,  
  186.                 symptomList = {
  187.                         wheezing.Name,
  188.                         wet_cough.Name,
  189.  
  190.                 },
  191.                 vulnerabilities = {
  192.                         "Anti-Parasitic"
  193.                 },
  194.                 extremeVulnerabilities = {
  195.                         "Anti-Parasitic Alpha"
  196.                 }
  197.         },
  198.         trypanosomacruzi = {
  199.                 diseaseName = trypanosomaCruzi.Name,
  200.                 spreadDistance = 30,
  201.                 baseSpreadChance = 250,
  202.                 progressionSpeed = 1,  
  203.                 symptomList = {
  204.                         fever.Name,
  205.                         fatigue.Name,
  206.                 },
  207.                 vulnerabilities = {
  208.                         "Anti-Parasitic"
  209.                 },
  210.                 extremeVulnerabilities = {
  211.                         "Anti-Parasitic Charlie"
  212.                 }
  213.         },
  214.         c19 = {
  215.                 diseaseName = covid19.Name,
  216.                 spreadDistance = 50,
  217.                 baseSpreadChance = 50,
  218.                 progressionSpeed = 1,
  219.                 symptomList = {
  220.                         fever.Name,
  221.                         dry_cough.Name,
  222.                         fatigue.Name,
  223.                 },
  224.                 vulnerabilities = {
  225.                         "Anti-Viral"
  226.                 },
  227.                 extremeVulnerabilities = {
  228.                         "Anti-Viral Beta"
  229.                 }
  230.         },
  231.         ebola = {
  232.                 diseaseName = ebola.Name,
  233.                 spreadDistance = 10,
  234.                 baseSpreadChance = 500,
  235.                 progressionSpeed = 1,  
  236.                 symptomList = {
  237.                         bleeding.Name,
  238.                         fever.Name,
  239.                         fatigue.Name,
  240.                         vomiting.Name,
  241.                 },
  242.                 vulnerabilities = {
  243.                         "Anti-Viral"
  244.                 },
  245.                 extremeVulnerabilities = {
  246.                         "Anti-Viral Charlie"
  247.                 }
  248.         },
  249.         influenza = {
  250.                 diseaseName = influenza.Name,
  251.                 spreadDistance = 40,
  252.                 baseSpreadChance = 50,
  253.                 progressionSpeed = 1,  
  254.                 symptomList = {
  255.                         fever.Name,
  256.                         croup.Name,
  257.                         runnyNose.Name,
  258.                 },
  259.                 vulnerabilities = {
  260.                         "Anti-Viral"
  261.                 },
  262.                 extremeVulnerabilities = {
  263.                         "Anti-Viral Beta"
  264.                 }
  265.         },
  266.         measles = {
  267.                 diseaseName = measles.Name,
  268.                 spreadDistance = 30,
  269.                 baseSpreadChance = 80,
  270.                 progressionSpeed = 1,  
  271.                 symptomList = {
  272.                         fever.Name,
  273.                         fatigue.Name,
  274.                         dry_cough.Name,
  275.                         conjunctivitis.Name,
  276.                         runnyNose.Name,
  277.                 },
  278.                 vulnerabilities = {
  279.                         "Anti-Viral"
  280.                 },
  281.                 extremeVulnerabilities = {
  282.                         "Anti-Viral Alpha"
  283.                 }
  284.         },
  285.         norovirus = {
  286.                 diseaseName = norovirus.Name,
  287.                 spreadDistance = 10,
  288.                 baseSpreadChance = 300,
  289.                 progressionSpeed = 1,
  290.                 symptomList = {
  291.                         vomiting.Name,
  292.                         nausea.Name,
  293.                         fever.Name,
  294.                 },
  295.                 vulnerabilities = {
  296.                         "Anti-Viral"
  297.                 },
  298.                 extremeVulnerabilities = {
  299.                         "Anti-Viral Alpha"
  300.                 }
  301.         },
  302.         polio = {
  303.                 diseaseName = polio.Name,
  304.                 spreadDistance = 10,
  305.                 baseSpreadChance = 400,
  306.                 progressionSpeed = 1,
  307.                 symptomList = {
  308.                         fever.Name,
  309.                         vomiting.Name,
  310.                         fatigue.Name,
  311.                 },
  312.                 vulnerabilities = {
  313.                         "Anti-Viral"
  314.                 },
  315.                 extremeVulnerabilities = {
  316.                         "Anti-Viral Charlie"
  317.                 }
  318.         },
  319.         respiratorysyncytialvirus = {
  320.                 diseaseName = respiratorySyncytialVirus.Name,
  321.                 spreadDistance = 35,
  322.                 baseSpreadChance = 100,
  323.                 progressionSpeed = 1,
  324.                 symptomList = {
  325.                         wet_cough.Name,
  326.                         cyanosis.Name,
  327.                         runnyNose.Name,
  328.                         sneezing.Name,
  329.                         wheezing.Name,
  330.                 },
  331.                 vulnerabilities = {
  332.                         "Anti-Viral"
  333.                 },
  334.                 extremeVulnerabilities = {
  335.                         "Anti-Viral Alpha"
  336.                 }
  337.         },
  338.         rhinitis = {
  339.                 diseaseName = rhinitis.Name,
  340.                 spreadDistance = 30,
  341.                 baseSpreadChance = 30,
  342.                 progressionSpeed = 1,
  343.                 symptomList = {
  344.                         wet_cough.Name,
  345.                         fever.Name,
  346.                         runnyNose.Name,
  347.                         sneezing.Name
  348.                 },
  349.                 vulnerabilities = {
  350.                         "Anti-Viral"
  351.                 },
  352.                 extremeVulnerabilities = {
  353.                         "Anti-Viral Alpha"
  354.                 }
  355.         },
  356.         rotavirus = {
  357.                 diseaseName = rotavirus.Name,
  358.                 spreadDistance = 10,
  359.                 baseSpreadChance = 300,
  360.                 progressionSpeed = 1,
  361.                 symptomList = {
  362.                         fatigue.Name,
  363.                         fever.Name,
  364.                         vomiting.Name,
  365.                         runnyNose.Name,
  366.                 },
  367.                 vulnerabilities = {
  368.                         "Anti-Viral"
  369.                 },
  370.                 extremeVulnerabilities = {
  371.                         "Anti-Viral Charlie"
  372.                 }              
  373.         },
  374.         rubella = {
  375.                 diseaseName = rubella.Name,
  376.                 spreadDistance = 30,
  377.                 baseSpreadChance = 90,
  378.                 progressionSpeed = 1,
  379.                 symptomList = {
  380.                         fever.Name,
  381.                         runnyNose.Name,
  382.                 },
  383.                 vulnerabilities = {
  384.                         "Anti-Viral"
  385.                 },
  386.                 extremeVulnerabilities = {
  387.                         "Anti-Viral Beta"
  388.                 }              
  389.         },
  390.         severeacuterespiratorysyndrome = {
  391.                 diseaseName = severeAcuteRespiratorySyndrome.Name,
  392.                 spreadDistance = 30,
  393.                 baseSpreadChance = 100,
  394.                 progressionSpeed = 1,
  395.                 symptomList = {
  396.                         fever.Name,
  397.                         dry_cough.Name,
  398.                         -- high body temp
  399.                 },
  400.                 vulnerabilities = {
  401.                         "Anti-Viral"
  402.                 },
  403.                 extremeVulnerabilities = {
  404.                         "Anti-Viral Charlie"
  405.                 }              
  406.         },
  407.         shingles = {
  408.                 diseaseName = shingles.Name,
  409.                 spreadDistance = 25,
  410.                 baseSpreadChance = 100,
  411.                 progressionSpeed = 1,
  412.                 symptomList = {
  413.                         fever.Name
  414.                 },
  415.                 vulnerabilities = {
  416.                         "Anti-Viral"
  417.                 },
  418.                 extremeVulnerabilities = {
  419.                         "Anti-Viral Beta"
  420.                 }
  421.         },
  422.         viralmeningitis = {
  423.                 diseaseName = viralMeningitis.Name,
  424.                 spreadDistance = 15,
  425.                 baseSpreadChance = 150,
  426.                 progressionSpeed = 1,
  427.                 symptomList = {
  428.                         fatigue.Name,
  429.                         fever.Name,
  430.                         nausea.Name,
  431.                         vomiting.Name,
  432.                         fainting.Name,
  433.                 },
  434.                 vulnerabilities = {
  435.                         "Anti-Viral"
  436.                 },
  437.                 extremeVulnerabilities = {
  438.                         "Anti-Viral Beta"
  439.                 }
  440.         },
  441.         yellowfever = {
  442.                 diseaseName = yellowFever.Name,
  443.                 spreadDistance = 50,
  444.                 baseSpreadChance = 125,
  445.                 progressionSpeed = 1,
  446.                 symptomList = {
  447.                         jaundice.Name,
  448.                         fatigue.Name,
  449.                         fever.Name,
  450.                         nausea.Name,
  451.                         vomiting.Name,
  452.                 },
  453.                 vulnerabilities = {
  454.                         "Anti-Viral"
  455.                 },
  456.                 extremeVulnerabilities = {
  457.                         "Anti-Viral Alpha"
  458.                 }
  459.         },
  460.         bacterialmeningitis = {
  461.                 diseaseName = bacterialMeningitis.Name,
  462.                 spreadDistance = 20,
  463.                 baseSpreadChance = 200,
  464.                 progressionSpeed = 1,
  465.                 symptomList = {
  466.                         fever.Name,
  467.                         nausea.Name,
  468.                         vomiting.Name,
  469.                         fainting.Name
  470.                 },
  471.                 vulnerabilities = {
  472.                         "Anti-Bacterial"
  473.                 },
  474.                 extremeVulnerabilities = {
  475.                         "Anti-Bacterial Charlie"
  476.                 }
  477.         },
  478.         cholera = {
  479.                 diseaseName = cholera.Name,
  480.                 spreadDistance = 10,
  481.                 baseSpreadChance = 250,
  482.                 progressionSpeed = 1,
  483.                 symptomList = {
  484.                         vomiting.Name,
  485.                 },
  486.                 vulnerabilities = {
  487.                         "Anti-Bacterial"
  488.                 },
  489.                 extremeVulnerabilities = {
  490.                         "Anti-Bacterial Alpha"
  491.                 }      
  492.         },
  493.         diphtheria = {
  494.                 diseaseName = diphtheria.Name,
  495.                 spreadDistance = 5,
  496.                 baseSpreadChance = 100,
  497.                 progressionSpeed = 1,
  498.                 symptomList = {
  499.                         wheezing.Name,
  500.                         runnyNose.Name,
  501.                         fever.Name,
  502.                         fatigue.Name
  503.                 },
  504.                 vulnerabilities = {
  505.                         "Anti-Bacterial"
  506.                 },
  507.                 extremeVulnerabilities = {
  508.                         "Anti-Bacterial Beta"
  509.                 }              
  510.         },
  511.         strepthroat = {
  512.                 diseaseName = strepThroat.Name,
  513.                 spreadDistance = 20,
  514.                 baseSpreadChance = 100,
  515.                 progressionSpeed = 1,
  516.                 symptomList = {
  517.                         fever.Name,
  518.                         croup.Name,
  519.                 },
  520.                 vulnerabilities = {
  521.                         "Anti-Bacterial"
  522.                 },
  523.                 extremeVulnerabilities = {
  524.                         "Anti-Bacterial Charlie"
  525.                 }
  526.         },
  527.         tuberculosis = {
  528.                 diseaseName = tuberculosis.Name,
  529.                 spreadDistance = 30,
  530.                 baseSpreadChance = 75,
  531.                 progressionSpeed = 1,
  532.                 symptomList = {
  533.                         uncontrollable_cough.Name,
  534.                         fatigue.Name,
  535.                         fever.Name,
  536.                 },
  537.                 vulnerabilities = {
  538.                         "Anti-Bacterial"
  539.                 },
  540.                 extremeVulnerabilities = {
  541.                         "Anti-Bacterial Alpha"
  542.                 }              
  543.         },
  544.         typhoid = {
  545.                 diseaseName = typhoid.Name,
  546.                 spreadDistance = 10,
  547.                 baseSpreadChance = 200,
  548.                 progressionSpeed = 1,  
  549.                 symptomList = {
  550.                         dry_cough.Name,
  551.                         nausea.Name,
  552.                 },
  553.                 vulnerabilities = {
  554.                         "Anti-Bacterial"
  555.                 },
  556.                 extremeVulnerabilities = {
  557.                         "Anti-Bacterial Alpha"
  558.                 }
  559.         },
  560.         typhus = {
  561.                 diseaseName = typhus.Name,
  562.                 spreadDistance = 10,
  563.                 baseSpreadChance = 150,
  564.                 progressionSpeed = 1,
  565.                 symptomList = {
  566.                         fever.Name,
  567.                         fatigue.Name,
  568.                 },
  569.                 vulnerabilities = {
  570.                         "Anti-Bacterial"
  571.                 },
  572.                 extremeVulnerabilities = {
  573.                         "Anti-Bacterial Beta"
  574.                 }              
  575.         },
  576.         whoopingcough = {
  577.                 diseaseName = whoopingCough.Name,
  578.                 spreadDistance = 30,
  579.                 baseSpreadChance = 100,
  580.                 progressionSpeed = 1,
  581.                 symptomList = {
  582.                         runnyNose.Name,
  583.                         sneezing.Name,
  584.                         uncontrollable_cough.Name,
  585.                         vomiting.Name,
  586.                 },
  587.                 vulnerabilities = {
  588.                         "Anti-Bacterial"
  589.                 },
  590.                 extremeVulnerabilities = {
  591.                         "Anti-Bacterial Beta"
  592.                 }              
  593.         },
  594. }
  595.  
  596. local medication = script.Parent.Medication
  597.  
  598. local function addSymtpoms(diseaseName)
  599.         for i,symptomsv in pairs(diseaseDictionary[diseaseName]["symptomList"]) do
  600.                 for i,disease in pairs(infectionsFolder:GetDescendants()) do
  601.                         if disease.Name == symptomsv then
  602.                                 disease.Value = false
  603.                                 disease.Value = true
  604.                         end  
  605.                 end
  606.         end
  607. end
  608.  
  609. local function removeSymtpoms(diseaseName)
  610.         for i,symptomsv in pairs(diseaseDictionary[diseaseName]["symptomList"]) do
  611.                 for i,disease in pairs(infectionsFolder:GetDescendants()) do
  612.                         if disease.Name == symptomsv then
  613.                                 disease.Value = false
  614.                         end  
  615.                 end
  616.         end
  617. end
  618.  
  619. local function filter(str)
  620.         return str:gsub(" ",""):lower()
  621. end
  622.  
  623. respiratorySyncytialVirus.Changed:Connect(function()
  624.         if respiratorySyncytialVirus.Value == true then
  625.                 respiratorySyncytialVirus.Progression.Value = 900
  626.                 infected = true
  627.                 table.insert(infections, respiratorySyncytialVirus.Name)
  628.                 addSymtpoms(filter(respiratorySyncytialVirus.Name))
  629.         else
  630.                 table.remove(infections, table.find(infections, respiratorySyncytialVirus.Name))
  631.                 removeSymtpoms(filter(respiratorySyncytialVirus.Name))
  632.                 if #infections == 0 then
  633.                         infected = false
  634.                 end
  635.         end
  636. end)
  637.  
  638. covid19.Changed:Connect(function()
  639.         if covid19.Value == true then
  640.                 covid19.Progression.Value = 900
  641.                 infected = true
  642.                 table.insert(infections, covid19.Name)
  643.                 addSymtpoms(filter(covid19.Name))
  644.         else
  645.                 table.remove(infections, table.find(infections, covid19.Name))
  646.                 removeSymtpoms(filter(covid19.Name))
  647.                 if #infections == 0 then
  648.                         infected = false
  649.                 end
  650.         end
  651. end)
  652.  
  653. polio.Changed:Connect(function()
  654.         if polio.Value == true then
  655.                 polio.Progression.Value = 900
  656.                 infected = true
  657.                 table.insert(infections, polio.Name)
  658.                 addSymtpoms(filter(polio.Name))
  659.         else
  660.                 table.remove(infections, table.find(infections, polio.Name))
  661.                 removeSymtpoms(filter(polio.Name))
  662.                 if #infections == 0 then
  663.                         infected = false
  664.                 end
  665.         end
  666. end)
  667.  
  668. yellowFever.Changed:Connect(function()
  669.         if yellowFever.Value == true then
  670.                 yellowFever.Progression.Value = 900
  671.                 infected = true
  672.                 table.insert(infections, yellowFever.Name)
  673.                 addSymtpoms(filter(yellowFever.Name))
  674.         else
  675.                 table.remove(infections, table.find(infections, yellowFever.Name))
  676.                 removeSymtpoms(filter(yellowFever.Name))
  677.                 if #infections == 0 then
  678.                         infected = false
  679.                 end
  680.         end
  681. end)
  682.  
  683. rubella.Changed:Connect(function()
  684.         if rubella.Value == true then
  685.                 rubella.Progression.Value = 900
  686.                 infected = true
  687.                 table.insert(infections, rubella.Name)
  688.                 addSymtpoms(filter(rubella.Name))
  689.         else
  690.                 table.remove(infections, table.find(infections, rubella.Name))
  691.                 removeSymtpoms(filter(rubella.Name))
  692.                 if #infections == 0 then
  693.                         infected = false
  694.                 end
  695.         end
  696. end)
  697.  
  698. rotavirus.Changed:Connect(function()
  699.         if rotavirus.Value == true then
  700.                 rotavirus.Progression.Value = 900
  701.                 infected = true
  702.                 table.insert(infections, rotavirus.Name)
  703.                 addSymtpoms(filter(rotavirus.Name))
  704.         else
  705.                 table.remove(infections, table.find(infections, rotavirus.Name))
  706.                 removeSymtpoms(filter(rotavirus.Name))
  707.                 if #infections == 0 then
  708.                         infected = false
  709.                 end
  710.         end
  711. end)
  712.  
  713. norovirus.Changed:Connect(function()
  714.         if norovirus.Value == true then
  715.                 norovirus.Progression.Value = 900
  716.                 infected = true
  717.                 table.insert(infections, norovirus.Name)
  718.                 addSymtpoms(filter(norovirus.Name))
  719.         else
  720.                 table.remove(infections, table.find(infections, norovirus.Name))
  721.                 removeSymtpoms(filter(norovirus.Name))
  722.                 if #infections == 0 then
  723.                         infected = false
  724.                 end
  725.         end
  726. end)
  727.  
  728. viralMeningitis.Changed:Connect(function()
  729.         if viralMeningitis.Value == true then
  730.                 viralMeningitis.Progression.Value = 900
  731.                 infected = true
  732.                 table.insert(infections, viralMeningitis.Name)
  733.                 addSymtpoms(filter(viralMeningitis.Name))
  734.         else
  735.                 table.remove(infections, table.find(infections, viralMeningitis.Name))
  736.                 removeSymtpoms(filter(viralMeningitis.Name))
  737.                 if #infections == 0 then
  738.                         infected = false
  739.                 end
  740.         end
  741. end)
  742.  
  743. rotavirus.Changed:Connect(function()
  744.         if rotavirus.Value == true then
  745.                 rotavirus.Progression.Value = 900
  746.                 infected = true
  747.                 table.insert(infections, rotavirus.Name)
  748.                 addSymtpoms(filter(rotavirus.Name))
  749.         else
  750.                 table.remove(infections, table.find(infections, rotavirus.Name))
  751.                 removeSymtpoms(filter(rotavirus.Name))
  752.                 if #infections == 0 then
  753.                         infected = false
  754.                 end
  755.         end
  756. end)
  757.  
  758. measles.Changed:Connect(function()
  759.         if measles.Value == true then
  760.                 measles.Progression.Value = 900
  761.                 infected = true
  762.                 table.insert(infections, measles.Name)
  763.                 addSymtpoms(filter(measles.Name))
  764.         else
  765.                 table.remove(infections, table.find(infections, measles.Name))
  766.                 removeSymtpoms(filter(measles.Name))
  767.                 if #infections == 0 then
  768.                         infected = false
  769.                 end
  770.         end
  771. end)
  772.  
  773. shingles.Changed:Connect(function()
  774.         if shingles.Value == true then
  775.                 shingles.Progression.Value = 900
  776.                 infected = true
  777.                 table.insert(infections, shingles.Name)
  778.                 addSymtpoms(filter(shingles.Name))
  779.         else
  780.                 table.remove(infections, table.find(infections, shingles.Name))
  781.                 removeSymtpoms(filter(shingles.Name))
  782.                 if #infections == 0 then
  783.                         infected = false
  784.                 end
  785.         end
  786. end)
  787.  
  788. severeAcuteRespiratorySyndrome.Changed:Connect(function()
  789.         if severeAcuteRespiratorySyndrome.Value == true then
  790.                 severeAcuteRespiratorySyndrome.Progression.Value = 900
  791.                 infected = true
  792.                 table.insert(infections, severeAcuteRespiratorySyndrome.Name)
  793.                 addSymtpoms(filter(severeAcuteRespiratorySyndrome.Name))
  794.         else
  795.                 table.remove(infections, table.find(infections, severeAcuteRespiratorySyndrome.Name))
  796.                 removeSymtpoms(filter(severeAcuteRespiratorySyndrome.Name))
  797.                 if #infections == 0 then
  798.                         infected = false
  799.                 end
  800.         end
  801. end)
  802.  
  803. rhinitis.Changed:Connect(function()
  804.         if rhinitis.Value == true then
  805.                 rhinitis.Progression.Value = 900
  806.                 infected = true
  807.                 table.insert(infections, rhinitis.Name)
  808.                 addSymtpoms(filter(rhinitis.Name))
  809.         else
  810.                 table.remove(infections, table.find(infections, rhinitis.Name))
  811.                 removeSymtpoms(filter(rhinitis.Name))
  812.                 if #infections == 0 then
  813.                         infected = false
  814.                 end
  815.         end
  816. end)
  817.  
  818. influenza.Changed:Connect(function()
  819.         if influenza.Value == true then
  820.                 influenza.Progression.Value = 900
  821.                 infected = true
  822.                 table.insert(infections, influenza.Name)
  823.                 addSymtpoms(filter(influenza.Name))
  824.         else
  825.                 table.remove(infections, table.find(infections, influenza.Name))
  826.                 removeSymtpoms(filter(influenza.Name))
  827.                 if #infections == 0 then
  828.                         infected = false
  829.                 end
  830.         end
  831. end)
  832.  
  833. ebola.Changed:Connect(function()
  834.         if ebola.Value == true then
  835.                 ebola.Progression.Value = 900
  836.                 infected = true
  837.                 table.insert(infections, ebola.Name)
  838.                 addSymtpoms(filter(ebola.Name))
  839.         else
  840.                 table.remove(infections, table.find(infections, ebola.Name))
  841.                 removeSymtpoms(filter(ebola.Name))
  842.                 if #infections == 0 then
  843.                         infected = false
  844.                 end
  845.         end
  846. end)
  847.  
  848. cysticercosis.Changed:Connect(function()
  849.         if cysticercosis.Value == true then
  850.                 cysticercosis.Progression.Value = 900
  851.                 infected = true
  852.                 table.insert(infections, cysticercosis.Name)
  853.                 addSymtpoms(filter(cysticercosis.Name))
  854.         else
  855.                 table.remove(infections, table.find(infections, cysticercosis.Name))
  856.                 removeSymtpoms(filter(cysticercosis.Name))
  857.                 if #infections == 0 then
  858.                         infected = false
  859.                 end
  860.         end
  861. end)
  862.  
  863. amebiasis.Changed:Connect(function()
  864.         if amebiasis.Value == true then
  865.                 amebiasis.Progression.Value = 900
  866.                 infected = true
  867.                 table.insert(infections, amebiasis.Name)
  868.                 addSymtpoms(filter(amebiasis.Name))
  869.         else
  870.                 table.remove(infections, table.find(infections, amebiasis.Name))
  871.                 removeSymtpoms(filter(amebiasis.Name))
  872.                 if #infections == 0 then
  873.                         infected = false
  874.                 end
  875.         end
  876. end)
  877.  
  878. trypanosomaCruzi.Changed:Connect(function()
  879.         if trypanosomaCruzi.Value == true then
  880.                 trypanosomaCruzi.Progression.Value = 900
  881.                 infected = true
  882.                 table.insert(infections, trypanosomaCruzi.Name)
  883.                 addSymtpoms(filter(trypanosomaCruzi.Name))
  884.         else
  885.                 table.remove(infections, table.find(infections, trypanosomaCruzi.Name))
  886.                 removeSymtpoms(filter(trypanosomaCruzi.Name))
  887.                 if #infections == 0 then
  888.                         infected = false
  889.                 end
  890.         end
  891. end)
  892.  
  893. malaria.Changed:Connect(function()
  894.         if malaria.Value == true then
  895.                 malaria.Progression.Value = 900
  896.                 infected = true
  897.                 table.insert(infections, malaria.Name)
  898.                 addSymtpoms(filter(malaria.Name))
  899.         else
  900.                 table.remove(infections, table.find(infections, malaria.Name))
  901.                 removeSymtpoms(filter(malaria.Name))
  902.                 if #infections == 0 then
  903.                         infected = false
  904.                 end
  905.         end
  906. end)
  907.  
  908. eVermicularis.Changed:Connect(function()
  909.         if eVermicularis.Value == true then
  910.                 eVermicularis.Progression.Value = 900
  911.                 infected = true
  912.                 table.insert(infections, eVermicularis.Name)
  913.                 addSymtpoms(filter(eVermicularis.Name))
  914.         else
  915.                 table.remove(infections, table.find(infections, eVermicularis.Name))
  916.                 removeSymtpoms(filter(eVermicularis.Name))
  917.                 if #infections == 0 then
  918.                         infected = false
  919.                 end
  920.         end
  921. end)
  922.  
  923. echinococcosis.Changed:Connect(function()
  924.         if echinococcosis.Value == true then
  925.                 echinococcosis.Progression.Value = 900
  926.                 infected = true
  927.                 table.insert(infections, echinococcosis.Name)
  928.                 addSymtpoms(filter(echinococcosis.Name))
  929.         else
  930.                 table.remove(infections, table.find(infections, echinococcosis.Name))
  931.                 removeSymtpoms(filter(echinococcosis.Name))
  932.                 if #infections == 0 then
  933.                         infected = false
  934.                 end
  935.         end
  936. end)
  937.  
  938. toxocariasis.Changed:Connect(function()
  939.         if toxocariasis.Value == true then
  940.                 toxocariasis.Progression.Value = 900
  941.                 infected = true
  942.                 table.insert(infections, toxocariasis.Name)
  943.                 addSymtpoms(filter(toxocariasis.Name))
  944.         else
  945.                 table.remove(infections, table.find(infections, toxocariasis.Name))
  946.                 removeSymtpoms(filter(toxocariasis.Name))
  947.                 if #infections == 0 then
  948.                         infected = false
  949.                 end
  950.         end
  951. end)
  952.  
  953. tuberculosis.Changed:Connect(function()
  954.         if tuberculosis.Value == true then
  955.                 tuberculosis.Progression.Value = 900
  956.                 infected = true
  957.                 table.insert(infections, tuberculosis.Name)
  958.                 addSymtpoms(filter(tuberculosis.Name))
  959.         else
  960.                 table.remove(infections, table.find(infections, tuberculosis.Name))
  961.                 removeSymtpoms(filter(tuberculosis.Name))
  962.                 if #infections == 0 then
  963.                         infected = false
  964.                 end
  965.         end
  966. end)
  967.  
  968. whoopingCough.Changed:Connect(function()
  969.         if whoopingCough.Value == true then
  970.                 whoopingCough.Progression.Value = 900
  971.                 infected = true
  972.                 table.insert(infections, whoopingCough.Name)
  973.                 addSymtpoms(filter(whoopingCough.Name))
  974.         else
  975.                 table.remove(infections, table.find(infections, whoopingCough.Name))
  976.                 removeSymtpoms(filter(whoopingCough.Name))
  977.                 if #infections == 0 then
  978.                         infected = false
  979.                 end
  980.         end
  981. end)
  982.  
  983. bacterialMeningitis.Changed:Connect(function()
  984.         if bacterialMeningitis.Value == true then
  985.                 bacterialMeningitis.Progression.Value = 1800
  986.                 infected = true
  987.                 table.insert(infections, bacterialMeningitis.Name)
  988.                 addSymtpoms(filter(bacterialMeningitis.Name))
  989.         else
  990.                 table.remove(infections, table.find(infections, bacterialMeningitis.Name))
  991.                 removeSymtpoms(filter(bacterialMeningitis.Name))
  992.                 if #infections == 0 then
  993.                         infected = false
  994.                 end
  995.         end
  996. end)
  997.  
  998. cholera.Changed:Connect(function()
  999.         if cholera.Value == true then
  1000.                 cholera.Progression.Value = 1800
  1001.                 infected = true
  1002.                 table.insert(infections, cholera.Name)
  1003.                 addSymtpoms(filter(cholera.Name))
  1004.         else
  1005.                 table.remove(infections, table.find(infections, cholera.Name))
  1006.                 removeSymtpoms(filter(cholera.Name))
  1007.                 if #infections == 0 then
  1008.                         infected = false
  1009.                 end
  1010.         end
  1011. end)
  1012.  
  1013. diphtheria.Changed:Connect(function()
  1014.         if diphtheria.Value == true then
  1015.                 diphtheria.Progression.Value = 1800
  1016.                 infected = true
  1017.                 table.insert(infections, diphtheria.Name)
  1018.                 addSymtpoms(filter(diphtheria.Name))
  1019.         else
  1020.                 table.remove(infections, table.find(infections, diphtheria.Name))
  1021.                 removeSymtpoms(filter(diphtheria.Name))
  1022.                 if #infections == 0 then
  1023.                         infected = false
  1024.                 end
  1025.         end
  1026. end)
  1027.  
  1028. strepThroat.Changed:Connect(function()
  1029.         if strepThroat.Value == true then
  1030.                 strepThroat.Progression.Value = 1800
  1031.                 infected = true
  1032.                 table.insert(infections, strepThroat.Name)
  1033.                 addSymtpoms(filter(strepThroat.Name))
  1034.         else
  1035.                 table.remove(infections, table.find(infections, strepThroat.Name))
  1036.                 removeSymtpoms(filter(strepThroat.Name))
  1037.                 if #infections == 0 then
  1038.                         infected = false
  1039.                 end
  1040.         end
  1041. end)
  1042.  
  1043. typhoid.Changed:Connect(function()
  1044.         if typhoid.Value == true then
  1045.                 typhoid.Progression.Value = 1800
  1046.                 infected = true
  1047.                 table.insert(infections, typhoid.Name)
  1048.                 addSymtpoms(filter(typhoid.Name))
  1049.         else
  1050.                 table.remove(infections, table.find(infections, typhoid.Name))
  1051.                 removeSymtpoms(filter(typhoid.Name))
  1052.                 if #infections == 0 then
  1053.                         infected = false
  1054.                 end
  1055.         end
  1056. end)
  1057.  
  1058. typhus.Changed:Connect(function()
  1059.         if typhus.Value == true then
  1060.                 typhus.Progression.Value = 1800
  1061.                 infected = true
  1062.                 table.insert(infections, typhus.Name)
  1063.                 addSymtpoms(filter(typhus.Name))
  1064.         else
  1065.                 table.remove(infections, table.find(infections, typhus.Name))
  1066.                 removeSymtpoms(filter(typhus.Name))
  1067.                 if #infections == 0 then
  1068.                         infected = false
  1069.                 end
  1070.         end
  1071. end)
  1072.  
  1073. -- progression changes
  1074.  
  1075. --// Bacterial
  1076.  
  1077. bacterialMeningitis.Progression.Changed:Connect(function()
  1078.         if bacterialMeningitis.Progression.Value == 0 then
  1079.                 bacterialMeningitis.Value = false
  1080.         end
  1081. end)
  1082.  
  1083. cholera.Progression.Changed:Connect(function()
  1084.         if cholera.Progression.Value == 0 then
  1085.                 cholera.Value = false
  1086.         end
  1087. end)
  1088.  
  1089. diphtheria.Progression.Changed:Connect(function()
  1090.         if diphtheria.Progression.Value == 0 then
  1091.                 diphtheria.Value = false
  1092.         end
  1093. end)
  1094.  
  1095. strepThroat.Progression.Changed:Connect(function()
  1096.         if strepThroat.Progression.Value == 0 then
  1097.                 strepThroat.Value = false
  1098.         end
  1099. end)
  1100.  
  1101. tuberculosis.Progression.Changed:Connect(function()
  1102.         if tuberculosis.Progression.Value == 0 then
  1103.                 tuberculosis.Value = false
  1104.         end
  1105. end)
  1106.  
  1107. typhoid.Progression.Changed:Connect(function()
  1108.         if typhoid.Progression.Value == 0 then
  1109.                 typhoid.Value = false
  1110.         end
  1111. end)
  1112.  
  1113. typhus.Progression.Changed:Connect(function()
  1114.         if typhus.Progression.Value == 0 then
  1115.                 typhus.Value = false
  1116.         end
  1117. end)
  1118.  
  1119. whoopingCough.Progression.Changed:Connect(function()
  1120.         if whoopingCough.Progression.Value == 0 then
  1121.                 whoopingCough.Value = false
  1122.         end
  1123. end)
  1124.  
  1125. --// Viral
  1126.  
  1127. covid19.Progression.Changed:Connect(function()
  1128.         if covid19.Progression.Value == 0 then
  1129.                 covid19.Value = false
  1130.         end
  1131. end)
  1132.  
  1133. ebola.Progression.Changed:Connect(function()
  1134.         if ebola.Progression.Value == 0 then
  1135.                 ebola.Value = false
  1136.         end
  1137. end)
  1138.  
  1139. ebola.Progression.Changed:Connect(function()
  1140.         if ebola.Progression.Value == 0 then
  1141.                 ebola.Value = false
  1142.         end
  1143. end)
  1144.  
  1145. influenza.Progression.Changed:Connect(function()
  1146.         if influenza.Progression.Value == 0 then
  1147.                 influenza.Value = false
  1148.         end
  1149. end)
  1150.  
  1151. measles.Progression.Changed:Connect(function()
  1152.         if measles.Progression.Value == 0 then
  1153.                 measles.Value = false
  1154.         end
  1155. end)
  1156.  
  1157. norovirus.Progression.Changed:Connect(function()
  1158.         if norovirus.Progression.Value == 0 then
  1159.                 norovirus.Value = false
  1160.         end
  1161. end)
  1162.  
  1163. polio.Progression.Changed:Connect(function()
  1164.         if polio.Progression.Value == 0 then
  1165.                 polio.Value = false
  1166.         end
  1167. end)
  1168.  
  1169. respiratorySyncytialVirus.Progression.Changed:Connect(function()
  1170.         if respiratorySyncytialVirus.Progression.Value == 0 then
  1171.                 respiratorySyncytialVirus.Value = false
  1172.         end
  1173. end)
  1174.  
  1175. rhinitis.Progression.Changed:Connect(function()
  1176.         if rhinitis.Progression.Value == 0 then
  1177.                 rhinitis.Value = false
  1178.         end
  1179. end)
  1180.  
  1181. rotavirus.Progression.Changed:Connect(function()
  1182.         if rotavirus.Progression.Value == 0 then
  1183.                 rotavirus.Value = false
  1184.         end
  1185. end)
  1186.  
  1187. rubella.Progression.Changed:Connect(function()
  1188.         if rubella.Progression.Value == 0 then
  1189.                 rubella.Value = false
  1190.         end
  1191. end)
  1192.  
  1193. severeAcuteRespiratorySyndrome.Progression.Changed:Connect(function()
  1194.         if severeAcuteRespiratorySyndrome.Progression.Value == 0 then
  1195.                 severeAcuteRespiratorySyndrome.Value = false
  1196.         end
  1197. end)
  1198.  
  1199. shingles.Progression.Changed:Connect(function()
  1200.         if shingles.Progression.Value == 0 then
  1201.                 shingles.Value = false
  1202.         end
  1203. end)
  1204.  
  1205. viralMeningitis.Progression.Changed:Connect(function()
  1206.         if viralMeningitis.Progression.Value == 0 then
  1207.                 viralMeningitis.Value = false
  1208.         end
  1209. end)
  1210.  
  1211. yellowFever.Progression.Changed:Connect(function()
  1212.         if yellowFever.Progression.Value == 0 then
  1213.                 yellowFever.Value = false
  1214.         end
  1215. end)
  1216.  
  1217. --\\
  1218.  
  1219. --// Parasitic
  1220.  
  1221. amebiasis.Progression.Changed:Connect(function()
  1222.         if amebiasis.Progression.Value == 0 then
  1223.                 amebiasis.Value = false
  1224.         end
  1225. end)
  1226.  
  1227. cysticercosis.Progression.Changed:Connect(function()
  1228.         if cysticercosis.Progression.Value == 0 then
  1229.                 cysticercosis.Value = false
  1230.         end
  1231. end)
  1232.  
  1233. eVermicularis.Progression.Changed:Connect(function()
  1234.         if eVermicularis.Progression.Value == 0 then
  1235.                 eVermicularis.Value = false
  1236.         end
  1237. end)
  1238.  
  1239. echinococcosis.Progression.Changed:Connect(function()
  1240.         if echinococcosis.Progression.Value == 0 then
  1241.                 echinococcosis.Value = false
  1242.         end
  1243. end)
  1244.  
  1245. malaria.Progression.Changed:Connect(function()
  1246.         if malaria.Progression.Value == 0 then
  1247.                 malaria.Value = false
  1248.         end
  1249. end)
  1250.  
  1251. toxocariasis.Progression.Changed:Connect(function()
  1252.         if toxocariasis.Progression.Value == 0 then
  1253.                 toxocariasis.Value = false
  1254.         end
  1255. end)
  1256.  
  1257. toxocariasis.Progression.Changed:Connect(function()
  1258.         if toxocariasis.Progression.Value == 0 then
  1259.                 toxocariasis.Value = false
  1260.         end
  1261. end)
  1262.  
  1263. --\\
  1264.  
  1265. --// Symptom Effects
  1266.  
  1267. local diseaseEffects = game.ServerStorage.DiseaseEffects
  1268.  
  1269. local temperature = localCharacter:WaitForChild("Temperature")
  1270. local croupEffect = diseaseEffects.Croup
  1271. local dryCoughEffect = diseaseEffects["Dry Cough"]
  1272. local wetCoughEffect = diseaseEffects["Wet Cough"]
  1273. local uncontrollableCoughEffect = diseaseEffects["Uncontrollable Coughing"]
  1274. local runnyNoseEffect = diseaseEffects["Runny Nose"]
  1275. local vomitEffect = diseaseEffects.Vomiting
  1276. local conjunctivitisEffect = diseaseEffects.Conjunctivitis
  1277. local jaundiceEffect = diseaseEffects.Jaundice
  1278. local cyanosisEffect = diseaseEffects.Cyanosis
  1279. local sneezingEffect = diseaseEffects.Sneezing
  1280. local sweatEffect = diseaseEffects.Sweating
  1281. local wheezeEffect = diseaseEffects.Wheezing
  1282. local faintRemote = game.ReplicatedStorage.Events.Faint
  1283. local nauseaRemote = game.ReplicatedStorage.Events.Nausea
  1284. local torso = localCharacter.UpperTorso
  1285. local playerGui = player.PlayerGui
  1286. local feverTemperature = 2
  1287.  
  1288. fever.Changed:Connect(function()
  1289.         if fever.Value == true then
  1290.                 temperature.Base.Value += feverTemperature
  1291.         else
  1292.                 temperature.Base.Value -= feverTemperature
  1293.         end
  1294. end)
  1295.  
  1296. bleeding.Changed:Connect(function()
  1297.         if bleeding.Value == true then
  1298.                 local PFX = diseaseEffects.Bleeding.Blood
  1299.                 local newPFX = PFX:Clone()
  1300.                 newPFX.Parent = torso
  1301.         else
  1302.                 if torso:FindFirstChild("Blood") then
  1303.                         torso:FindFirstChild("Blood"):Destroy()
  1304.                 end
  1305.         end
  1306. end)
  1307.  
  1308. conjunctivitis.Changed:Connect(function()
  1309.         if conjunctivitis.Value == true then
  1310.                 local newEffect = conjunctivitisEffect.Conjunctivitis:Clone()
  1311.                 newEffect.Parent = playerGui
  1312.         else
  1313.                 if script.Parent.Parent:FindFirstChild("Conjunctivitis") then
  1314.                         playerGui:FindFirstChild("Conjunctivitis"):Destroy()
  1315.                 end
  1316.         end
  1317. end)
  1318.  
  1319. cyanosis.Changed:Connect(function()
  1320.         if cyanosis.Value == true then
  1321.                 for i,v in pairs(cyanosisEffect:GetChildren()) do
  1322.                         for i2, v2 in pairs(localCharacter:GetChildren()) do
  1323.                                 if v2:IsA("BasePart") and v2.Name == v.Name then
  1324.                                         for i3, v3 in pairs(v:GetChildren()) do
  1325.                                                 local newEffect = v3:Clone()
  1326.                                                 newEffect.Parent = v2
  1327.                                         end
  1328.                                 end
  1329.                         end
  1330.                 end                    
  1331.         else
  1332.                 for i,v in pairs(localCharacter:GetDescendants()) do
  1333.                         if v.Name == "Cyanosis" then
  1334.                                 v:Destroy()
  1335.                         end
  1336.                 end
  1337.         end
  1338. end)
  1339.  
  1340. dry_cough.Changed:Connect(function()
  1341.         if dry_cough.Value == true then
  1342.                 for i,v in pairs(dryCoughEffect:GetChildren()) do
  1343.                         local newEffect = v:Clone()
  1344.                         newEffect.Parent = localCharacter.Head
  1345.                 end
  1346.         else
  1347.                 for i,v in pairs(localCharacter.Head:GetChildren()) do
  1348.                         for i2,v2 in pairs(dryCoughEffect:GetChildren()) do
  1349.                                 if v.Name == v2.Name then
  1350.                                         v:Destroy()
  1351.                                 end
  1352.                         end
  1353.                 end
  1354.         end
  1355. end)
  1356.  
  1357. croup.Changed:Connect(function()
  1358.         if croup.Value == true then
  1359.                 for i,v in pairs(croupEffect:GetChildren()) do
  1360.                         local newEffect = v:Clone()
  1361.                         newEffect.Parent = localCharacter.Head
  1362.                 end
  1363.         else
  1364.                 for i,v in pairs(localCharacter.Head:GetChildren()) do
  1365.                         for i2,v2 in pairs(croupEffect:GetChildren()) do
  1366.                                 if v.Name == v2.Name then
  1367.                                         v:Destroy()
  1368.                                 end
  1369.                         end
  1370.                 end
  1371.         end
  1372. end)
  1373.  
  1374. wet_cough.Changed:Connect(function()
  1375.         if wet_cough.Value == true then
  1376.                 for i,v in pairs(wetCoughEffect:GetChildren()) do
  1377.                         local newEffect = v:Clone()
  1378.                         newEffect.Parent = localCharacter.Head
  1379.                 end
  1380.         else
  1381.                 for i,v in pairs(localCharacter.Head:GetChildren()) do
  1382.                         for i2,v2 in pairs(wetCoughEffect:GetChildren()) do
  1383.                                 if v.Name == v2.Name then
  1384.                                         v:Destroy()
  1385.                                 end
  1386.                         end
  1387.                 end
  1388.         end
  1389. end)
  1390.  
  1391. fatigue.Changed:Connect(function()
  1392.         if fatigue.Value == true then
  1393.                 playerGui:FindFirstChild("Fatigue").Enabled = true
  1394.         else
  1395.                 playerGui:FindFirstChild("Fatigue").Enabled = false
  1396.         end
  1397. end)
  1398.  
  1399. jaundice.Changed:Connect(function()
  1400.         if jaundice.Value == true then
  1401.                 for i,v in pairs(jaundiceEffect:GetChildren()) do
  1402.                         for i2, v2 in pairs(localCharacter:GetChildren()) do
  1403.                                 if v2:IsA("BasePart") and v2.Name == v.Name then
  1404.                                         for i3, v3 in pairs(v:GetChildren()) do
  1405.                                                 local newEffect = v3:Clone()
  1406.                                                 newEffect.Parent = v2
  1407.                                         end
  1408.                                 end
  1409.                         end
  1410.                 end                    
  1411.         else
  1412.                 for i,v in pairs(localCharacter:GetDescendants()) do
  1413.                         if v.Name == "Jaundice" then
  1414.                                 v:Destroy()
  1415.                         end
  1416.                 end
  1417.         end
  1418. end)
  1419.  
  1420. nausea.Changed:Connect(function()
  1421.         if nausea.Value == true then
  1422.                 nauseaRemote:FireClient(player, "Start")
  1423.         else
  1424.                 nauseaRemote:FireClient(player, "Stop")
  1425.         end
  1426. end)
  1427.  
  1428. runnyNose.Changed:Connect(function()
  1429.         if runnyNose.Value == true then
  1430.                 local snotAttachment = Instance.new("Attachment")
  1431.                 snotAttachment.Parent = localCharacter.Head
  1432.                 snotAttachment.Name = "snotAttachment"
  1433.                 snotAttachment.Position = Vector3.new(-0.1, 0, -0.619)
  1434.                 for i,v in pairs(runnyNoseEffect:GetChildren()) do
  1435.                         v.Parent = localCharacter.Head.snotAttachment
  1436.                 end
  1437.         else
  1438.                 localCharacter.Head:FindFirstChild("snotAttachment"):Destroy()
  1439.         end
  1440. end)
  1441.  
  1442. sneezing.Changed:Connect(function()
  1443.         if sneezing.Value == true then
  1444.                 local newEffect = sneezingEffect:Clone()
  1445.                 newEffect.Parent = localCharacter.Head
  1446.         else
  1447.                 localCharacter.Head:FindFirstChild("Sneezing"):Destroy()
  1448.         end
  1449. end)
  1450.  
  1451. sweating.Changed:Connect(function()
  1452.         if sweating.Value == true then
  1453.                 local newEffect = sweatEffect.SweatBoundingBox:Clone()
  1454.                 newEffect.Position = localCharacter.Head.Position
  1455.                 local newWeld = Instance.new("Weld")
  1456.                 newWeld.Parent = localCharacter.Head
  1457.                 newWeld.Part0 = localCharacter.Head
  1458.                 newWeld.Part1 = newEffect
  1459.                 newEffect.Parent = localCharacter
  1460.         else
  1461.                 if localCharacter:FindFirstChild("SweatBoundingBox") then
  1462.                         localCharacter:FindFirstChild("SweatBoundingBox"):Destroy()
  1463.                 end
  1464.         end
  1465. end)
  1466.  
  1467. uncontrollable_cough.Changed:Connect(function()
  1468.         if uncontrollable_cough.Value == true then
  1469.                 for i,v in pairs(uncontrollableCoughEffect:GetChildren()) do
  1470.                         local newEffect = v:Clone()
  1471.                         newEffect.Parent = localCharacter.Head
  1472.                 end
  1473.         else
  1474.                 for i,v in pairs(localCharacter.Head:GetChildren()) do
  1475.                         for i2,v2 in pairs(uncontrollableCoughEffect:GetChildren()) do
  1476.                                 if v.Name == v2.Name then
  1477.                                         v:Destroy()
  1478.                                 end
  1479.                         end
  1480.                 end
  1481.         end
  1482. end)
  1483.  
  1484. vomiting.Changed:Connect(function()
  1485.         if vomiting.Value == true then
  1486.                 print("yo")
  1487.                 local vomitAttachment = Instance.new("Attachment")
  1488.                 vomitAttachment.Parent = localCharacter.Head
  1489.                 vomitAttachment.Name = "vomitAttachment"
  1490.                 vomitAttachment.Position = Vector3.new(0, -0.257, -0.638)
  1491.                 for i,v in pairs(vomitEffect:GetChildren()) do
  1492.                         local newEffect = v:Clone()
  1493.                         newEffect.Parent = localCharacter.Head.vomitAttachment
  1494.                 end
  1495.         else
  1496.                 if localCharacter.Head:FindFirstChild("vomitAttachment") then
  1497.                         localCharacter.Head.vomitAttachment:Destroy()
  1498.                 end
  1499.         end
  1500. end)
  1501.  
  1502. wheezing.Changed:Connect(function()
  1503.         if wheezing.Value == true then
  1504.                 for i,v in pairs(wheezeEffect:GetChildren()) do
  1505.                         local newEffect = v:Clone()
  1506.                         newEffect.Parent = localCharacter.Head
  1507.                 end
  1508.                 localCharacter.Head.Wheeze:Play()
  1509.         else
  1510.                 for i,v in pairs(localCharacter.Head:GetChildren()) do
  1511.                         for i2,v2 in pairs(uncontrollableCoughEffect:GetChildren()) do
  1512.                                 if v.Name == v2.Name then
  1513.                                         v:Destroy()
  1514.                                 end
  1515.                         end
  1516.                 end
  1517.         end
  1518. end)
  1519.  
  1520. --\\
  1521.  
  1522. medication.Changed:Connect(function()
  1523.         if medication.Value then
  1524.                 medication.Progression.Value = 30
  1525.         end
  1526. end)
  1527.  
  1528. local fainted = false
  1529. local coughing = false
  1530.  
  1531. bindableEvent.Event:Connect(function(diseaseDefence, playerName, infectionsTable, hygiene)
  1532.         if playerName == tostring(player.Name) then
  1533.                 for i,ailment in pairs(infectionsTable) do
  1534.                         local disease = diseaseDictionary[filter(ailment)]
  1535.                         local diseaseName = disease["diseaseName"]
  1536.                         local spreadChance = disease["baseSpreadChance"]
  1537.                         local chance = math.round((spreadChance/100)*((100+diseaseDefence-hygiene)))
  1538.                         if chance < 1 then
  1539.                                 chance = 1
  1540.                         end
  1541.                         local isInfected = math.random(1, chance)
  1542.                         if isInfected == 1 then
  1543.                                 for i,disease in pairs(infectionsFolder:GetDescendants()) do
  1544.                                         if disease.Name == diseaseName then
  1545.                                                 disease.Value = true
  1546.                                         end
  1547.                                 end
  1548.                         end
  1549.                 end
  1550.         end
  1551. end)
  1552.  
  1553. local DataStoreService = game:GetService("DataStoreService")
  1554.  
  1555. local infectionStore = DataStoreService:GetDataStore("InfectionsDataStore_Beta")
  1556.  
  1557. local success, currentInfections = pcall(function()
  1558.         return infectionStore:GetAsync(player.UserId)
  1559. end)
  1560. if success then
  1561.         for i,v in pairs(currentInfections) do
  1562.                 for i2, v2 in pairs(infectionsFolder:GetDescendants()) do
  1563.                         if v2.Name == v then
  1564.                                 v2.Value = true
  1565.                         end
  1566.                 end
  1567.         end
  1568. end
  1569.  
  1570. Players.PlayerRemoving:Connect(function()
  1571.         local success, errorMessage = pcall(function()
  1572.                 infectionStore:SetAsync(player.UserId, infections)
  1573.         end)
  1574.         if not success then
  1575.                 print(errorMessage)
  1576.         end
  1577. end)
  1578.  
  1579. player.CharacterAdded:Connect(function()
  1580.         localCharacter = player.Character
  1581.         for i,v in pairs(infections) do
  1582.                 addSymtpoms(filter(v))
  1583.         end
  1584. end)
  1585.  
  1586.  
  1587.  
  1588. local params = RaycastParams.new()
  1589. params.FilterDescendantsInstances = {localCharacter}
  1590. params.FilterType = Enum.RaycastFilterType.Blacklist
  1591. params.IgnoreWater = true
  1592.  
  1593.  
  1594. while true do
  1595.         wait(1)
  1596.  
  1597.         if medication.Value then
  1598.                 if medication.Progression.Value > 0 then
  1599.                         medication.Progression.Value -= 1
  1600.                 end
  1601.         end
  1602.  
  1603.         if medication.Progression.Value == 0 then
  1604.                 medication.Value = ""
  1605.         end
  1606.  
  1607.         if bleeding.Value == true then
  1608.                 if localCharacter:FindFirstChild("Humanoid") then
  1609.                         localCharacter.Humanoid:TakeDamage(.1)
  1610.                 end
  1611.         end
  1612.  
  1613.         if dry_cough.Value == true then
  1614.                 local randomChance = math.random(1,10)
  1615.                 if randomChance == 1 and coughing == false then
  1616.                         task.spawn(function()
  1617.                                 coughing = true
  1618.                                 if localCharacter.Head:FindFirstChild("DryCough") then
  1619.                                         localCharacter.Head.DryCough:Play()
  1620.                                         localCharacter.Head.Dry_Cough.Enabled = true
  1621.                                         localCharacter.Head.DryCough.Ended:Wait()
  1622.                                         localCharacter.Head.Dry_Cough.Enabled = false
  1623.                                 end
  1624.                                 coughing = false
  1625.                         end)
  1626.                 end
  1627.         end
  1628.  
  1629.         if croup.Value == true then
  1630.                 local randomChance = math.random(1,10)
  1631.                 if randomChance == 1 and coughing == false then
  1632.                         task.spawn(function()
  1633.                                 coughing = true
  1634.                                 if localCharacter.Head:FindFirstChild("Croup") then
  1635.                                         localCharacter.Head.Croup:Play()
  1636.                                         localCharacter.Head.Croup_Cough.Enabled = true
  1637.                                         localCharacter.Head.Croup.Ended:Wait()
  1638.                                         localCharacter.Head.Croup_Cough.Enabled = false
  1639.                                 end
  1640.                                 coughing = false
  1641.                         end)
  1642.                 end
  1643.         end
  1644.  
  1645.         if uncontrollable_cough.Value == true then
  1646.                 local randomChance = math.random(1,10)
  1647.                 if randomChance == 1 and coughing == false then
  1648.                         task.spawn(function()
  1649.                                 for i = 3, 1, -1 do
  1650.                                         coughing = true
  1651.                                         if localCharacter.Head:FindFirstChild("UncontrollableCough") then
  1652.                                                 localCharacter.Head.UncontrollableCough:Play()
  1653.                                                 localCharacter.Head.Uncontrollable_Cough.Enabled = true
  1654.                                                 localCharacter.Head.UncontrollableCough.Ended:Wait()
  1655.                                                 localCharacter.Head.Uncontrollable_Cough.Enabled = false
  1656.                                                 wait(math.random(.1,1.5))
  1657.                                         end
  1658.                                 end
  1659.                                 coughing = false
  1660.                         end)
  1661.                 end
  1662.         end
  1663.  
  1664.         if wet_cough.Value == true then
  1665.                 local randomChance = math.random(1,10)
  1666.                 if randomChance == 1 and coughing == false then
  1667.                         task.spawn(function()
  1668.                                 coughing = true
  1669.                                 if localCharacter.Head:FindFirstChild("WetCough") then
  1670.                                         localCharacter.Head.WetCough:Play()
  1671.                                         localCharacter.Head.Wet_Cough.Enabled = true
  1672.                                         localCharacter.Head.WetCough.Ended:Wait()
  1673.                                         localCharacter.Head.Wet_Cough.Enabled = false
  1674.                                 end
  1675.                                 coughing = true
  1676.                         end)
  1677.                 end
  1678.         end
  1679.  
  1680.         if fainting.Value == true and fainted == false then
  1681.                 local randomChance = math.random(1,10)
  1682.                 if randomChance == 1 then
  1683.                         task.spawn(function()
  1684.                                 fainted = true
  1685.                                 faintRemote:FireClient(player, math.random(1,5))
  1686.                                 wait(10)
  1687.                                 fainted = false
  1688.                         end)
  1689.                 end
  1690.         end
  1691.  
  1692.         if sneezing.Value == true then
  1693.                 local randomChance = math.random(1,10)
  1694.                 if randomChance == 1 then
  1695.                         task.spawn(function()
  1696.                                 if localCharacter.Head:FindFirstChild("Sneezing") then
  1697.                                         localCharacter.Head.Sneezing.Sneezing.Enabled = true
  1698.                                         localCharacter.Head.Sneezing.Sneeze:Play()
  1699.                                         localCharacter.Head.Sneezing.Sneeze.Ended:Wait()
  1700.                                         localCharacter.Head.Sneezing.Sneezing.Enabled = false
  1701.                                 end
  1702.                         end)
  1703.                 end
  1704.         end
  1705.  
  1706.         if vomiting.Value == true then
  1707.                 local randomChance = math.random(1,5)
  1708.                 if randomChance == 1 then
  1709.                         if localCharacter.Head:FindFirstChild("vomitAttachment") then
  1710.                                 for i,v in pairs(localCharacter.Head.vomitAttachment:GetChildren()) do
  1711.                                         for i2,v2 in pairs(vomitEffect:GetChildren()) do
  1712.                                                 if v2.Name == v.Name then
  1713.                                                         local waitTime = math.random(1,3)
  1714.                                                         task.spawn(function()
  1715.                                                                 v.Enabled = true
  1716.                                                                 wait(waitTime)
  1717.                                                                 v.Enabled = false
  1718.                                                         end)
  1719.                                                 end
  1720.                                         end
  1721.                                 end
  1722.                         end
  1723.                 end
  1724.         end
  1725.  
  1726.         if infected == true then
  1727.                 for i,diseases in pairs(infections) do
  1728.                         local spreadDistance = diseaseDictionary[filter(diseases)]["spreadDistance"]
  1729.                         local progressionSpeed = diseaseDictionary[filter(diseases)]["progressionSpeed"]
  1730.                         local diseaseName = diseaseDictionary[filter(diseases)]["diseaseName"]
  1731.                         for i,v in pairs(infectionsFolder:GetDescendants()) do
  1732.                                 if v.Name == diseaseName then
  1733.                                         diseaseObject = v
  1734.                                 end
  1735.                         end
  1736.                         local diseaseProgression = diseaseObject.Progression
  1737.                         if diseaseProgression.Value ~= 0 then
  1738.                                 for i,v in pairs(diseaseDictionary[filter(diseases)]["vulnerabilities"]) do
  1739.                                         if medication.Value then
  1740.                                                 if medication.Value == v then
  1741.                                                         progressionSpeed = progressionSpeed*2
  1742.                                                 end
  1743.                                         end
  1744.                                 end
  1745.  
  1746.                                 for i,v in pairs(diseaseDictionary[filter(diseases)]["extremeVulnerabilities"]) do
  1747.                                         if medication.Value then
  1748.                                                 if medication.Value == v then
  1749.                                                         progressionSpeed = progressionSpeed*5
  1750.                                                 end
  1751.                                         end
  1752.                                 end
  1753.                                 diseaseProgression.Value -= progressionSpeed
  1754.                                 print(diseaseName.." progression: "..diseaseProgression.Value)
  1755.                         end
  1756.                         for i,char in pairs(Players:GetChildren()) do
  1757.                                 if char ~= player then
  1758.                                         local character = char.Character
  1759.                                         local hrp = character.HumanoidRootPart
  1760.                                         local rayEnd = CFrame.lookAt(localCharacter.HumanoidRootPart.Position, hrp.Position)
  1761.                                         local RayResult = workspace:Raycast(localCharacter.HumanoidRootPart.Position, rayEnd.LookVector * spreadDistance, params)
  1762.  
  1763.                                         if RayResult then
  1764.                                                 local hitpart = RayResult.Instance
  1765.                                                 local model = hitpart:FindFirstAncestorOfClass("Model") or hitpart:FindFirstAncestorOfClass("Tool") or hitpart:FindFirstAncestorOfClass("Accessory")
  1766.                                                 if model then
  1767.                                                         if model:FindFirstChild("Humanoid") then
  1768.                                                                 local diseaseDefence = model:FindFirstChild("DiseaseDefence")
  1769.                                                                 local hygiene = model:FindFirstChild("Hygiene")
  1770.                                                                 bindableEvent:Fire(diseaseDefence.Value, tostring(character.Name), infections, hygiene.Value)
  1771.                                                         elseif model.Parent:FindFirstChild("Humanoid") then
  1772.                                                                 if model.Parent:FindFirstChild("Humanoid") then
  1773.                                                                         local diseaseDefence = model.Parent:FindFirstChild("DiseaseDefence")
  1774.                                                                         local hygiene = model.Parent:FindFirstChild("Hygiene")
  1775.                                                                         bindableEvent:Fire(diseaseDefence.Value, tostring(character.Name), infections, hygiene.Value)
  1776.                                                                 end
  1777.                                                         elseif model.Parent.Parent:FindFirstChild("Humanoid") then
  1778.                                                                 if model.Parent.Parent:FindFirstChild("Humanoid") then
  1779.                                                                         local diseaseDefence = model.Parent.Parent:FindFirstChild("DiseaseDefence")
  1780.                                                                         local hygiene = model.Parent.Parent:FindFirstChild("Hygiene")
  1781.                                                                         bindableEvent:Fire(diseaseDefence.Value, tostring(character.Name), infections, hygiene.Value)
  1782.                                                                 end
  1783.                                                         end
  1784.                                                 end
  1785.                                         end
  1786.                                 else
  1787.                                         -- same person
  1788.                                 end
  1789.                         end
  1790.                 end
  1791.         end
  1792. end

Raw Paste


Login or Register to edit or fork this paste. It's free.