diff --git a/code/modules/mob/living/carbon/alien/humanoid/emote.dm b/code/modules/mob/living/carbon/alien/humanoid/emote.dm
index 087422810c3..71dc56ef402 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/emote.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/emote.dm
@@ -1,4 +1,4 @@
-/mob/living/carbon/alien/humanoid/emote(var/act)
+/mob/living/carbon/alien/humanoid/emote(var/act,var/m_type=1,var/message = null)
var/param = null
if (findtext(act, "-", 1, null))
@@ -9,10 +9,25 @@
if(findtext(act,"s",-1) && !findtext(act,"_",-2))//Removes ending s's unless they are prefixed with a '_'
act = copytext(act,1,length(act))
var/muzzled = istype(src.wear_mask, /obj/item/clothing/mask/muzzle)
- var/m_type = 1
- var/message
switch(act)
+ if ("me")
+ if(silent)
+ return
+ if (src.client)
+ if (client.prefs.muted & MUTE_IC)
+ src << "\red You cannot send IC messages (muted)."
+ return
+ if (src.client.handle_spam_prevention(message,MUTE_IC))
+ return
+ if (stat)
+ return
+ if(!(message))
+ return
+ return custom_emote(m_type, message)
+
+ if ("custom")
+ return custom_emote(m_type, message)
if("sign")
if (!src.restrained())
message = text("The alien signs[].", (text2num(param) ? text(" the number []", text2num(param)) : null))
diff --git a/code/modules/mob/living/carbon/alien/larva/emote.dm b/code/modules/mob/living/carbon/alien/larva/emote.dm
index 2be246fe8fb..375c5c6b0c9 100644
--- a/code/modules/mob/living/carbon/alien/larva/emote.dm
+++ b/code/modules/mob/living/carbon/alien/larva/emote.dm
@@ -1,4 +1,4 @@
-/mob/living/carbon/alien/larva/emote(var/act)
+/mob/living/carbon/alien/larva/emote(var/act,var/m_type=1,var/message = null)
var/param = null
if (findtext(act, "-", 1, null))
@@ -9,10 +9,25 @@
if(findtext(act,"s",-1) && !findtext(act,"_",-2))//Removes ending s's unless they are prefixed with a '_'
act = copytext(act,1,length(act))
var/muzzled = istype(src.wear_mask, /obj/item/clothing/mask/muzzle)
- var/m_type = 1
- var/message
switch(act)
+ if ("me")
+ if(silent)
+ return
+ if (src.client)
+ if (client.prefs.muted & MUTE_IC)
+ src << "\red You cannot send IC messages (muted)."
+ return
+ if (src.client.handle_spam_prevention(message,MUTE_IC))
+ return
+ if (stat)
+ return
+ if(!(message))
+ return
+ return custom_emote(m_type, message)
+
+ if ("custom")
+ return custom_emote(m_type, message)
if("sign")
if (!src.restrained())
message = text("The alien signs[].", (text2num(param) ? text(" the number []", text2num(param)) : null))
diff --git a/code/modules/mob/living/carbon/brain/emote.dm b/code/modules/mob/living/carbon/brain/emote.dm
index 8f83bd390ab..1995ff5e1cc 100644
--- a/code/modules/mob/living/carbon/brain/emote.dm
+++ b/code/modules/mob/living/carbon/brain/emote.dm
@@ -12,6 +12,23 @@
if(src.stat == DEAD)
return
switch(act)
+ if ("me")
+ if(silent)
+ return
+ if (src.client)
+ if (client.prefs.muted & MUTE_IC)
+ src << "\red You cannot send IC messages (muted)."
+ return
+ if (src.client.handle_spam_prevention(message,MUTE_IC))
+ return
+ if (stat)
+ return
+ if(!(message))
+ return
+ return custom_emote(m_type, message)
+
+ if ("custom")
+ return custom_emote(m_type, message)
if ("alarm")
src << "You sound an alarm."
message = "[src] sounds an alarm."
diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm
index 4029fc46444..591e4426e09 100644
--- a/code/modules/mob/living/carbon/human/emote.dm
+++ b/code/modules/mob/living/carbon/human/emote.dm
@@ -63,7 +63,7 @@
else
alert("Unable to use this emote, must be either hearable or visible.")
return
- message = "[src] [input]"
+ return custom_emote(m_type, message)
if ("me")
if(silent)
@@ -78,7 +78,7 @@
return
if(!(message))
return
- message = "[src] [message]"
+ return custom_emote(m_type, message)
if ("salute")
if (!src.buckled)
diff --git a/code/modules/mob/living/carbon/metroid/emote.dm b/code/modules/mob/living/carbon/metroid/emote.dm
index 0e6688e69ea..2f6f0005396 100644
--- a/code/modules/mob/living/carbon/metroid/emote.dm
+++ b/code/modules/mob/living/carbon/metroid/emote.dm
@@ -1,4 +1,4 @@
-/mob/living/carbon/slime/emote(var/act, var/type, var/desc)
+/mob/living/carbon/slime/emote(var/act,var/m_type=1,var/message = null)
if (findtext(act, "-", 1, null))
@@ -9,14 +9,24 @@
if(findtext(act,"s",-1) && !findtext(act,"_",-2))//Removes ending s's unless they are prefixed with a '_'
act = copytext(act,1,length(act))
- var/m_type = 1
- var/message
-
switch(act)
if ("me")
- return custom_emote(m_type, desc)
+ if(silent)
+ return
+ if (src.client)
+ if (client.prefs.muted & MUTE_IC)
+ src << "\red You cannot send IC messages (muted)."
+ return
+ if (src.client.handle_spam_prevention(message,MUTE_IC))
+ return
+ if (stat)
+ return
+ if(!(message))
+ return
+ return custom_emote(m_type, message)
+
if ("custom")
- return custom_emote(m_type, desc)
+ return custom_emote(m_type, message)
if("moan")
message = "The [src.name] moans."
m_type = 2
diff --git a/code/modules/mob/living/carbon/monkey/emote.dm b/code/modules/mob/living/carbon/monkey/emote.dm
index 8e6c281c781..615fb631d0e 100644
--- a/code/modules/mob/living/carbon/monkey/emote.dm
+++ b/code/modules/mob/living/carbon/monkey/emote.dm
@@ -1,4 +1,4 @@
-/mob/living/carbon/monkey/emote(var/act, var/type, var/desc)
+/mob/living/carbon/monkey/emote(var/act,var/m_type=1,var/message = null)
var/param = null
if (findtext(act, "-", 1, null))
@@ -10,15 +10,26 @@
act = copytext(act,1,length(act))
var/muzzled = istype(src.wear_mask, /obj/item/clothing/mask/muzzle)
- var/m_type = 1
- var/message
switch(act)
if ("me")
- return custom_emote(m_type, desc)
+ if(silent)
+ return
+ if (src.client)
+ if (client.prefs.muted & MUTE_IC)
+ src << "\red You cannot send IC messages (muted)."
+ return
+ if (src.client.handle_spam_prevention(message,MUTE_IC))
+ return
+ if (stat)
+ return
+ if(!(message))
+ return
+ return custom_emote(m_type, message)
+
if ("custom")
- return custom_emote(m_type, desc)
+ return custom_emote(m_type, message)
if("sign")
if (!src.restrained())