diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm
index e0e38e9008..ade068ed63 100644
--- a/code/game/verbs/ooc.dm
+++ b/code/game/verbs/ooc.dm
@@ -33,7 +33,7 @@
if(!dooc_allowed && deadchat != 0)
usr << "\red OOC for dead mobs has been turned off."
return
- if(muted & MUTE_OOC)
+ if(prefs.muted & MUTE_OOC)
src << "\red You cannot use OOC (muted)."
return
if(handle_spam_prevention(msg,MUTE_OOC))
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 7dbe9ef83a..4496973520 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -54,13 +54,14 @@ var/global/floorIsLava = 0
if(M.client)
body += "| Prison | "
+ var/muted = M.client.prefs.muted
body += "
Mute: "
- body += "\[IC | "
- body += "OOC | "
- body += "PRAY | "
- body += "ADMINHELP | "
- body += "DEADCHAT\]"
- body += "(toggle all)"
+ body += "\[IC | "
+ body += "OOC | "
+ body += "PRAY | "
+ body += "ADMINHELP | "
+ body += "DEADCHAT\]"
+ body += "(toggle all)"
body += "
"
body += "Jump to | "
diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm
index 018c43eb55..95edd11a17 100644
--- a/code/modules/admin/verbs/adminhelp.dm
+++ b/code/modules/admin/verbs/adminhelp.dm
@@ -8,7 +8,7 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
set name = "Adminhelp"
//handle muting and automuting
- if(muted & MUTE_ADMINHELP)
+ if(prefs.muted & MUTE_ADMINHELP)
src << "Error: Admin-PM: You cannot send adminhelps (Muted)."
return
if(src.handle_spam_prevention(msg,MUTE_ADMINHELP))
diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm
index c2f6067657..7688f962a5 100644
--- a/code/modules/admin/verbs/adminpm.dm
+++ b/code/modules/admin/verbs/adminpm.dm
@@ -36,7 +36,7 @@
//takes input from cmd_admin_pm_context, cmd_admin_pm_panel or /client/Topic and sends them a PM.
//Fetching a message if needed. src is the sender and C is the target client
/client/proc/cmd_admin_pm(var/client/C, var/msg)
- if(src.muted & MUTE_ADMINHELP)
+ if(prefs.muted & MUTE_ADMINHELP)
src << "Error: Admin-PM: You are unable to use admin PM-s (muted)."
return
diff --git a/code/modules/admin/verbs/deadsay.dm b/code/modules/admin/verbs/deadsay.dm
index ce4256e51b..5fd0c54757 100644
--- a/code/modules/admin/verbs/deadsay.dm
+++ b/code/modules/admin/verbs/deadsay.dm
@@ -7,7 +7,7 @@
return
if(!src.mob)
return
- if(src.muted & MUTE_DEADCHAT)
+ if(prefs.muted & MUTE_DEADCHAT)
src << "\red You cannot send DSAY messages (muted)."
return
diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm
index 28ac835b75..a3a140d1bd 100644
--- a/code/modules/admin/verbs/pray.dm
+++ b/code/modules/admin/verbs/pray.dm
@@ -6,7 +6,7 @@
if(!msg) return
if(usr.client)
- if(usr.client.muted & MUTE_PRAY)
+ if(usr.client.prefs.muted & MUTE_PRAY)
usr << "\red You cannot pray (muted)."
return
if(src.client.handle_spam_prevention(msg,MUTE_PRAY))
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 84dce75f9e..b8e649ca67 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -154,19 +154,19 @@ proc/cmd_admin_mute(mob/M as mob, mute_type, automute = 0)
if(automute)
muteunmute = "auto-muted"
- M.client.muted |= mute_type
+ M.client.prefs.muted |= mute_type
log_admin("SPAM AUTOMUTE: [muteunmute] [key_name(M)] from [mute_string]")
message_admins("SPAM AUTOMUTE: [muteunmute] [key_name_admin(M)] from [mute_string].", 1)
M << "You have been [muteunmute] from [mute_string] by the SPAM AUTOMUTE system. Contact an admin."
feedback_add_details("admin_verb","AUTOMUTE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
- if(M.client.muted & mute_type)
+ if(M.client.prefs.muted & mute_type)
muteunmute = "unmuted"
- M.client.muted &= ~mute_type
+ M.client.prefs.muted &= ~mute_type
else
muteunmute = "muted"
- M.client.muted |= mute_type
+ M.client.prefs.muted |= mute_type
log_admin("[key_name(usr)] has [muteunmute] [key_name(M)] from [mute_string]")
message_admins("[key_name_admin(usr)] has [muteunmute] [key_name_admin(M)] from [mute_string].", 1)
diff --git a/code/modules/client/client defines.dm b/code/modules/client/client defines.dm
index 4afa1cf326..ab22e7f132 100644
--- a/code/modules/client/client defines.dm
+++ b/code/modules/client/client defines.dm
@@ -6,7 +6,6 @@
var/buildmode = 0
var/seeprayers = 1
- var/muted = 0
var/last_message = "" //Contains the last message sent by this client - used to protect against copy-paste spamming.
var/last_message_count = 0 //contins a number of how many times a message identical to last_message was sent.
diff --git a/code/modules/mob/dead/observer/say.dm b/code/modules/mob/dead/observer/say.dm
index 9cf96f09f9..5e576701d6 100644
--- a/code/modules/mob/dead/observer/say.dm
+++ b/code/modules/mob/dead/observer/say.dm
@@ -10,7 +10,7 @@
log_say("Ghost/[src.key] : [message]")
if (src.client)
- if(src.client.muted & MUTE_DEADCHAT)
+ if(src.client.prefs.muted & MUTE_DEADCHAT)
src << "\red You cannot talk in deadchat (muted)."
return
diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm
index 95e4ae6f9d..d45d874039 100644
--- a/code/modules/mob/living/carbon/human/emote.dm
+++ b/code/modules/mob/living/carbon/human/emote.dm
@@ -79,7 +79,7 @@
if(silent)
return
if (src.client)
- if (client.muted & MUTE_IC)
+ if (client.prefs.muted & MUTE_IC)
src << "\red You cannot send IC messages (muted)."
return
if (src.client.handle_spam_prevention(message,MUTE_IC))
diff --git a/code/modules/mob/living/carbon/human/whisper.dm b/code/modules/mob/living/carbon/human/whisper.dm
index b7dbcd05a4..8ba18757b5 100644
--- a/code/modules/mob/living/carbon/human/whisper.dm
+++ b/code/modules/mob/living/carbon/human/whisper.dm
@@ -8,7 +8,7 @@
log_whisper("[src.name]/[src.key] : [message]")
if (src.client)
- if (src.client.muted & MUTE_IC)
+ if (src.client.prefs.muted & MUTE_IC)
src << "\red You cannot whisper (muted)."
return
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 333747b5c3..54fd8e4665 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -86,7 +86,7 @@ var/list/department_radio_keys = list(
return say_dead(message)
if (src.client)
- if(client.muted & MUTE_IC)
+ if(client.prefs.muted & MUTE_IC)
src << "\red You cannot speak in IC (muted)."
return
if (src.client.handle_spam_prevention(message,MUTE_IC))
diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm
index 3ce3f8304b..21d2d5534f 100644
--- a/code/modules/mob/living/silicon/robot/emote.dm
+++ b/code/modules/mob/living/silicon/robot/emote.dm
@@ -72,7 +72,7 @@
if ("me")
if (src.client)
- if(client.muted & MUTE_IC)
+ if(client.prefs.muted & MUTE_IC)
src << "You cannot send IC messages (muted)."
return
if (src.client.handle_spam_prevention(message,MUTE_IC))
diff --git a/code/modules/mob/living/silicon/say.dm b/code/modules/mob/living/silicon/say.dm
index 39c80bc7b0..2d2d781c25 100644
--- a/code/modules/mob/living/silicon/say.dm
+++ b/code/modules/mob/living/silicon/say.dm
@@ -3,7 +3,7 @@
return
if (src.client)
- if(client.muted & MUTE_IC)
+ if(client.prefs.muted & MUTE_IC)
src << "You cannot send IC messages (muted)."
return
if (src.client.handle_spam_prevention(message,MUTE_IC))
diff --git a/code/modules/mob/new_player/preferences.dm b/code/modules/mob/new_player/preferences.dm
index b4d3415ede..38cd4edf3c 100644
--- a/code/modules/mob/new_player/preferences.dm
+++ b/code/modules/mob/new_player/preferences.dm
@@ -43,6 +43,7 @@ datum/preferences
//non-preference stuff
var/warns = 0
+ var/muted = 0
var/last_ip
var/last_id