diff --git a/code/modules/client/preference_setup/traits/trait_defines.dm b/code/modules/client/preference_setup/traits/trait_defines.dm
index 68941e49c8..71227c1d23 100644
--- a/code/modules/client/preference_setup/traits/trait_defines.dm
+++ b/code/modules/client/preference_setup/traits/trait_defines.dm
@@ -189,6 +189,11 @@
desc = "Slimes are quite dangerous, but just the aspect of something being slimey is uncomfortable."
modifier_type = /datum/modifier/trait/phobia/blennophobe
+/datum/trait/modifier/mental/trypanophobe
+ name = "Trypanophobia"
+ desc = "Syringes and needles make you very distressed. You really don't want to get sick..."
+ modifier_type = /datum/modifier/trait/phobia/trypanophobe
+
/*
// Uncomment this when/if these get finished.
/datum/trait/modifier/mental/synthphobe
diff --git a/code/modules/mob/_modifiers/traits_phobias.dm b/code/modules/mob/_modifiers/traits_phobias.dm
index eee514535c..89fbb4553b 100644
--- a/code/modules/mob/_modifiers/traits_phobias.dm
+++ b/code/modules/mob/_modifiers/traits_phobias.dm
@@ -441,6 +441,96 @@
return
return fear_amount
+/datum/modifier/trait/phobia/trypanophobe
+ name = "trypanophobia"
+ desc = "Syringes and needles make you very distressed. You really don't want to get sick..."
+ fear_decay_rate = 100
+
+ on_created_text = "You are terrified by needles."
+ on_expired_text = "You feel better about being near needles.."
+
+
+ zero_fear_up = list(
+ "That's a needle!",
+ "There's a needle right there!"
+ )
+ zero_fear_down = list(
+ "The needle is gone, no need to worry.",
+ "No more needle."
+ )
+
+ half_fear_up = list(
+ "The needle could get you at any time!",
+ "The needle is still there!"
+ )
+ half_fear_down = list(
+ "There are no more needles... right?",
+ "You don't see any more needles... But you can never be sure."
+ )
+
+ full_fear_up = list(
+ "The needles are going to pierce you!",
+ "They could get you any second!"
+ )
+ full_fear_down = list(
+ "There are more needles around, you can feel it...",
+ "No more needles, please..."
+ )
+
+/datum/modifier/trait/phobia/trypanophobe/should_fear()
+ if(holder.blinded)
+ return 0 //Cannot feareth what cannot beest seen
+
+ var/fear_amount = 0
+
+ for(var/atom/thing in view(5, holder)) // See haemophobia for why this is 5.
+
+ if(istype(thing, /obj/item/weapon/reagent_containers/syringe))
+ fear_amount += 4
+
+ if(istype(thing, /obj/machinery/iv_drip))
+ var/obj/machinery/iv_drip/I = thing
+ if(I.beaker)
+ fear_amount += 8
+ else
+ fear_amount += 6
+
+ if(istype(thing, /obj/item/weapon/reagent_containers/hypospray))
+ fear_amount += 2 //Needle doesn't look as intimidating.
+
+ if(istype(thing, /obj/item/weapon/reagent_containers/hypospray/autoinjector)) //Don't know if I need to define autoinjectors too. Meh.
+ fear_amount += 3
+
+ if(istype(thing, /obj/item/rig_module/chem_dispenser))
+ fear_amount += 5
+
+ if(istype(thing, /obj/item/weapon/storage/box/syringes))
+ fear_amount += 2
+
+ if(istype(thing, /obj/item/mecha_parts/mecha_equipment/tool/syringe_gun))
+ fear_amount += 8 //Syringe gun for a big ass mech.
+
+ if(istype(thing, /obj/machinery/sleep_console)) //Sleepers got them needles in them.
+ fear_amount += 4
+
+ if(istype(thing, /obj/item/weapon/implanter))
+ fear_amount += 8 //Very big needle.
+
+ if(istype(thing, /obj/item/weapon/gun/launcher/syringe))
+ fear_amount += 6
+
+ if(istype(thing, /mob/living/carbon/human))
+ var/mob/living/carbon/human/H = thing
+ if(H.l_hand && istype(H.l_hand, /obj/item/weapon/reagent_containers/syringe) || H.r_hand && istype(H.r_hand, /obj/item/weapon/reagent_containers/syringe))
+ fear_amount += 10
+
+ if(H.l_ear && istype(H.l_ear, /obj/item/weapon/reagent_containers/syringe) || H.r_ear && istype(H.r_ear, /obj/item/weapon/reagent_containers/syringe))
+ fear_amount +=10
+
+
+ return fear_amount
+
+
// Note for the below 'phobias' are of the xeno-phobic variety, and are less centered on pure fear as above, and more on a mix of distrust, fear, and disdainfulness.
// As such, they are mechanically different than the fear-based phobias, in that instead of a buildup of fearful messages, it does intermittent messages specific to what holder sees.