diff --git a/code/modules/reagents/newchem/disease.dm b/code/modules/reagents/newchem/disease.dm
new file mode 100644
index 00000000000..d89d61e3454
--- /dev/null
+++ b/code/modules/reagents/newchem/disease.dm
@@ -0,0 +1,14 @@
+/datum/reagent/spider_eggs
+ name = "spider eggs"
+ id = "spidereggs"
+ description = "A fine dust containing spider eggs. Oh gosh."
+ reagent_state = SOLID
+ color = "#FFFFFF"
+
+/datum/reagent/spider_eggs/on_mob_life(var/mob/living/M as mob)
+ if(!M) M = holder.my_atom
+ if(volume > 2.5)
+ if(iscarbon(M))
+ if(!M.get_int_organ(/obj/item/organ/internal/body_egg))
+ new/obj/item/organ/internal/body_egg/spider_eggs(M) //Yes, even Xenos can fall victim to the plague that is spider infestation.
+ ..()
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/glass/bottle.dm b/code/modules/reagents/reagent_containers/glass/bottle.dm
index 1e005b5c9ea..e550e2c1cd6 100644
--- a/code/modules/reagents/reagent_containers/glass/bottle.dm
+++ b/code/modules/reagents/reagent_containers/glass/bottle.dm
@@ -299,4 +299,4 @@
New()
..()
- reagents.add_reagent(pick("polonium","initropidril","concentrated_initro","pancuronium","sodium_thiopental","ketamine","sulfonal","amanitin","coniine","curare","sarin","histamine","venom","cyanide"), 40)
\ No newline at end of file
+ reagents.add_reagent(pick("polonium","initropidril","concentrated_initro","pancuronium","sodium_thiopental","ketamine","sulfonal","amanitin","coniine","curare","sarin","histamine","venom","cyanide","spidereggs"), 40)
\ No newline at end of file
diff --git a/code/modules/surgery/organs/parasites.dm b/code/modules/surgery/organs/parasites.dm
new file mode 100644
index 00000000000..89f94ba43fc
--- /dev/null
+++ b/code/modules/surgery/organs/parasites.dm
@@ -0,0 +1,35 @@
+/obj/item/organ/internal/body_egg/spider_eggs
+ name = "spider eggs"
+ icon = 'icons/effects/effects.dmi'
+ icon_state = "eggs"
+ var/stage = 1
+
+/obj/item/organ/internal/body_egg/spider_eggs/on_life()
+ if(stage < 5 && prob(3))
+ stage++
+
+ switch(stage)
+ if(2)
+ if(prob(3))
+ owner.reagents.add_reagent("histamine", 2)
+ if(3)
+ if(prob(5))
+ owner.reagents.add_reagent("histamine", 3)
+ if(4)
+ if(prob(12))
+ owner.reagents.add_reagent("histamine", 5)
+ if(5)
+ owner << "You feel like something is tearing its way out of your skin..."
+ owner.reagents.add_reagent("histamine", 10)
+ if(prob(30))
+ owner.emote("scream")
+ var/spiders = rand(3,5)
+ for(var/i in 1 to spiders)
+ new/obj/effect/spider/spiderling(get_turf(owner))
+ owner.visible_message("[owner] bursts open! Holy fuck!")
+ owner.gib()
+
+/obj/item/organ/internal/body_egg/spider_eggs/remove(var/mob/living/carbon/M, var/special = 0)
+ ..()
+ M.reagents.del_reagent("spidereggs") //purge all remaining spider eggs reagent if caught, in time.
+ qdel(src) //We don't want people re-implanting these for near instant gibbings.
\ No newline at end of file
diff --git a/paradise.dme b/paradise.dme
index 5aacb4a45d5..40e7c3fd099 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -1690,6 +1690,7 @@
#include "code\modules\reagents\reagent_dispenser.dm"
#include "code\modules\reagents\newchem\Blob-Reagents.dm"
#include "code\modules\reagents\newchem\chem_heater.dm"
+#include "code\modules\reagents\newchem\disease.dm"
#include "code\modules\reagents\newchem\drinks.dm"
#include "code\modules\reagents\newchem\drugs.dm"
#include "code\modules\reagents\newchem\food.dm"
@@ -1882,6 +1883,7 @@
#include "code\modules\surgery\organs\organ_internal.dm"
#include "code\modules\surgery\organs\organ_stump.dm"
#include "code\modules\surgery\organs\pain.dm"
+#include "code\modules\surgery\organs\parasites.dm"
#include "code\modules\surgery\organs\robolimbs.dm"
#include "code\modules\surgery\organs\skeleton.dm"
#include "code\modules\surgery\organs\wound.dm"