diff --git a/code/modules/surgery/organs/brain.dm b/code/modules/surgery/organs/brain.dm
index 9880d58bbba..daaffbc74a2 100644
--- a/code/modules/surgery/organs/brain.dm
+++ b/code/modules/surgery/organs/brain.dm
@@ -208,6 +208,7 @@
desc = "A tightly furled roll of paper, covered with indecipherable runes."
icon = 'icons/obj/wizard.dmi'
icon_state = "scroll"
+ requires_golem_person = TRUE
/obj/item/organ/internal/brain/cluwne
diff --git a/code/modules/surgery/organs/organ.dm b/code/modules/surgery/organs/organ.dm
index 4d2b13883ba..d3c8bf9ae31 100644
--- a/code/modules/surgery/organs/organ.dm
+++ b/code/modules/surgery/organs/organ.dm
@@ -32,7 +32,8 @@
var/requires_robotic_bodypart = FALSE
/// When this variable is true, it can only be installed on the machine person species.
var/requires_machine_person = FALSE
-
+ /// When this variable is true, it can only be inserted on the golem species.
+ var/requires_golem_person = FALSE
///Should this organ be destroyed on removal?
var/destroy_on_removal = FALSE
diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm
index c6184be772b..f703d85ab59 100644
--- a/code/modules/surgery/organs_internal.dm
+++ b/code/modules/surgery/organs_internal.dm
@@ -389,6 +389,10 @@
to_chat(user, "[I] is an organ that requires an IPC interface! [target]'s [parse_zone(target_zone)] does not have one.")
return SURGERY_BEGINSTEP_SKIP
+ if(I.requires_golem_person && !isgolem(target))
+ to_chat(user, "[I] requires a Golem body! [I] won't fit into [target]'s body.")
+ return SURGERY_BEGINSTEP_SKIP
+
if(target_zone != I.parent_organ || target.get_organ_slot(I.slot))
to_chat(user, "There is no room for [I] in [target]'s [parse_zone(target_zone)]!")
return SURGERY_BEGINSTEP_SKIP
@@ -428,6 +432,9 @@
if(I.requires_machine_person && !ismachineperson(target))
to_chat(user, "[I] requires an IPC interface!")
return SURGERY_STEP_INCOMPLETE
+ if(I.requires_golem_person && !isgolem(target))
+ to_chat(user, "[I] requires a Golem body! [I] won't fit into [target]'s body.")
+ return SURGERY_STEP_INCOMPLETE
if(!user.drop_item())
to_chat(user, "[I] is stuck to your hand, you can't put it in [target]!")
return SURGERY_STEP_INCOMPLETE