diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index abd76950ae0..0e2ff47e7ca 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -69,13 +69,15 @@
SEND_SIGNAL(t_loc, COMSIG_TURF_MAKE_DRY, TURF_WET_WATER, TRUE, INFINITY)
/obj/item/clothing/shoes/clown_shoes
- desc = "The prankster's standard-issue clowning shoes. Damn, they're huge!"
+ desc = "The prankster's standard-issue clowning shoes. Damn, they're huge! Ctrl-click to toggle waddle dampeners."
name = "clown shoes"
icon_state = "clown"
item_state = "clown_shoes"
slowdown = SHOES_SLOWDOWN+1
item_color = "clown"
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes/clown
+ var/datum/component/waddle
+ var/enabled_waddle = FALSE
/obj/item/clothing/shoes/clown_shoes/Initialize()
. = ..()
@@ -83,14 +85,30 @@
/obj/item/clothing/shoes/clown_shoes/equipped(mob/user, slot)
. = ..()
+ if(slot == SLOT_SHOES && enabled_waddle)
+ waddle = user.AddComponent(/datum/component/waddling)
if(user.mind && user.mind.assigned_role == "Clown")
SEND_SIGNAL(user, COMSIG_CLEAR_MOOD_EVENT, "noshoes")
/obj/item/clothing/shoes/clown_shoes/dropped(mob/user)
. = ..()
+ QDEL_NULL(waddle)
if(user.mind && user.mind.assigned_role == "Clown")
SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "noshoes", /datum/mood_event/noshoes)
+/obj/item/clothing/shoes/clown_shoes/CtrlClick(mob/living/user)
+ if(!isliving(user))
+ return
+ if(user.get_active_held_item() != src)
+ to_chat(user, "You must hold the [src] in your hand to do this.")
+ return
+ if (!enabled_waddle)
+ to_chat(user, "You switch off the waddle dampeners!")
+ enabled_waddle = TRUE
+ else
+ to_chat(user, "You switch on the waddle dampeners!")
+ enabled_waddle = FALSE
+
/obj/item/clothing/shoes/clown_shoes/jester
name = "jester shoes"
desc = "A court jester's shoes, updated with modern squeaking technology."