diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm
index b5f02b79d7..cf2c3ace61 100644
--- a/code/modules/flufftext/Hallucination.dm
+++ b/code/modules/flufftext/Hallucination.dm
@@ -1294,3 +1294,29 @@ GLOBAL_LIST_INIT(hallucination_list, list(
H.preparePixelProjectile(target, start)
H.fire()
qdel(src)
+
+/datum/hallucination/sleeping_carp
+
+/datum/hallucination/sleeping_carp/New(mob/living/carbon/C, forced = TRUE)
+ set waitfor = FALSE
+ ..()
+ var/list/mobsyup = list()
+ for (var/mob/living/carbon/A in orange(C,2))
+ if (get_dist(C,A) < 2 && C != A)
+ mobsyup += list(A)
+ if (mobsyup.len == 0)
+ qdel(src)
+ return
+ var/mob/living/carbon/G = pick(mobsyup)
+ if (rand(0,1))
+ C.visible_message("[C] falls to the ground screaming and clutching [G.p_their()] wrist!", \
+ "[G] grabs your wrist and violently wrenches it to the side!")
+ C.emote("scream")
+ C.dropItemToGround(C.get_active_held_item())
+ C.Knockdown(60)
+ qdel(src)
+ return
+ else
+ to_chat(C,"[G] violently grabs you!")
+ qdel(src)
+ return
\ No newline at end of file