diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm
index d5105e652ac..552001c60ca 100644
--- a/code/__DEFINES/admin.dm
+++ b/code/__DEFINES/admin.dm
@@ -101,6 +101,7 @@
#define ADMIN_PUNISHMENT_CRACK ":B:oneless"
#define ADMIN_PUNISHMENT_BLEED ":B:loodless"
#define ADMIN_PUNISHMENT_SCARIFY "Scarify"
+#define ADMIN_PUNISHMENT_SHOES "Knot Shoes"
#define AHELP_ACTIVE 1
#define AHELP_CLOSED 2
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 6598df12c60..69490e9fca6 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -1069,7 +1069,8 @@ Traitors and the like can also be revived with the previous role mostly intact.
ADMIN_PUNISHMENT_NUGGET,
ADMIN_PUNISHMENT_CRACK,
ADMIN_PUNISHMENT_BLEED,
- ADMIN_PUNISHMENT_SCARIFY
+ ADMIN_PUNISHMENT_SCARIFY,
+ ADMIN_PUNISHMENT_SHOES
)
var/punishment = input("Choose a punishment", "DIVINE SMITING") as null|anything in sortList(punishment_list)
@@ -1180,6 +1181,16 @@ Traitors and the like can also be revived with the previous role mostly intact.
var/mob/living/carbon/C = target
C.generate_fake_scars(rand(1, 4))
to_chat(C, "You feel your body grow jaded and torn...")
+ if(ADMIN_PUNISHMENT_SHOES)
+ if(!iscarbon(target))
+ to_chat(usr,"This must be used on a carbon mob.", confidential = TRUE)
+ return
+ var/mob/living/carbon/C = target
+ var/obj/item/clothing/shoes/sick_kicks = C.shoes
+ if(!sick_kicks?.can_be_tied)
+ to_chat(usr,"[C] does not have knottable shoes!", confidential = TRUE)
+ return
+ sick_kicks.adjust_laces(SHOES_KNOTTED)
punish_log(target, punishment)