diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm
index e99aae35027e..237d1b95345d 100644
--- a/code/__DEFINES/status_effects.dm
+++ b/code/__DEFINES/status_effects.dm
@@ -246,6 +246,11 @@
#define set_confusion(duration) set_timed_status_effect(duration, /datum/status_effect/confusion)
#define set_confusion_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/confusion, TRUE)
+#define adjust_red_eye(duration) adjust_timed_status_effect(duration, /datum/status_effect/red_eye)
+#define adjust_red_eye_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/red_eye, up_to)
+#define set_red_eye(duration) set_timed_status_effect(duration, /datum/status_effect/red_eye)
+#define set_red_eye_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/red_eye, TRUE)
+
#define adjust_drugginess(duration) adjust_timed_status_effect(duration, /datum/status_effect/drugginess)
#define adjust_drugginess_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/drugginess, up_to)
#define set_drugginess(duration) set_timed_status_effect(duration, /datum/status_effect/drugginess)
diff --git a/code/_onclick/hud/fullscreen.dm b/code/_onclick/hud/fullscreen.dm
index a4fe014aeff3..8e606d35cfee 100644
--- a/code/_onclick/hud/fullscreen.dm
+++ b/code/_onclick/hud/fullscreen.dm
@@ -211,6 +211,11 @@
blend_mode = BLEND_ADD
show_when_dead = TRUE
+/atom/movable/screen/fullscreen/red_eye
+ icon_state = "red_eye"
+ plane = FULLSCREEN_PLANE
+ layer = CURSE_LAYER
+
//Triggered by übercharge activation
/atom/movable/screen/fullscreen/uber
icon_state = "uberoverlay"
diff --git a/code/datums/mood_events/drug_events.dm b/code/datums/mood_events/drug_events.dm
index 47c10456c213..81596f1db134 100644
--- a/code/datums/mood_events/drug_events.dm
+++ b/code/datums/mood_events/drug_events.dm
@@ -2,6 +2,10 @@
mood_change = 6
description = "Woooow duudeeeeee...I'm tripping baaalls...\n"
+/datum/mood_event/red_eye
+ mood_change = 10
+ description = "Keep those eyes open...\n"
+
/datum/mood_event/smoked
description = "I have had a smoke recently.\n"
mood_change = 2
diff --git a/code/datums/status_effects/debuffs/red_eye.dm b/code/datums/status_effects/debuffs/red_eye.dm
new file mode 100644
index 000000000000..2ea1f249344e
--- /dev/null
+++ b/code/datums/status_effects/debuffs/red_eye.dm
@@ -0,0 +1,35 @@
+/// Red eye effect, makes your screen a swirling red
+/datum/status_effect/red_eye
+ id = "red_eye"
+ alert_type = /atom/movable/screen/alert/status_effect/red_eye
+ remove_on_fullheal = TRUE
+ examine_text = "Their eyes are bright red and bulging out their skull!"
+
+/datum/status_effect/red_eye/on_creation(mob/living/new_owner, duration = 10 SECONDS)
+ src.duration = duration
+ return ..()
+
+/datum/status_effect/red_eye/on_apply()
+ RegisterSignal(owner, COMSIG_LIVING_DEATH, PROC_REF(remove_red_eye))
+
+ SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, id, /datum/mood_event/high)
+ owner.overlay_fullscreen(id, /atom/movable/screen/fullscreen/red_eye)
+ return TRUE
+
+/datum/status_effect/red_eye/on_remove()
+ UnregisterSignal(owner, COMSIG_LIVING_DEATH)
+
+ SEND_SIGNAL(owner, COMSIG_CLEAR_MOOD_EVENT, id)
+ owner.clear_fullscreen(id)
+
+/// Removes all of our red_eye (self delete) on signal
+/datum/status_effect/red_eye/proc/remove_red_eye(datum/source, admin_revive)
+ SIGNAL_HANDLER
+
+ qdel(src)
+
+/atom/movable/screen/alert/status_effect/red_eye
+ name = "Red-Eye"
+ desc = "DRAKHARFR PLEGH-WE GALBARTOK USINAR"
+ icon = 'yogstation/icons/mob/screen_alert.dmi'
+ icon_state = "red_eye"
diff --git a/code/game/objects/items/stacks/telecrystal.dm b/code/game/objects/items/stacks/telecrystal.dm
index b8a237277130..c8d7cbdc8e33 100644
--- a/code/game/objects/items/stacks/telecrystal.dm
+++ b/code/game/objects/items/stacks/telecrystal.dm
@@ -7,6 +7,7 @@
w_class = WEIGHT_CLASS_TINY
max_amount = 50
item_flags = NOBLUDGEON
+ grind_results = list(/datum/reagent/redspace = 20)
/obj/item/stack/telecrystal/attack_self(mob/user)
if(!isliving(user))
@@ -23,7 +24,7 @@
new /obj/effect/particle_effect/sparks(loc)
playsound(loc, "sparks", 50, 1)
- if(!do_teleport(L, destination, asoundin = 'sound/effects/phasein.ogg', channel = TELEPORT_CHANNEL_BLUESPACE))
+ if(!do_teleport(L, destination, asoundin = 'sound/effects/phaseinred.ogg', channel = TELEPORT_CHANNEL_BLUESPACE))
L.visible_message(span_warning("[src] refuses to be crushed by [L]! There must be something interfering!"), span_danger("[src] suddenly hardens in your hand! There must be something interfering!"))
return
diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm
index 33b88da5fb29..5b25179cca7e 100644
--- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm
@@ -537,6 +537,120 @@
M.adjust_dizzy(4)
..()
+//traitor only drug made with telecrystals
+/datum/reagent/drug/red_eye
+ name = "Red-Eye" //i love cowboy bebop
+ description = "An experimental drug developed by the Syndicate in attempt to recreate wizards"
+ reagent_state = GAS
+ color = "#fd1a5e"
+ addiction_threshold = 20
+ overdose_threshold = 40
+ metabolization_rate = 1.5 * REAGENTS_METABOLISM
+ can_synth = FALSE
+
+//Teleport like normal telecrystals
+/datum/reagent/drug/red_eye/proc/tele_teleport(mob/living/L)
+ var/turf/destination = get_teleport_loc(L.loc, L, rand(3,6))
+ if(!istype(destination))
+ return
+ new /obj/effect/particle_effect/sparks(L.loc)
+ playsound(L.loc, "sparks", 50, 1)
+ if(!do_teleport(L, destination, asoundin = 'sound/effects/phaseinred.ogg', channel = TELEPORT_CHANNEL_BLUESPACE))
+ return
+ L.throw_at(get_edge_target_turf(L, L.dir), 1, 3, spin = FALSE, diagonals_first = TRUE)
+ if(iscarbon(L))
+ var/mob/living/carbon/C = L
+ C.adjust_disgust(15)
+
+/datum/reagent/drug/red_eye/on_mob_metabolize(mob/living/L)
+ L.next_move_modifier *= 0.8
+ L.action_speed_modifier *= 0.5
+ tele_teleport(L)
+ ..()
+
+/datum/reagent/drug/red_eye/on_mob_end_metabolize(mob/living/L)
+ L.next_move_modifier *= 1.25
+ L.action_speed_modifier *= 2
+ ..()
+
+/datum/reagent/drug/red_eye/on_mob_life(mob/living/carbon/M)
+ var/mob/living/carbon/human/H = M
+ H.eye_color = "fd1a5e"
+ H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK)
+ H.update_body()
+
+ M.adjust_red_eye_up_to(15,40)
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(0,1))
+ M.AdjustKnockdown(-15, FALSE)
+ M.adjustStaminaLoss(-4, 0)
+ M.AdjustUnconscious(-5, FALSE)
+ M.AdjustParalyzed(-20, FALSE)
+ M.adjust_jitter(2 SECONDS)
+ if(prob(10))
+ to_chat(M, span_notice("[pick("TOK-LYR RQA-NAP", "BAPR NTNVA", "ZL-YVTUG FUVARF", "MAH'WEYH PLEGGH AT E'NTRATH", "TARCOL MINTI ZHERI.", "G'OLT-ULOFT")]"))
+ if(prob(5))
+ M.visible_message(span_danger("[M]'s eyes start bulging out of [M.p_their()] skull!"))
+ if(prob(5))
+ M.emote(pick("twitch","drool","moan","giggle"))
+ if(prob(1))
+ tele_teleport(M)
+ ..()
+
+/datum/reagent/drug/red_eye/overdose_process(mob/living/M)
+ M.adjustToxLoss(2, 0)
+ if(isturf(M.loc) && !isspaceturf(M.loc) && prob(10))
+ if(M.mobility_flags & MOBILITY_MOVE)
+ step(M, pick(GLOB.cardinals))
+ if(prob(8))
+ M.visible_message(span_danger("[M]'s fingers curl into occult shapes!"))
+ M.drop_all_held_items()
+ if(prob(4))
+ M.adjustToxLoss(1, 0)
+ tele_teleport(M)
+ if(prob(1))
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(1,4))
+ M.adjustToxLoss(4, 0)
+ tele_teleport(M)
+ tele_teleport(M)
+ ..()
+/datum/reagent/drug/red_eye/addiction_act_stage1(mob/living/M)
+ M.adjust_jitter(5 SECONDS)
+ if(prob(20))
+ M.emote(pick("twitch","drool","moan","giggle"))
+ ..()
+
+/datum/reagent/drug/red_eye/addiction_act_stage2(mob/living/M)
+ M.adjust_jitter(10 SECONDS)
+ M.adjust_dizzy(10)
+ if(prob(30))
+ M.emote(pick("twitch","drool","moan","giggle"))
+ ..()
+
+/datum/reagent/drug/red_eye/addiction_act_stage3(mob/living/M)
+ if((M.mobility_flags & MOBILITY_MOVE) && !ismovable(M.loc))
+ for(var/i = 0, i < 4, i++)
+ step(M, pick(GLOB.cardinals))
+ M.adjust_jitter(12 SECONDS)
+ M.adjust_dizzy(12)
+ if(prob(40))
+ M.emote(pick("twitch","drool","moan","giggle"))
+ ..()
+
+/datum/reagent/drug/red_eye/addiction_act_stage4(mob/living/carbon/human/M)
+ if((M.mobility_flags & MOBILITY_MOVE) && !ismovable(M.loc))
+ for(var/i = 0, i < 8, i++)
+ step(M, pick(GLOB.cardinals))
+ M.adjust_jitter(15 SECONDS)
+ M.adjust_dizzy(15)
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(1,4))
+ M.adjustToxLoss(2, 0)
+ if(prob(50))
+ M.emote(pick("twitch","drool","moan","giggle"))
+ ..()
+ if(prob(10))
+ M.visible_message(span_danger("[M]'s fingers curl into occult shapes!"))
+ M.drop_all_held_items()
+ . = 1
/datum/reagent/drug/pumpup
name = "Pump-Up"
description = "Take on the world! A fast acting, hard hitting drug that pushes the limit on what you can handle."
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index 53420e2a99d2..78353e6cf8a2 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -1086,7 +1086,32 @@
/mob/living/proc/bluespace_shuffle()
do_teleport(src, get_turf(src), 5, asoundin = 'sound/effects/phasein.ogg', channel = TELEPORT_CHANNEL_BLUESPACE)
-
+
+//Gateway to traitor chemistry, want a drug to be traitor only? use this
+/datum/reagent/redspace
+ name = "Redspace Dust"
+ description = "A sinister looking dust composed of grinded Syndicate telecrystals, the red colouration a result of impurities within their manufacturing process."
+ reagent_state = SOLID
+ color = "#db0735"
+ taste_description = "bitter evil"
+ process_flags = ORGANIC | SYNTHETIC
+ metabolization_rate = 0.2 * REAGENTS_METABOLISM
+ can_synth = FALSE
+
+//Teleport like normal telecrystals
+/datum/reagent/redspace/on_mob_metabolize(mob/living/L)
+ var/turf/destination = get_teleport_loc(L.loc, L, rand(3,6))
+ if(!istype(destination))
+ return
+ new /obj/effect/particle_effect/sparks(L.loc)
+ playsound(L.loc, "sparks", 50, 1)
+ if(!do_teleport(L, destination, asoundin = 'sound/effects/phaseinred.ogg', channel = TELEPORT_CHANNEL_BLUESPACE))
+ return
+ L.throw_at(get_edge_target_turf(L, L.dir), 1, 3, spin = FALSE, diagonals_first = TRUE)
+ if(iscarbon(L))
+ var/mob/living/carbon/C = L
+ C.adjust_disgust(15)
+
/datum/reagent/aluminium
name = "Aluminium"
description = "A silvery white and ductile member of the boron group of chemical elements."
diff --git a/code/modules/reagents/chemistry/recipes/drugs.dm b/code/modules/reagents/chemistry/recipes/drugs.dm
index 2a163a443f2e..2c08b65e957d 100644
--- a/code/modules/reagents/chemistry/recipes/drugs.dm
+++ b/code/modules/reagents/chemistry/recipes/drugs.dm
@@ -63,6 +63,12 @@
required_reagents = list(/datum/reagent/nitrous_oxide = 2, /datum/reagent/medicine/epinephrine = 1, /datum/reagent/consumable/ethanol = 1)
required_catalysts = list(/datum/reagent/toxin/plasma = 5)
+/datum/chemical_reaction/red_eye
+ name = "Red-Eye"
+ id = /datum/reagent/drug/red_eye
+ results = list(/datum/reagent/drug/red_eye = 4) //1tc = 40u of red_eye
+ required_reagents = list(/datum/reagent/medicine/diphenhydramine = 1, /datum/reagent/redspace = 2, /datum/reagent/iodine = 1, /datum/reagent/hydrogen = 1, /datum/reagent/consumable/sugar = 1)
+
/datum/chemical_reaction/pumpup
name = "Pump-Up"
id = /datum/reagent/drug/pumpup
diff --git a/icons/mob/screen_full.dmi b/icons/mob/screen_full.dmi
index 6f8d61ecccd2..d3108d9e8be5 100644
Binary files a/icons/mob/screen_full.dmi and b/icons/mob/screen_full.dmi differ
diff --git a/sound/effects/phaseinred.ogg b/sound/effects/phaseinred.ogg
new file mode 100644
index 000000000000..215b0ffcd56e
Binary files /dev/null and b/sound/effects/phaseinred.ogg differ
diff --git a/yogstation.dme b/yogstation.dme
index 1a68c4ca7599..a07c8621e44f 100644
--- a/yogstation.dme
+++ b/yogstation.dme
@@ -731,6 +731,7 @@
#include "code\datums\status_effects\debuffs\hallucination.dm"
#include "code\datums\status_effects\debuffs\jitteriness.dm"
#include "code\datums\status_effects\debuffs\knuckleroot.dm"
+#include "code\datums\status_effects\debuffs\red_eye.dm"
#include "code\datums\status_effects\debuffs\speech_debuffs.dm"
#include "code\datums\traits\_quirk.dm"
#include "code\datums\traits\good.dm"
diff --git a/yogstation/icons/mob/screen_alert.dmi b/yogstation/icons/mob/screen_alert.dmi
index e9b484b95c42..b32a257b272f 100644
Binary files a/yogstation/icons/mob/screen_alert.dmi and b/yogstation/icons/mob/screen_alert.dmi differ