diff --git a/modular_citadel/code/modules/mob/cit_emotes.dm b/modular_citadel/code/modules/mob/cit_emotes.dm
index 883d628af4..920c543e84 100644
--- a/modular_citadel/code/modules/mob/cit_emotes.dm
+++ b/modular_citadel/code/modules/mob/cit_emotes.dm
@@ -1,3 +1,5 @@
+#define INSULTS_FILE "insult.json"
+
/mob
var/nextsoundemote = 1
@@ -5,6 +7,21 @@
/datum/emote/living/custom
mob_type_blacklist_typecache = list(/mob/living/brain)
+/datum/emote/living/insult
+ key = "insult"
+ key_third_person = "insults"
+ message = "spews insults."
+ emote_type = EMOTE_AUDIBLE
+
+/datum/emote/living/insult/run_emote(mob/living/user, params)
+ var/insult_message = ""
+ if(!user.is_muzzled())
+ insult_message += pick_list_replacements(INSULTS_FILE, "insult_gen")
+ message = insult_message
+ else
+ message = "muffles something."
+ . = ..()
+
/datum/emote/living/scream/run_emote(mob/living/user, params) //I can't not port this shit, come on.
if(user.nextsoundemote >= world.time || user.stat != CONSCIOUS)
return
@@ -142,4 +159,4 @@
return
user.nextsoundemote = world.time + 7
playsound(user, 'modular_citadel/sound/voice/weh.ogg', 50, 1, -1)
- . = ..()
\ No newline at end of file
+ . = ..()
diff --git a/strings/insult.json b/strings/insult.json
new file mode 100644
index 0000000000..77b176be8f
--- /dev/null
+++ b/strings/insult.json
@@ -0,0 +1,178 @@
+{
+ "insult_gen":[
+ "yells, ''I'm going to @pick(verbs_use) you, you @pick(adjective_insult) @pick(nouns_insult)!''",
+ "yells, ''Rend and @pick(verbs_touch), Rend and @pick(verbs_use)!''",
+ "yells, ''You @pick(nouns_insult), I'm going to @pick(verbs_use) you right in the @pick(nouns_body). JUST YOU WAIT!''",
+ "yells, ''You @pick(curse_words)!!''",
+ "yells, ''Time to get my @pick(adjective_generic) @pick(adjective_insult) @pick(nouns_body) elsewhere.''",
+ "yells, ''Well @pick(verbs_use) my @pick(nouns_body), this @pick(nouns_insult) is pretty @pick(adjective_insult).''",
+ "yells, ''Hippity hoppity, get off of my property, you @pick(nouns_insult)!''",
+ "yells, ''@pick(curse_words), what am I meant to do with this @pick(adjective_insult) @pick(nouns_objects).''"
+ ],
+
+ "verbs_use": [
+ "touch",
+ "hold",
+ "poke",
+ "punch",
+ "smash",
+ "assault",
+ "wrench",
+ "tickle",
+ "modify",
+ "whack",
+ "beat",
+ "tackle",
+ "destroy",
+ "vore"
+ ],
+
+ "verbs_touch": [
+ "pat",
+ "mess with",
+ "absorb",
+ "sneeze on",
+ "inject",
+ "rip",
+ "slap",
+ "grab",
+ "choke",
+ "vore"
+ ],
+
+ "verbs_move": [
+ "run",
+ "jog",
+ "leg it",
+ "slide",
+ "cheese it",
+ "walk",
+ "stroll",
+ "fly",
+ "scoot",
+ "yakkety",
+ "speed",
+ "fuck off",
+ "escape"
+ ],
+
+ "nouns_insult": [
+ "gaylord",
+ "shitcurity",
+ "noob",
+ "comdom",
+ "cuck",
+ "greytider",
+ "tator",
+ "lingbin",
+ "bitch",
+ "whorelord",
+ "cluwn",
+ "monkey",
+ "cheesmonger",
+ "milkdrinker",
+ "cally-breek tattie",
+ "clype deep bachle",
+ "blethering gomeril Jessie",
+ "oaf-lookin' schooner",
+ "worm-eyed hotten blaugh",
+ "vile stoochie"
+ ],
+
+ "nouns_generic": [
+ "you",
+ "that faggot traitor",
+ "you there",
+ "guy",
+ "person",
+ "dude",
+ "jerk",
+ "officer",
+ "schooner",
+ "shilpit",
+ "smooth brain"
+ ],
+
+ "nouns_objects": [
+ "thing",
+ "tool",
+ "whatever",
+ "potential murder weapon",
+ "object",
+ "toy",
+ "device",
+ "whatever",
+ "squid",
+ "dildo",
+ "plush"
+ ],
+
+ "nouns_body": [
+ "ass",
+ "head",
+ "face",
+ "arms",
+ "fingers",
+ "toes",
+ "chest",
+ "eyes",
+ "nails",
+ "groin",
+ "stomach",
+ "intestines",
+ "knees"
+ ],
+
+ "adjective_insult": [
+ "ugly",
+ "repulsive",
+ "dumb",
+ "asinine",
+ "mongoloid",
+ "childish",
+ "captain-like",
+ "whoreish",
+ "dimwit",
+ "jerk-face",
+ "vomit-inducer",
+ "virgin",
+ "wannabe chad"
+ ],
+
+ "adjective_objects": [
+ "big",
+ "small",
+ "tiny",
+ "round",
+ "square",
+ "oblong",
+ "colorful",
+ "dull",
+ "shiny",
+ "sparkling",
+ "blinking",
+ "awful",
+ "fuck-face"
+ ],
+
+ "adjective_generic": [
+ "nice",
+ "pretty",
+ "ugly",
+ "bad",
+ "okay",
+ "stupid"
+ ],
+
+ "curse_words": [
+ "damn",
+ "shit",
+ "arse",
+ "ass",
+ "wank",
+ "jerk",
+ "bitch",
+ "cuck",
+ "ligger"
+ ]
+}