diff --git a/code/datums/brain_damage/special_ed.dm b/code/datums/brain_damage/special_ed.dm
index 66f9f31f102..a031c23de97 100644
--- a/code/datums/brain_damage/special_ed.dm
+++ b/code/datums/brain_damage/special_ed.dm
@@ -90,4 +90,95 @@
new /obj/effect/overlay/temp/bluespace_fissure(get_turf(linked_to))
user.forceMove(get_turf(linked_to))
user.visible_message("[user] [slip_in_message].", ignored_mob = user)
- user.visible_message("[user] [slip_out_message].", "...and find your way to the other side.")
\ No newline at end of file
+ user.visible_message("[user] [slip_out_message].", "...and find your way to the other side.")
+
+/datum/brain_trauma/special/love
+ name = "Hyper-dependency"
+ desc = "Patient feels lovesick and is emotionally dependent to a specific person."
+ scan_desc = "severe dependency"
+ gain_text = ""
+ lose_text = "You feel love leave your heart."
+ var/stress = 0
+ var/datum/weakref/beloved = null
+ cure_type = CURE_HYPNOSIS
+
+/datum/brain_trauma/special/love/on_gain()
+ ..()
+ for(var/mob/living/L in view(7,owner))
+ if(L != owner)
+ beloved = L
+ break
+ if(beloved)
+ to_chat(owner, "You can't help but love [beloved]. You can't bear to be apart from them, and would do anything they say.")
+
+ else
+ to_chat(owner, "You feel a brief burst of passion, but it quickly fades.")
+ qdel()
+
+/datum/brain_trauma/special/love/on_life()
+ ..()
+ if(check_alone())
+ stress = min(stress + 0.5, 100)
+ if(stress > 10 && (prob(10)))
+ stress_reaction()
+ else
+ stress = max(0, stress - 4)
+ if(prob(5) && stress > 0)
+ var/mushy = pick("You feel so good when [beloved] is with you.","You can't believe you ever lived without [beloved].","You'd do anything for [beloved].","[beloved] makes everything better.","You can never let [beloved] leave again.")
+ to_chat(owner, "[mushy]")
+
+/datum/brain_trauma/special/love/proc/check_alone()
+ if(owner.disabilities & BLIND)
+ return TRUE
+
+ for(var/mob/living/L in view(owner, 7))
+ if(L == beloved)
+ return FALSE
+
+ return TRUE
+
+/datum/brain_trauma/special/love/proc/stress_reaction()
+ if(owner.stat != CONSCIOUS)
+ return
+
+ var/high_stress = (stress > 60) //things get psychosomatic from here on
+ switch(rand(1,6))
+ if(1)
+ if(!high_stress)
+ to_chat(owner, "You feel sick...")
+ else
+ to_chat(owner, "You feel really sick at the thought of being seperated from [beloved]!")
+ addtimer(CALLBACK(owner, /mob/living/carbon.proc/vomit, high_stress), 50) //blood vomit if high stress
+ if(2)
+ if(!high_stress)
+ to_chat(owner, "You can't stop shaking...")
+ owner.dizziness += 20
+ owner.confused += 20
+ owner.Jitter(20)
+ else
+ to_chat(owner, "You feel weak and scared! If only [beloved] was here!")
+ owner.dizziness += 20
+ owner.confused += 20
+ owner.Jitter(20)
+ owner.adjustHalLoss(50)
+
+ if(3, 4)
+ if(!high_stress)
+ to_chat(owner, "You feel really lonely without [beloved]...")
+ else
+ to_chat(owner, "You're going mad with loneliness! You need [beloved]!")
+ owner.hallucination += 20
+
+ if(5)
+ if(!high_stress)
+ to_chat(owner, "Your heart skips a beat. Oh, [beloved]!")
+ owner.adjustOxyLoss(8)
+ else
+ if(prob(15) && ishuman(owner))
+ var/mob/living/carbon/human/H = owner
+ var/obj/item/organ/heart/heart = H.internal_organs_by_name["heart"]
+ heart.take_damage(heart.min_bruised_damage)
+ to_chat(H, "You feel a stabbing pain in your heart!")
+ else
+ to_chat(owner, "You feel your heart lurching in your chest... Oh, [beloved]!")
+ owner.adjustOxyLoss(8)
\ No newline at end of file
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm
index b64a5f0cd6b..fd229d16521 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm
@@ -531,4 +531,89 @@
id = "philosopher_stone"
description = "A mythical compound, rumored to be the catalyst of fantastic reactions."
color = "#f4c430"
- taste_description = "heavenly knowledge"
\ No newline at end of file
+ taste_description = "heavenly knowledge"
+
+/datum/reagent/sglue
+ name = "Sovereign Glue"
+ id = "sglue"
+ description = "A very potent adhesive which can be applied to inanimate surfaces."
+ reagent_state = LIQUID
+ color = "#EDE8E2"
+ taste_description = "horses"
+
+/datum/reagent/sglue/touch_obj(var/obj/O)
+ if((istype(O, /obj/item) && !istype(O, /obj/item/weapon/reagent_containers)) && (volume > 10*O.w_class))
+ var/obj/item/I = O
+ I.canremove = 0
+ I.desc += " It appears to glisten with some gluey substance."
+ remove_self(10*I.w_class)
+ I.visible_message("[I] begins to glisten with some gluey substance.")
+
+/datum/reagent/usolve
+ name = "Universal Solvent"
+ id = "usolve"
+ description = "A very potent solvent which can be applied to inanimate surfaces."
+ reagent_state = LIQUID
+ color = "#EDE8E2"
+ taste_description = "alcohol"
+
+/datum/reagent/usolve/touch_obj(var/obj/O)
+ if((istype(O, /obj/item) && !istype(O, /obj/item/weapon/reagent_containers)) && (volume > 10*O.w_class))
+ var/obj/item/I = O
+ I.canremove = initial(I.canremove)
+ I.desc = initial(I.desc)
+ I.visible_message("A thin shell of glue cracks off of [I].")
+ remove_self(10*I.w_class)
+
+/datum/reagent/shapesand
+ name = "Shapesand"
+ id = "shapesand"
+ description = "A strangely animate clump of sand which can shift its color and consistency."
+ reagent_state = SOLID
+ color = "#c2b280"
+ taste_description = "sand"
+
+/datum/reagent/shapesand/touch_obj(var/obj/O)
+ if((istype(O, /obj/item) && !istype(O, /obj/item/weapon/reagent_containers)) && (volume > 10*O.w_class))
+ var/obj/item/shapesand/mimic = new /obj/item/shapesand(O.loc)
+ mimic.name = O.name
+ mimic.desc = O.desc
+ mimic.icon = O.icon
+ mimic.icon_state = O.icon_state
+ mimic.item_state = O.item_state
+ mimic.overlays = O.overlays
+ remove_self(10*O.w_class)
+ mimic.visible_message("The sand forms into an exact duplicate of [O].")
+
+/obj/item/shapesand
+ name = "shapesand"
+ desc = "A strangely animate clump of sand which can shift its color and consistency."
+ icon = 'icons/obj/mining.dmi'
+ w_class = 1.0
+ icon_state = "ore_glass"
+
+/obj/item/shapesand/attack() //can't be used to actually bludgeon things
+ return 1
+
+/obj/item/shapesand/afterattack(atom/A, mob/living/user)
+ user << "As you attempt to use the [src], it crumbles into inert sand!"
+ new /obj/item/weapon/ore/glass(get_turf(src))
+ qdel(src)
+ return
+
+/datum/reagent/love_potion
+ name = "Philter of Love"
+ id = "love"
+ description = "A sickly sweet compound that induces chemical dependency on the first person the subject sees."
+ reagent_state = LIQUID
+ color = "#ff69b4"
+ taste_description = "sickly sweet candy"
+
+/datum/reagent/love_potion/affect_blood(var/mob/living/carbon/human/H, var/alien, var/removed)
+
+ if(!istype(H))
+ return
+
+ var/obj/item/organ/brain/B = H.internal_organs_by_name["brain"]
+ if(!H.has_trauma_type(/datum/brain_trauma/special/love))
+ B.gain_trauma(/datum/brain_trauma/special/love,FALSE)
\ No newline at end of file
diff --git a/html/changelogs/lordfowl-chems.yml b/html/changelogs/lordfowl-chems.yml
new file mode 100644
index 00000000000..75e33b2ae51
--- /dev/null
+++ b/html/changelogs/lordfowl-chems.yml
@@ -0,0 +1,5 @@
+author: LordFowl
+delete-after: True
+
+changes:
+ - rscadd: "Adds a new mental disability - Love."