diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
index 9a48e07e6a5..d2c59bef246 100644
--- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm
+++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
@@ -661,4 +661,18 @@
var/mob/living/carbon/slime/S = new /mob/living/carbon/slime
S.colour = pick("grey","orange", "metal", "blue", "purple", "dark purple", "dark blue", "green", "silver", "yellow", "gold", "yellow", "red", "silver", "pink", "cerulean", "sepia", "bluespace", "pyrite", "light pink", "oil", "adamantine", "black")
S.forceMove(get_turf(holder.my_atom))
- S.visible_message("Infused with plasma, the core begins to quiver and grow, and soon a new baby slime emerges from it!")
\ No newline at end of file
+ S.visible_message("Infused with plasma, the core begins to quiver and grow, and soon a new baby slime emerges from it!")
+
+/datum/chemical_reaction/slime_transfer
+ name = "Transfer Potion"
+ id = "slimetransfer"
+ result = null
+ required_reagents = list("blood" = 1)
+ result_amount = 1
+ required_other = 1
+ required_container = /obj/item/slime_extract/rainbow
+
+/datum/chemical_reaction/slime_transfer/on_reaction(datum/reagents/holder)
+ feedback_add_details("slime_cores_used","[type]")
+ var/obj/item/slimepotion/transference/P = new /obj/item/slimepotion/transference
+ P.forceMove(get_turf(holder.my_atom))
diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm
index ab57eeefadb..e73c982d674 100644
--- a/code/modules/research/xenobiology/xenobiology.dm
+++ b/code/modules/research/xenobiology/xenobiology.dm
@@ -221,6 +221,48 @@
being_used = 0
..()
+/obj/item/slimepotion/transference
+ name = "consciousness transference potion"
+ desc = "A strange slime-based chemical that, when used, allows the user to transfer their consciousness to a lesser being."
+ icon = 'icons/obj/chemical.dmi'
+ icon_state = "bottle19"
+ origin_tech = "biotech=6"
+ var/prompted = FALSE
+ var/animal_type = SENTIENCE_ORGANIC
+
+/obj/item/slimepotion/transference/afterattack(mob/living/M, mob/user)
+ if(prompted || !ismob(M))
+ return
+ if(!isanimal(M) || M.ckey) //much like sentience, these will not work on something that is already player controlled
+ user << "[M] already has a higher consciousness!"
+ return ..()
+ if(M.stat)
+ user << "[M] is dead!"
+ return ..()
+ var/mob/living/simple_animal/SM = M
+ if(SM.sentience_type != animal_type)
+ to_chat(user, "You cannot transfer your consciousness to [SM].") //no controlling machines
+ return ..()
+ if(jobban_isbanned(user, ROLE_SENTIENT))
+ to_chat(user, "Your mind goes blank as you attempt to use the potion.")
+ return
+
+ prompted = TRUE
+ if(alert("This will permanently transfer your consciousness to [SM]. Are you sure you want to do this?",,"Yes","No")=="No")
+ prompted = FALSE
+ return
+
+ to_chat(user, "You drink the potion then place your hands on [SM]...")
+ user.mind.transfer_to(SM)
+ SM.universal_speak = 1
+ SM.faction = user.faction
+ SM.sentience_act() //Same deal here as with sentience
+ user.death()
+ to_chat(SM, "In a quick flash, you feel your consciousness flow into [SM]!")
+ to_chat(SM, "You are now [SM]. Your allegiances, alliances, and roles are still the same as they were prior to consciousness transfer!")
+ SM.name = "[SM.name] as [user.real_name]"
+ qdel(src)
+
/obj/item/slimepotion/steroid
name = "slime steroid"
desc = "A potent chemical mix that will cause a baby slime to generate more extract."