diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm
index 1f0e0152b..7da8960b6 100644
--- a/code/__DEFINES/preferences.dm
+++ b/code/__DEFINES/preferences.dm
@@ -16,6 +16,7 @@
#define DISABLE_ARRIVALRATTLE (1<<13)
#define COMBOHUD_LIGHTING (1<<14)
#define ANTAG_SYNC_WITH_CHARS (1<<15)
+#define ANNOUNCE_LOGINP (1<<16)
#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|MEMBER_PUBLIC|INTENT_STYLE|MIDROUND_ANTAG|SOUND_INSTRUMENTS|SOUND_SHIP_AMBIENCE|SOUND_PRAYERS|SOUND_ANNOUNCEMENTS)
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index 0979d9dc4..e2f9cdf14 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -279,7 +279,7 @@ GLOBAL_LIST_EMPTY(external_rsc_urls)
continue
if(C.prefs)//supposedly fixes a runtime with the following lines. Ripped from OldPollo. I miss you, Lads. :(
- if(C.prefs.toggles & CHAT_OOC)
+ if(C.prefs.toggles & ANNOUNCE_LOGINP)
to_chat(world, "[src.key] has connected to the server.")
if(C.prefs.toggles)
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 3c4c0d5dd..b7d70afbb 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -981,6 +981,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Play Lobby Music: [(toggles & SOUND_LOBBY) ? "Enabled":"Disabled"]
"
dat += "See Pull Requests: [(chat_toggles & CHAT_PULLR) ? "Enabled":"Disabled"]
"
dat += "
"
+ dat += "Announce Login: [(toggles & ANNOUNCE_LOGINP)?"Enabled":"Disabled"]
"
+ dat += "
"
if(user.client)
if(unlock_content)
dat += "BYOND Membership Publicity: [(toggles & MEMBER_PUBLIC) ? "Public" : "Hidden"]
"
@@ -2635,6 +2637,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
else
be_special += list(be_special_type)
+ if("announce_loginp")
+ toggles ^= ANNOUNCE_LOGINP
+
if("name")
be_random_name = !be_random_name
diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm
index d194dc55c..e8ea7a913 100644
--- a/code/modules/client/preferences_toggles.dm
+++ b/code/modules/client/preferences_toggles.dm
@@ -365,6 +365,17 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS
to_chat(src, "You will no longer examine things you click on.")
SSblackbox.record_feedback("nested tally", "preferences_verb", 1, list("Toggle Ghost Inquisitiveness", "[prefs.inquisitive_ghost ? "Enabled" : "Disabled"]"))
+/client/proc/toggleannounceloginplayer()
+ set name = "Do/Don't Announce Player Login"
+ set category = "Preferences"
+ set desc = "Toggle if you want an announcement to the server when you login during a round"
+ if(!holder)
+ return
+ prefs.toggles ^= ANNOUNCE_LOGINP
+ prefs.save_preferences()
+ to_chat(usr, "You will [(prefs.toggles & ANNOUNCE_LOGINP) ? "now" : "no longer"] have an announcement to other players when you login.")
+ SSblackbox.record_feedback("nested tally", "preferences_verb", 1, list("Toggle Player Login Announcement", "[prefs.toggles & ANNOUNCE_LOGINP ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+
//Admin Preferences
/client/proc/toggleadminhelpsound()
set name = "Hear/Silence Adminhelps"