diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm
index 9f9ecf422a8..2f6c5b2d9d6 100644
--- a/code/controllers/subsystem/ticker.dm
+++ b/code/controllers/subsystem/ticker.dm
@@ -383,6 +383,8 @@ var/datum/subsystem/ticker/ticker
world << "[aiPlayer.name] (Played by: [aiPlayer.mind.key])'s laws when it was deactivated were:"
aiPlayer.show_laws(1)
+ world << "Total law changes: [aiPlayer.law_change_counter]"
+
if (aiPlayer.connected_robots.len)
var/robolist = "[aiPlayer.real_name]'s minions were: "
for(var/mob/living/silicon/robot/robo in aiPlayer.connected_robots)
diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm
index d1d30653cac..57f667ac382 100644
--- a/code/game/objects/items/weapons/AI_modules.dm
+++ b/code/game/objects/items/weapons/AI_modules.dm
@@ -43,12 +43,14 @@ AI MODULES
var/law2log = src.transmitInstructions(reciever, user) //Freeforms return something extra we need to log
user << "Upload complete. [reciever]'s laws have been modified."
reciever.show_laws()
+ reciever.law_change_counter++
if(isAI(reciever))
var/mob/living/silicon/ai/A = reciever
for(var/mob/living/silicon/robot/R in A.connected_robots)
if(R.lawupdate)
R << "From now on, these are your laws:"
R.show_laws()
+ R.law_change_counter++
var/time = time2text(world.realtime,"hh:mm:ss")
lawchanges.Add("[time] : [user.name]([user.key]) used [src.name] on [reciever.name]([reciever.key]).[law2log ? " The law specified [law2log]" : ""]")
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index 68eeaf670d7..6d7800262d0 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -22,6 +22,8 @@
var/med_hud = DATA_HUD_MEDICAL_ADVANCED //Determines the med hud to use
var/sec_hud = DATA_HUD_SECURITY_ADVANCED //Determines the sec hud to use
+ var/law_change_counter = 0
+
/mob/living/silicon/contents_explosion(severity, target)
return