diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index e7f0dff2ae..154df05356 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -228,7 +228,6 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, list(
/datum/admins/proc/set_admin_notice,
/client/proc/admin_ghost,
/client/proc/toggle_view_range,
- /client/proc/cmd_admin_subtle_message,
/client/proc/cmd_admin_check_contents,
/datum/admins/proc/access_news_network,
/client/proc/admin_end_shift,
diff --git a/code/modules/admin/player_panel2.dm b/code/modules/admin/player_panel2.dm
index 52c9fdc6da..5ad5f06946 100644
--- a/code/modules/admin/player_panel2.dm
+++ b/code/modules/admin/player_panel2.dm
@@ -168,7 +168,7 @@ GLOBAL_LIST_INIT(pp_limbs, list(
admin.cmd_admin_pm_context(targetMob)
if ("subtle_message")
- admin.cmd_admin_subtle_message(targetMob)
+ admin.cmd_admin_subtle_headset_message(targetMob)
if ("set_name")
targetMob.vv_auto_rename(params["name"])
@@ -420,9 +420,6 @@ GLOBAL_LIST_INIT(pp_limbs, list(
H.open_language_menu(usr)
if ("ambitions")
- // if (!targetMob.client)
- // return
-
var/datum/mind/requesting_mind = targetMob.mind
if(!istype(requesting_mind) || QDELETED(requesting_mind))
to_chat(usr, "This mind reference is no longer valid. It has probably since been destroyed.")
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 324264bd30..8d56133083 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -2027,21 +2027,14 @@
return
var/mob/M = locate(href_list["CentComReply"])
- usr.client.cmd_admin_subtle_message(M, RADIO_CHANNEL_CENTCOM)
+ usr.client.cmd_admin_subtle_headset_message(M, RADIO_CHANNEL_CENTCOM)
else if(href_list["SyndicateReply"])
if(!check_rights(R_ADMIN))
return
var/mob/M = locate(href_list["SyndicateReply"])
- usr.client.cmd_admin_subtle_message(M, RADIO_CHANNEL_SYNDICATE)
-
- else if(href_list["HeadsetMessage"])
- if(!check_rights(R_ADMIN))
- return
-
- var/mob/M = locate(href_list["HeadsetMessage"])
- usr.client.cmd_admin_subtle_message(M)
+ usr.client.cmd_admin_subtle_headset_message(M, RADIO_CHANNEL_SYNDICATE)
//ambition start
else if(href_list["ObjectiveRequest"])
@@ -2103,7 +2096,7 @@
return
var/mob/M = locate(href_list["subtlemessage"])
- usr.client.cmd_admin_subtle_message(M)
+ usr.client.cmd_admin_subtle_headset_message(M)
else if(href_list["individuallog"])
if(!check_rights(R_ADMIN))
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 4a73ec1032..4413560072 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -19,10 +19,13 @@
admin_ticket_log(M, msg)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Drop Everything") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-/client/proc/cmd_admin_subtle_message(mob/M in GLOB.mob_list, sender = null)
+/client/proc/cmd_admin_subtle_message(mob/M in GLOB.mob_list)
set category = "Admin.Events"
set name = "Subtle Message"
+ cmd_admin_subtle_headset_message(M)
+
+/client/proc/cmd_admin_subtle_headset_message(mob/M, sender = null)
if(!ismob(M))
return
if(!check_rights(R_ADMIN))
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index e890623957..2172b6b9a9 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -60,10 +60,6 @@
I.appearance_flags = RESET_COLOR|RESET_TRANSFORM
hud_list[hud] = I
-/mob/proc/create_player_panel()
- QDEL_NULL(mob_panel)
- mob_panel = new(src)
-
/mob/proc/Cell()
set category = "Admin"
set hidden = 1
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index 320ee86456..c04b9f29a8 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -20,9 +20,6 @@
/// Fullscreen objects
var/list/fullscreens = list()
- // Admin player panel for this mob
- var/datum/player_panel/mob_panel
-
/// What receives our keyboard input. src by default.
var/datum/focus
diff --git a/config/entries/jexp.txt b/config/entries/jexp.txt
index e854b53b98..e46d743a66 100644
--- a/config/entries/jexp.txt
+++ b/config/entries/jexp.txt
@@ -9,7 +9,7 @@
#USE_ACCOUNT_AGE_FOR_JOBS
## Unhash this to track player playtime in the database. Requires database to be enabled.
-USE_EXP_TRACKING
+#USE_EXP_TRACKING
## Unhash this to enable playtime requirements for head jobs.
#USE_EXP_RESTRICTIONS_HEADS
## Unhash this to override head jobs' playtime requirements with this number of hours.
diff --git a/modular_splurt/code/modules/mob/mob.dm b/modular_splurt/code/modules/mob/mob.dm
index 9b5926076b..4f87cd79d2 100644
--- a/modular_splurt/code/modules/mob/mob.dm
+++ b/modular_splurt/code/modules/mob/mob.dm
@@ -20,3 +20,7 @@
if(S.type == spelltype)
return TRUE
return FALSE
+
+/mob/proc/create_player_panel()
+ QDEL_NULL(mob_panel)
+ mob_panel = new(src)
diff --git a/modular_splurt/code/modules/mob/mob_defines.dm b/modular_splurt/code/modules/mob/mob_defines.dm
index ca952d2e09..b8f14819a2 100644
--- a/modular_splurt/code/modules/mob/mob_defines.dm
+++ b/modular_splurt/code/modules/mob/mob_defines.dm
@@ -1,2 +1,5 @@
/mob
var/is_tilted
+
+ // Admin player panel for this mob
+ var/datum/player_panel/mob_panel
diff --git a/tgui/packages/tgui/interfaces/PlayerPanel2.js b/tgui/packages/tgui/interfaces/PlayerPanel2.js
index 614295f749..d6a0bbbd25 100644
--- a/tgui/packages/tgui/interfaces/PlayerPanel2.js
+++ b/tgui/packages/tgui/interfaces/PlayerPanel2.js
@@ -535,7 +535,7 @@ const GeneralActions = (props, context) => {
act("ghost")}