diff --git a/code/__HELPERS/logging.dm b/code/__HELPERS/logging.dm
index 269e9c16b8a..71e771f4e74 100644
--- a/code/__HELPERS/logging.dm
+++ b/code/__HELPERS/logging.dm
@@ -68,6 +68,14 @@
if (config.log_whisper)
diary << html_decode("\[[time_stamp()]]WHISPER: [text]")
+/proc/log_cultspeak(text)
+ if (config.log_whisper)
+ diary << html_decode("\[[time_stamp()]]CULT: [text]")
+
+/proc/log_narspeak(text)
+ if (config.log_whisper)
+ diary << html_decode("\[[time_stamp()]]NARSIE: [text]")
+
/proc/log_emote(text)
// //writepanic("[__FILE__].[__LINE__] (no type)([usr ? usr.ckey : ""]) \\/proc/log_emote() called tick#: [world.time]")
if (config.log_emote)
diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm
index b92d20bd28f..c9665bfc2c8 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -202,15 +202,18 @@
M << "Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back."
M << "You can now speak and understand the forgotten tongue of the occult."
M.add_language("Cult")
- log_admin("[usr]([ckey(usr.key)]) has converted [M] ([ckey(M.key)]) to the cult at [M.loc.x], [M.loc.y], [M.loc.z]")
+ log_admin("[usr]([ckey(usr.key)]) has converted [M] ([ckey(M.key)]) to the cult at ([M.loc.x], [M.loc.y], [M.loc.z])")
if(M.client)
- src = null
- sleep(100)//10 seconds sounds good
- if(M && !M.client)
- message_admins("[M] ([ckey(M.key)]) ghosted/disconnected shortly after having been converted to the cult!")
- log_admin("[M]([ckey(M.key)]) ghosted/disconnected shortly after having been converted to the cult!")
+ spawn(600)
+ if(M && !M.client)
+ var/turf/T = get_turf(M)
+ message_admins("[M] ([ckey(M.key)]) ghosted/disconnected less than a minute after having been converted to the cult! ([T.x],[T.y],[T.z] - JMP)")
+ log_admin("[M]([ckey(M.key)]) ghosted/disconnected less than a minute after having been converted to the cult! ([T.x],[T.y],[T.z] - JMP)")
return 1
else
+ usr << "The ritual didn't work, either something is disrupting it, or this person just isn't suited to be part of our cult."
+ if(M.silent && M.weakened)
+ usr << "You have to restrain him before the talisman's effects wear off!"
M << "Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root."
M << "And you were able to force it out of your mind. You now know the truth, there's something horrible out there, stop it and its minions at all costs."
return 0
@@ -792,6 +795,8 @@
for(var/mob/dead/observer/O in player_list)
O << "[user.real_name] communicates, [input]"
+ log_cultspeak("[key_name(user)] Cult Communicate Rune: [input]")
+
qdel(src)
return 1
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 68820587c70..1f0ef0f7156 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1640,6 +1640,7 @@
O << "Nar-Sie murmurs, [input]"
message_admins("Admin [key_name_admin(usr)] has talked with the Voice of Nar-Sie.")
+ log_narspeak("[key_name(usr)] Voice of Nar-Sie: [input]")
else if(href_list["cult_privatespeak"])
var/mob/M = locate(href_list["cult_privatespeak"])
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 28709ce72f2..714d140217c 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -207,7 +207,7 @@ var/list/department_radio_keys = list(
send_speech(message, message_range, speaking, src, bubble_type)
var/turf/T = get_turf(src)
- log_say("[name]/[key] [T?"(@[T.x],[T.y],[T.z])":"(@[x],[y],[z])"]: [speaking ? "As [speaking.name] ":""] [message]")
+ log_say("[name]/[key] [T?"(@[T.x],[T.y],[T.z])":"(@[x],[y],[z])"] [speaking ? "As [speaking.name] ":""]: [message]")
return 1