diff --git a/code/datums/statistic.dm b/code/datums/statistic.dm
index bf9ca08f7db..92b423c3fcf 100644
--- a/code/datums/statistic.dm
+++ b/code/datums/statistic.dm
@@ -75,6 +75,36 @@
key = "clones"
write_to_db = TRUE
+/datum/statistic/numeric/people_hung
+ name = "People Hung"
+ key = "hangings"
+ write_to_db = TRUE
+
+/datum/statistic/numeric/self_slaps
+ name = "Total Self-slaps"
+ key = "selfslap"
+ write_to_db = TRUE
+
+/datum/statistic/numeric/ai_doors
+ name = "Doors Opened by AI"
+ key = "AI_DOOR"
+ write_to_db = TRUE
+
+/datum/statistic/numeric/messes
+ name = "Total Janitor Tears"
+ key = "messes_made"
+ write_to_db = TRUE
+
+/datum/statistic/numeric/swirlies
+ name = "Swirlies Given"
+ key = "swirlies"
+ write_to_db = TRUE
+
+/datum/statistic/numeric/mule_victims
+ name = "MULE Victims"
+ key = "mule_victims"
+ write_to_db = TRUE
+
/datum/statistic/grouped/most_deaths
name = "Most Overall Deaths (by ckey)"
key = "ckey_deaths"
diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm
index 80ac5437590..a1cad7f8d3b 100644
--- a/code/game/machinery/bots/mulebot.dm
+++ b/code/game/machinery/bots/mulebot.dm
@@ -725,6 +725,8 @@
blood_splatter(src,H,1)
bloodiness += 4
+ SSfeedback.IncrementSimpleStat("mule_victims")
+
// player on mulebot attempted to move
/obj/machinery/bot/mulebot/relaymove(var/mob/user)
if(user.stat)
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index ccf2119b24e..f1e2812ec77 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -832,6 +832,8 @@ About the new airlock wires panel:
usr << text("The door bolts are down!")
else if(activate && density)
open()
+ if (isAI(usr))
+ SSfeedback.IncrementSimpleStat("AI_DOOR")
else if(!activate && !density)
close()
if("safeties")
diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm
index 9fe52cc57eb..6e364d11aeb 100644
--- a/code/game/objects/effects/decals/cleanable.dm
+++ b/code/game/objects/effects/decals/cleanable.dm
@@ -7,7 +7,9 @@
return
..()
-/obj/effect/decal/cleanable/Initialize()
+/obj/effect/decal/cleanable/Initialize(mapload)
if (LAZYLEN(random_icon_states))
icon_state = pick(src.random_icon_states)
. = ..()
+ if (!mapload && ROUND_IS_STARTED)
+ SSfeedback.IncrementSimpleStat("messes_made")
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index 7a93c5485e9..6d6641b7977 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -72,6 +72,7 @@
user.visible_message("[user] gives [GM.name] a swirlie!", "You give [GM.name] a swirlie!", "You hear a toilet flushing.")
if(!GM.internal)
GM.adjustOxyLoss(5)
+ SSfeedback.IncrementSimpleStat("swirlies")
swirlie = null
else
user.visible_message("[user] slams [GM.name] into the [src]!", "You slam [GM.name] into the [src]!")
diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm
index 3587456508e..e5b9ab34f16 100644
--- a/code/modules/mob/living/carbon/human/emote.dm
+++ b/code/modules/mob/living/carbon/human/emote.dm
@@ -309,6 +309,7 @@
else
message = "slaps [get_visible_gender() == MALE ? "himself" : get_visible_gender() == FEMALE ? "herself" : "themselves"]!"
playsound(loc, 'sound/effects/snap.ogg', 50, 1)
+ SSfeedback.IncrementSimpleStat("selfslap")
if("snap", "snaps")
m_type = 2
diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index 737278ffc3c..89a334936d2 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -1010,6 +1010,7 @@ obj/structure/cable/proc/cableColor(var/colorC)
"[M] ties \the [src] over their neck!",\
"You tie \the [src] over your neck!")
playsound(user.loc, 'sound/effects/noosed.ogg', 50, 1, -1)
+ SSfeedback.IncrementSimpleStat("hangings")
return 1
else
M.visible_message(\
@@ -1022,6 +1023,7 @@ obj/structure/cable/proc/cableColor(var/colorC)
"[user] ties \the [src] over [M]'s neck!",\
"[user] ties \the [src] over your neck!")
playsound(user.loc, 'sound/effects/noosed.ogg', 50, 1, -1)
+ SSfeedback.IncrementSimpleStat("hangings")
return 1
else
user.visible_message(\