diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm
index c5980d7b1114..e1ac1cce126d 100644
--- a/code/_globalvars/lists/flavor_misc.dm
+++ b/code/_globalvars/lists/flavor_misc.dm
@@ -322,7 +322,7 @@ GLOBAL_LIST_INIT(wisdoms, world.file2list("strings/wisdoms.txt"))
//LANGUAGE CHARACTER CUSTOMIZATION
GLOBAL_LIST_INIT(speech_verbs, list("default","says","gibbers", "states", "chitters", "chimpers", "declares", "bellows", "buzzes" ,"beeps", "chirps", "clicks", "hisses" ,"poofs" , "puffs", "rattles", "mewls" ,"barks", "blorbles", "squeaks", "squawks", "flutters", "warbles", "caws", "gekkers", "clucks","mumbles","crackles"))
-GLOBAL_LIST_INIT(roundstart_tongues, list("default","human tongue" = /obj/item/organ/tongue, "lizard tongue" = /obj/item/organ/tongue/lizard, "skeleton tongue" = /obj/item/organ/tongue/bone, "fly tongue" = /obj/item/organ/tongue/fly, "ipc tongue" = /obj/item/organ/tongue/robot/ipc, "xeno tongue" = /obj/item/organ/tongue/alien/hybrid))
+GLOBAL_LIST_INIT(roundstart_tongues, list("default","human tongue" = /obj/item/organ/tongue, "lizard tongue" = /obj/item/organ/tongue/lizard, "skeleton tongue" = /obj/item/organ/tongue/bone, "fly tongue" = /obj/item/organ/tongue/fly, "ipc tongue" = /obj/item/organ/tongue/robot/ipc, "xeno tongue" = /obj/item/organ/tongue/hybrid))
//SPECIES BODYPART LISTS
//locked parts are those that your picked species requires to have
diff --git a/code/datums/diseases/brainrot.dm b/code/datums/diseases/brainrot.dm
index 57628efe3627..b227b3d86369 100644
--- a/code/datums/diseases/brainrot.dm
+++ b/code/datums/diseases/brainrot.dm
@@ -14,7 +14,6 @@
/datum/disease/brainrot/stage_act() //Removed toxloss because damaging diseases are pretty horrible. Last round it killed the entire station because the cure didn't work -- Urist -ACTUALLY Removed rather than commented out, I don't see it returning - RR
..()
-
switch(stage)
if(2)
if(prob(2))
diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm
index 1ec80d8f13e5..c669427fc5b1 100644
--- a/code/modules/surgery/organs/tongue.dm
+++ b/code/modules/surgery/organs/tongue.dm
@@ -166,12 +166,31 @@
. = ..()
languages_possible = languages_possible_alien
-/obj/item/organ/tongue/alien/hybrid
+/obj/item/organ/tongue/hybrid
name = "xenohybrid tongue"
-
-/obj/item/organ/tongue/alien/hybrid/Initialize(mapload)
+ desc = "According to leading xenobiologists the evolutionary benefit of having a second mouth in your mouth is \"that it looks badass\"."
+ icon_state = "tonguexeno"
+ say_mod = "hisses"
+ taste_sensitivity = 10 // LIZARDS ARE ALIENS CONFIRMED (OLD CODEEEE!!!)
+ maxHealth = 500 //They've a little mouth for a tongue, so it's pretty robust
+ var/static/list/languages_possible_hybrid = typecacheof(list(
+ /datum/language/xenocommon,
+ /datum/language/common,
+ /datum/language/draconic,
+ /datum/language/ratvar,
+ /datum/language/monkey,
+ /datum/language/aphasia,
+ /datum/language/slime,
+ /datum/language/vampiric,
+ /datum/language/dwarf,
+ /datum/language/signlanguage,
+ /datum/language/modular_sand/solcommon, //Skyrat change - sol common blah blah
+ /datum/language/modular_sand/technorussian, //Skyrat change - russian stereotype language))
+ /datum/language/codespeak
+ ))
+/obj/item/organ/tongue/hybrid/Initialize(mapload)
. = ..()
- languages_possible = languages_possible_base
+ languages_possible = languages_possible_hybrid
/obj/item/organ/tongue/bone
name = "bone \"tongue\""
diff --git a/modular_splurt/code/datums/diseases/suddennyanificationsyndrome.dm b/modular_splurt/code/datums/diseases/suddennyanificationsyndrome.dm
new file mode 100644
index 000000000000..8b2fc83e9385
--- /dev/null
+++ b/modular_splurt/code/datums/diseases/suddennyanificationsyndrome.dm
@@ -0,0 +1,100 @@
+/datum/disease/sns
+ name = "Sudden Nyanification Syndrome (SNS)"
+ max_stages = 4
+ spread_text = "Airborne, Skin & Fluid Contact"
+ spread_flags = DISEASE_SPREAD_AIRBORNE | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS | DISEASE_SPREAD_BLOOD
+ cure_text = "WARNING: DATABASE HACK DETECTED! She dances above and guides the waves, he sweetens your tongue and brightens your day. Only their marriage will lift this curse!" //It's moonsugar, Meow - Lucky >:3
+ cures = list(/datum/reagent/moonsugar) //If I was any more sadistic I woulda made the cure felinid mutation toxin >:3 - Lucky
+ cure_chance = 16
+ agent = "Genomophage UWU-13"
+ viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey, /mob/living/carbon/alien)
+ infectivity = 70
+ permeability_mod = 0.8
+ stage_prob = 3
+ desc = "If left untreated the subject will develop feline attributes and a strong urge to consume milk. Highly infectious, Ensure an SAD is constructed to treat victims."
+ severity = DISEASE_SEVERITY_MEDIUM
+ var/nyanification = 0
+
+/datum/disease/sns/stage_act()
+ ..()
+ switch(stage)
+ if(1)
+ if(prob(20))
+ to_chat(affected_mob, "" + pick(
+ "You feel extra silly today.",
+ "You can't stop thinking about milk.",
+ "You'd like to take a long nap.",
+ "Mmmmm, fish.") + "")
+
+ if(2)
+ if(prob(30))
+ to_chat(affected_mob, "" + pick(
+ "Your ears feel oddly sensitive.",
+ "You have an overwhelming urge to chase a laser pointer.",
+ "You'd like to take a long nap in a sunny window.",
+ "Hmm, maybe you deserve more.") + "")
+
+ if(3)
+ if(prob(16))
+ affected_mob.Stun(9)
+ playsound(get_turf(affected_mob), 'sound/effects/splat.ogg', 20, TRUE)
+ affected_mob.emote("cough")
+ affected_mob.visible_message("[affected_mob] hacks up a hairball!")
+ new /obj/item/toy/plush/hairball(affected_mob.loc)
+ to_chat(affected_mob, "" + pick(
+ "You hack up a hairball! Gross.",
+ "You cough up a hairball! Icky.",
+ "You spit up a hairball! Eugh.") + "")
+
+ if(4)
+ if(prob(30) && nyanification == 0)
+ if(affected_mob.dna.species.id == SPECIES_FELINID)
+ nyanification = 1
+ else
+ affected_mob.emote("mrrp")
+ to_chat(affected_mob, "" + pick(
+ "You feel purrrfect.",
+ "You've become a god.",
+ "You're the most important person on this station.",
+ "You should annoy CC.") + "")
+ nyanify(affected_mob)
+ affected_mob.visible_message("[affected_mob] suddenly grows feline traits!")
+ nyanification = 1
+ else if (prob(12))
+ affected_mob.emote("meow")
+ to_chat(affected_mob, "" + pick(
+ "You feel purrrfect.",
+ "You've become a god.",
+ "You're the most important person on this station.",
+ "You should annoy CC.") + "")
+ return
+
+/proc/nyanify(mob/living/carbon/human/L)
+ //Ears
+ if(L.getorgan(/obj/item/organ/ears))
+ var/obj/item/organ/ears/ears = L.getorgan(/obj/item/organ/ears)
+ ears.Remove(L)
+
+ var/obj/item/organ/ears/cat/newears = new
+ newears.Insert(L)
+
+ //Tail
+ if(L.getorgan(/obj/item/organ/tail))
+ var/obj/item/organ/tail/tail = L.getorgan(/obj/item/organ/tail)
+ tail.Remove(L)
+
+ var/obj/item/organ/tail/cat/newtail = new
+ newtail.Insert(L)
+
+ //Tongue
+ if(L.getorgan(/obj/item/organ/tongue))
+ var/obj/item/organ/tongue/tongue = L.getorgan(/obj/item/organ/tongue)
+ tongue.Remove(L)
+
+ var/obj/item/organ/tongue/fluffy/newtongue = new
+ newtongue.Insert(L)
+
+/obj/item/reagent_containers/glass/bottle/sns
+ name = "SNS culture bottle"
+ desc = "A small bottle. Contains genomophage UWU-13 culture in synthblood medium."
+ spawned_disease = /datum/disease/sns
diff --git a/modular_splurt/code/game/objects/items/devices/scanners.dm b/modular_splurt/code/game/objects/items/devices/scanners.dm
new file mode 100644
index 000000000000..645a62849568
--- /dev/null
+++ b/modular_splurt/code/game/objects/items/devices/scanners.dm
@@ -0,0 +1,48 @@
+/obj/item/memoryscanner
+ name = "handheld memory scanner"
+ icon = 'modular_splurt/icons/obj/device.dmi'
+ icon_state = "memoryscanner"
+ item_state = "inducer-sci"
+ lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
+ desc = "A hand-held mind scanner able to penetrate the surface mind of a target."
+ flags_1 = CONDUCT_1
+ item_flags = NOBLUDGEON
+ slot_flags = ITEM_SLOT_BELT
+ throwforce = 3
+ w_class = WEIGHT_CLASS_TINY
+ throw_speed = 3
+ throw_range = 7
+ custom_materials = list(/datum/material/iron=400, /datum/material/plasma=180)
+
+/obj/item/memoryscanner/Initialize(mapload)
+ . = ..()
+ register_item_context()
+
+/obj/item/memoryscanner/suicide_act(mob/living/carbon/user)
+ user.visible_message("[user] begins to wipe [user.p_their()] mind with the [src]!")
+ return OXYLOSS
+
+/obj/item/memoryscanner/attack(mob/living/M, mob/living/carbon/human/user)
+ if (HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50))
+ memory_scan(user, user)
+ to_chat(user, "Uh... how does this doohickey work?!")
+ user.visible_message("[user] clumsily zaps his head with the [src]!")
+ var/obj/item/organ/brain/E
+ E = user.getorganslot(ORGAN_SLOT_BRAIN)
+ E.applyOrganDamage(15)
+ else
+ user.visible_message("[user] is trying to scan [M]'s mind with the [src]!")
+ if (do_mob(user, M, 15))
+ user.visible_message("[user] scans [M]'s mind with the [src]!")
+ memory_scan(user, M)
+
+proc/memory_scan(mob/user, mob/living/T)
+ var/msg = "Analyzing results for [T]'s memory."
+ if (!isliving(T) || !T.mind)
+ msg += "\n[T]'s mind is non-compliant! Scan failed."
+ return
+ else
+ msg += "\nMemory scan complete. \n Mind Contents: \n [T.mind] \n [T.mind.show_memory()] \n "
+ to_chat(user, examine_block(msg))
+ return
diff --git a/modular_splurt/code/game/splurt_posters.dm b/modular_splurt/code/game/splurt_posters.dm
new file mode 100644
index 000000000000..b8d189397bbf
--- /dev/null
+++ b/modular_splurt/code/game/splurt_posters.dm
@@ -0,0 +1,26 @@
+// Modularize posters icon source
+
+// /obj/structure/sign/poster/official/splurt
+// icon = 'modular_splurt/icons/obj/contraband.dmi'
+// /obj/structure/sign/poster/official/splurt
+// icon = 'modular_splurt/icons/obj/contraband.dmi'
+
+// Lucky's Posters
+
+/obj/structure/sign/poster/official/splurt/hanginthere
+ name = "Hang in there, Wagie!"
+ desc = "This inspirational poster bears an image of a cat dangling from a brach with text reading \"Hang in there, Wagie!\". Depressing."
+ icon = 'modular_splurt/icons/obj/contraband.dmi'
+ icon_state = "poster_hanginthere"
+
+/obj/structure/sign/poster/contraband/splurt/luckywanted
+ name = "Faded wanted poster"
+ desc = "this old wanted poster warns of a dubiously lucky individual."
+ icon = 'modular_splurt/icons/obj/contraband.dmi'
+ icon_state = "poster_luckywanted"
+
+/obj/structure/sign/poster/contraband/splurt/puro
+ name = "Questionably drawn poster"
+ desc = "A large sheet of paper sporadically drawn upon in sharpie. It smells strongly of rubber."
+ icon = 'modular_splurt/icons/obj/contraband.dmi'
+ icon_state = "poster_puro"
diff --git a/modular_splurt/code/modules/clothing/head/misc.dm b/modular_splurt/code/modules/clothing/head/misc.dm
index f1e2523eeabc..d6b3cbd2fea6 100644
--- a/modular_splurt/code/modules/clothing/head/misc.dm
+++ b/modular_splurt/code/modules/clothing/head/misc.dm
@@ -133,3 +133,11 @@
item_state = "hoodcowl"
flags_inv = HIDEHAIR
dynamic_hair_suffix = ""
+
+/obj/item/clothing/head/outragecowhat
+ name = "Outrageous Cowboy Hat"
+ desc = "A stupidly long cowboy hat, makes you want to s-stutter."
+ icon = 'modular_splurt/icons/obj/clothing/head.dmi'
+ mob_overlay_icon = 'modular_splurt/icons/mob/clothing/bighats.dmi'
+ icon_state = "outragecowhat"
+ item_state = "outragecowhat"
diff --git a/modular_splurt/code/modules/events/sns_outbreak.dm b/modular_splurt/code/modules/events/sns_outbreak.dm
new file mode 100644
index 000000000000..45f7a22d52eb
--- /dev/null
+++ b/modular_splurt/code/modules/events/sns_outbreak.dm
@@ -0,0 +1,39 @@
+/datum/round_event_control/sns_outbreak
+ name = "Sudden Nyanification Syndrome Outbreak"
+ typepath = /datum/round_event/disease_outbreak
+ max_occurrences = 1
+ min_players = 3
+ weight = 2
+ category = EVENT_CATEGORY_HEALTH
+ description = "Sudden Nyanification Syndrome will infect some crewmembers."
+
+/datum/round_event/disease_outbreak
+ announce_when = 15
+
+/datum/round_event_control/disease_outbreak/canSpawnEvent(var/players_amt, var/gamemode)
+ if(!..()) return FALSE
+ var/list/enemy_roles = list("Medical Doctor","Chief Medical Officer","Paramedic","AI","Chemist","Virologist","Captain","Head of Personnel", "Geneticist")
+ for (var/mob/M in GLOB.alive_mob_list)
+ if(M.stat != DEAD && (M.mind?.assigned_role in enemy_roles))
+ return TRUE
+ return FALSE
+
+/datum/round_event/disease_outbreak/announce(fake)
+ priority_announce("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak...... Meow.", "Biohazard Alert", "outbreak7")
+
+/datum/round_event/disease_outbreak/setup()
+ announce_when = rand(15, 30)
+
+/datum/round_event/disease_outbreak/start()
+ var/infectees = 0
+ var/desiredinfectees = rand(1, 3)
+
+ for(var/mob/living/carbon/human/H in shuffle(GLOB.alive_mob_list) || infectees < desiredinfectees)
+ var/turf/T = get_turf(H)
+ if(!T || !is_station_level(T.z) || !H.client || !HAS_TRAIT(H,TRAIT_EXEMPT_HEALTH_EVENTS) || H.stat != DEAD || !HAS_TRAIT(H, TRAIT_VIRUSIMMUNE) || prob(20))
+ var/datum/disease/D = new /datum/disease/sns(TRUE) // Move the disease creation inside the if block
+ H.ForceContractDisease(D, FALSE, TRUE)
+ infectees++
+ else
+ message_admins("An event has triggered a sns outbreak on [ADMIN_LOOKUPFLW(H)]! Lucky says hi!")
+ log_game("An event has triggered a sns outbreak on [key_name(H)]! Lucky says hi!")
diff --git a/modular_splurt/code/modules/mob/living/emotes.dm b/modular_splurt/code/modules/mob/living/emotes.dm
index f95fbe3e9b62..11dde1a3de42 100644
--- a/modular_splurt/code/modules/mob/living/emotes.dm
+++ b/modular_splurt/code/modules/mob/living/emotes.dm
@@ -1628,6 +1628,15 @@ To add randomization to your emote, copy and paste this line of code:
vary = FALSE
volume = 30
+/datum/emote/sound/human/oof
+ key = "oof"
+ key_third_person = "oofs!"
+ message = "oof!"
+ sound = 'sound/voice/oof.ogg'
+ emote_cooldown = 12 SECONDS
+ vary = FALSE
+ volume = 45
+
/datum/emote/sound/human/malaysia
key = "malaysia"
key_third_person = "admits to blowing up Malaysia!"
diff --git a/modular_splurt/code/modules/research/designs/misc_designs.dm b/modular_splurt/code/modules/research/designs/misc_designs.dm
index 4f81993d0035..b4e254a3ad7d 100644
--- a/modular_splurt/code/modules/research/designs/misc_designs.dm
+++ b/modular_splurt/code/modules/research/designs/misc_designs.dm
@@ -26,3 +26,12 @@
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_SERVICE
+/datum/design/msc
+ name = "Memory Scanner"
+ desc = "A hand-held mind scanner able to penetrate the surface mind of a target."
+ id = "memory_scanner"
+ build_type = PROTOLATHE
+ materials = list(/datum/material/iron = 20000, /datum/material/glass = 10000, /datum/material/plasma = 2000, /datum/material/gold = 2000)
+ build_path = /obj/item/memoryscanner
+ category = list("Tool Designs")
+ departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
diff --git a/modular_splurt/code/modules/research/techweb/nodes/biotech_nodes.dm b/modular_splurt/code/modules/research/techweb/nodes/biotech_nodes.dm
index ff81163de3d0..f89c0a99b97e 100644
--- a/modular_splurt/code/modules/research/techweb/nodes/biotech_nodes.dm
+++ b/modular_splurt/code/modules/research/techweb/nodes/biotech_nodes.dm
@@ -1,3 +1,12 @@
/datum/techweb_node/biotech/New()
design_ids += "sex_research"
. = ..()
+
+/datum/techweb_node/memoryscanner
+ id = "memory_scanner"
+ display_name = "Memory Scanner"
+ description = "An illegal xenotech used to scan minds for unknown purposes... now it's mostly used to steal bank account info."
+ prereq_ids = list("alien_bio", "syndicate_basic")
+ design_ids = list("memory_scanner")
+ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 30000)
+ hidden = TRUE
diff --git a/modular_splurt/code/modules/vending/wardrobes.dm b/modular_splurt/code/modules/vending/wardrobes.dm
index 009d91d73342..0da982ed87ab 100644
--- a/modular_splurt/code/modules/vending/wardrobes.dm
+++ b/modular_splurt/code/modules/vending/wardrobes.dm
@@ -157,6 +157,13 @@
LAZYADD(products, extra_premium)
. = ..()
+/obj/machinery/vending/wardrobe/cap_wardrobe/Initialize(mapload)
+ var/list/extra_contraband = list(
+ /obj/item/clothing/head/outragecowhat = 1,
+ )
+ LAZYADD(contraband, extra_contraband)
+ . = ..()
+
/obj/machinery/vending/wardrobe/science_wardrobe/Initialize(mapload)
var/list/extra_products = list(
/obj/item/clothing/mask/gas/tscmask = 3
diff --git a/modular_splurt/icons/mob/clothing/bighats.dmi b/modular_splurt/icons/mob/clothing/bighats.dmi
new file mode 100644
index 000000000000..c91f43fe9b92
Binary files /dev/null and b/modular_splurt/icons/mob/clothing/bighats.dmi differ
diff --git a/modular_splurt/icons/obj/clothing/head.dmi b/modular_splurt/icons/obj/clothing/head.dmi
index 75b23cc8e2bf..4ebeda0c41e4 100644
Binary files a/modular_splurt/icons/obj/clothing/head.dmi and b/modular_splurt/icons/obj/clothing/head.dmi differ
diff --git a/modular_splurt/icons/obj/contraband.dmi b/modular_splurt/icons/obj/contraband.dmi
new file mode 100644
index 000000000000..2bc9728e70bd
Binary files /dev/null and b/modular_splurt/icons/obj/contraband.dmi differ
diff --git a/modular_splurt/icons/obj/device.dmi b/modular_splurt/icons/obj/device.dmi
index adb881deea54..b51515bf14fa 100644
Binary files a/modular_splurt/icons/obj/device.dmi and b/modular_splurt/icons/obj/device.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index e7cc4796b144..1d794c54f4f9 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -4516,6 +4516,7 @@
#include "modular_splurt\code\datums\components\crafting\recipes\recipes_primal.dm"
#include "modular_splurt\code\datums\components\crafting\recipes\recipes_robot.dm"
#include "modular_splurt\code\datums\components\storage\concrete\pockets.dm"
+#include "modular_splurt\code\datums\diseases\suddennyanificationsyndrome.dm"
#include "modular_splurt\code\datums\elements\crawl_under.dm"
#include "modular_splurt\code\datums\elements\flavor_text.dm"
#include "modular_splurt\code\datums\elements\holder_micro.dm"
@@ -4596,6 +4597,7 @@
#include "modular_splurt\code\game\atoms_movable.dm"
#include "modular_splurt\code\game\data_huds.dm"
#include "modular_splurt\code\game\say.dm"
+#include "modular_splurt\code\game\splurt_posters.dm"
#include "modular_splurt\code\game\area\areas\centcom.dm"
#include "modular_splurt\code\game\area\areas\commons.dm"
#include "modular_splurt\code\game\area\areas\holodeck.dm"
@@ -4652,6 +4654,7 @@
#include "modular_splurt\code\game\objects\items\circuitboards\computer_circuitboards.dm"
#include "modular_splurt\code\game\objects\items\circuitboards\machine_circuitboards.dm"
#include "modular_splurt\code\game\objects\items\circuitboards\miner_circuitboards.dm"
+#include "modular_splurt\code\game\objects\items\devices\scanners.dm"
#include "modular_splurt\code\game\objects\items\devices\PDA\PDA.dm"
#include "modular_splurt\code\game\objects\items\devices\PDA\radio.dm"
#include "modular_splurt\code\game\objects\items\devices\radio\electropack.dm"
@@ -4910,6 +4913,7 @@
#include "modular_splurt\code\modules\discord\toggle_notify.dm"
#include "modular_splurt\code\modules\events\bruh_moment.dm"
#include "modular_splurt\code\modules\events\crystalline_reentry.dm"
+#include "modular_splurt\code\modules\events\sns_outbreak.dm"
#include "modular_splurt\code\modules\events\vent_clog.dm"
#include "modular_splurt\code\modules\food_and_drinks\drinks\drinks\bottle.dm"
#include "modular_splurt\code\modules\food_and_drinks\drinks\drinks\drinks.dm"