diff --git a/code/datums/spells/mind_transfer.dm b/code/datums/spells/mind_transfer.dm
index c8952cc8a9..61c6f980fd 100644
--- a/code/datums/spells/mind_transfer.dm
+++ b/code/datums/spells/mind_transfer.dm
@@ -57,6 +57,8 @@ Also, you never added distance checking after target is selected. I've went ahea
var/mob/caster = user//The wizard/whomever doing the body transferring.
//SPELL LOSS BEGIN
+ admin_attack_log(caster, victim, "Used mind transfer on", "Had mind transfer used on him by", "used mind transfer on")
+
//NOTE: The caster must ALWAYS keep mind transfer, even when other spells are lost.
var/obj/effect/proc_holder/spell/targeted/mind_transfer/m_transfer = locate() in user.spell_list//Find mind transfer directly.
var/list/checked_spells = user.spell_list
diff --git a/code/defines/procs/admin.dm b/code/defines/procs/admin.dm
index abf4c97dd3..2bfb8b9436 100644
--- a/code/defines/procs/admin.dm
+++ b/code/defines/procs/admin.dm
@@ -1,7 +1,13 @@
proc/log_and_message_admins(var/message as text)
- log_admin(usr ? "[usr]([usr.ckey]) [message]" : "EVENT [message]")
- message_admins(usr ? "[usr]([usr.ckey]) [message]" : "EVENT [message]")
+ log_admin(usr ? "[key_name(usr)] [message]" : "EVENT [message]")
+ message_admins(usr ? "[key_name(usr)] [message]" : "EVENT [message]")
proc/admin_log_and_message_admins(var/message as text)
- log_admin(usr ? "[key_name(usr)] [message]" : "EVENT [message]")
- message_admins(usr ? "[key_name(usr)] [message]" : "EVENT [message]", 1)
+ log_admin(usr ? "[key_name_admin(usr)] [message]" : "EVENT [message]")
+ message_admins(usr ? "[key_name_admin(usr)] [message]" : "EVENT [message]", 1)
+
+proc/admin_attack_log(var/mob/attacker, var/mob/victim, var/attacker_message, var/victim_message, var/admin_message)
+ victim.attack_log += text("\[[time_stamp()]\] [victim_message] [key_name(attacker)]")
+ attacker.attack_log += text("\[[time_stamp()]\] [attacker_message] [key_name(victim)]")
+
+ msg_admin_attack("[key_name(attacker)] [admin_message] [key_name(victim)] (INTENT: [uppertext(attacker.a_intent)]) (JMP)")