diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm
index d47543e0..48c87cae 100644
--- a/code/modules/flufftext/Hallucination.dm
+++ b/code/modules/flufftext/Hallucination.dm
@@ -21,7 +21,8 @@ GLOBAL_LIST_INIT(hallucination_list, list(
/datum/hallucination/delusion = 2,
/datum/hallucination/shock = 1,
/datum/hallucination/death = 1,
- /datum/hallucination/oh_yeah = 1
+ /datum/hallucination/oh_yeah = 1,
+ /datum/hallucination/sleeping_carp = 1
))
@@ -890,7 +891,7 @@ GLOBAL_LIST_INIT(hallucination_list, list(
SEND_SOUND(target, 'sound/ai/aimalf.ogg')
if("meteors") //Meteors inbound!
to_chat(target, "
Meteor Alert
")
- to_chat(target, "
Meteors have been detected on collision course with the station.
")
+ to_chat(target, "
Meteors have been detected on collision course with the station. Estimated time until impact: [round(rand(300,600)/60)] minutes.
")
SEND_SOUND(target, 'sound/ai/meteors.ogg')
if("supermatter")
SEND_SOUND(target, 'sound/magic/charge.ogg')
@@ -1311,3 +1312,26 @@ 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
+ for (var/mob/living/carbon/A in orange(C,1))
+ if (get_dist(C,A) < 2)
+ LAZYADD(mobsyup,A)
+ if (!LAZYLEN(mobsyup))
+ qdel(src)
+ return
+ var/mob/living/carbon/G = pick(mobsyup)
+ if (prob(50))
+ C.visible_message("[C] falls to the ground screaming and clutching [C.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)
+ else
+ to_chat(C,"[G] violently grabs you!")
+ qdel(src)