From a33977cc80d98d7507ddafab70c8a85dad5861dd Mon Sep 17 00:00:00 2001
From: Mathilde <146444134+ibexgoetia@users.noreply.github.com>
Date: Wed, 21 Jan 2026 19:56:45 +0100
Subject: [PATCH] Adds the Clicker (#5106)
## About The Pull Request
I was surprised to see that no one had ever added a clicker item, so I
decided to take the challenge and tried to add one myself. This little
item can be found in the lustwish vendors. It makes a 'click' sound when
interacted.
The sprite is inspired by the flash, but remade with the lustwish
'theme'.
Dominant characters who use this are also able to 'reward' submissive
characters. The submissive characters will do an emote (which shares the
cooldown with the *snap interaction, that being 10 seconds). They will
also get a tiny mood buff that will last for two minutes, and doesn't
stack.
It works on cyborgs with the submissive module (without the mood buff,
clearly), and cyborgs with the dominant module have access to the toy.
It can be bought from the lustwish vendor.
## Why It's Good For The Game
We've got an overwhelming amount of untrained bottoms.
## Proof Of Testing
https://github.com/user-attachments/assets/72b15bf2-d468-4e72-ae64-7216a65cc12c
Here's the borg module version.

## Changelog
:cl:
add: Lustwish presents the Clicker! With this you will now finally be
able to train and condition your pets. Visit any Lustwish vendor to buy
your own.
/:cl:
---------
Co-authored-by: Alexis
---
.../modules/borgs/code/robot_upgrade.dm | 1 +
.../lewd_items/code/lewd_clothing/erp_belt.dm | 1 +
.../_erp_disabled_item_enforcement.dm | 5 ++
.../code/_globalvars/lists/erp_items.dm | 1 +
.../code/modules/lewd_machinery/clicker.dm | 75 ++++++++++++++++++
.../code/modules/vending/lustwish.dm | 10 +++
modular_zubbers/icons/obj/lewd.dmi | Bin 0 -> 920 bytes
modular_zubbers/sound/lewd/clicker.ogg | Bin 0 -> 8765 bytes
tgstation.dme | 1 +
9 files changed, 94 insertions(+)
create mode 100644 modular_zubbers/code/modules/lewd_machinery/clicker.dm
create mode 100644 modular_zubbers/icons/obj/lewd.dmi
create mode 100644 modular_zubbers/sound/lewd/clicker.ogg
diff --git a/modular_skyrat/modules/borgs/code/robot_upgrade.dm b/modular_skyrat/modules/borgs/code/robot_upgrade.dm
index 77af4f0db1d..7b2da6f87b4 100644
--- a/modular_skyrat/modules/borgs/code/robot_upgrade.dm
+++ b/modular_skyrat/modules/borgs/code/robot_upgrade.dm
@@ -331,4 +331,5 @@
/obj/item/spanking_pad,
/obj/item/tickle_feather,
/obj/item/clothing/erp_leash,
+ /obj/item/clicker
)
diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_clothing/erp_belt.dm b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_clothing/erp_belt.dm
index a4eec86abf6..e58e0d36d75 100644
--- a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_clothing/erp_belt.dm
+++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_clothing/erp_belt.dm
@@ -38,6 +38,7 @@
/obj/item/restraints/handcuffs/lewd,
/obj/item/reagent_containers/cup/lewd_filter,
/obj/item/assembly/signaler, //because it's used for several toys
+ /obj/item/clicker,
//clothing
/obj/item/clothing/mask/ballgag,
diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/_erp_disabled_item_enforcement.dm b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/_erp_disabled_item_enforcement.dm
index 176e615653f..ed83de9dcb5 100644
--- a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/_erp_disabled_item_enforcement.dm
+++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_items/_erp_disabled_item_enforcement.dm
@@ -232,3 +232,8 @@
. = ..()
if(CONFIG_GET(flag/disable_lewd_items))
return INITIALIZE_HINT_QDEL
+
+/obj/item/clicker/Initialize(mapload)
+ . = ..()
+ if(CONFIG_GET(flag/disable_lewd_items))
+ return INITIALIZE_HINT_QDEL
diff --git a/modular_zubbers/code/_globalvars/lists/erp_items.dm b/modular_zubbers/code/_globalvars/lists/erp_items.dm
index 82a915157f2..05da84cdb6a 100644
--- a/modular_zubbers/code/_globalvars/lists/erp_items.dm
+++ b/modular_zubbers/code/_globalvars/lists/erp_items.dm
@@ -1,5 +1,6 @@
GLOBAL_LIST_INIT(erp_items, list(
/obj/item/bdsm_candle,
+ /obj/item/clicker,
/obj/item/clothing/ears/kinky_headphones,
/obj/item/clothing/erp_leash,
/obj/item/clothing/glasses/blindfold/kinky,
diff --git a/modular_zubbers/code/modules/lewd_machinery/clicker.dm b/modular_zubbers/code/modules/lewd_machinery/clicker.dm
new file mode 100644
index 00000000000..7a6c477ddf0
--- /dev/null
+++ b/modular_zubbers/code/modules/lewd_machinery/clicker.dm
@@ -0,0 +1,75 @@
+/obj/item/clicker
+ name = "clicker"
+ desc = "A small clicking toy that fits in the palm of your hand, typically used to condition pets into obedience. It makes a satisfying 'click' sound when pressed."
+ icon = 'modular_zubbers/icons/obj/lewd.dmi'
+ icon_state = "clicker_pink"
+ throwforce = 0
+ w_class = WEIGHT_CLASS_TINY
+
+/obj/item/clicker/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/reskinable_item, /datum/atom_skin/clicker)
+
+/datum/atom_skin/clicker
+ abstract_type = /datum/atom_skin/clicker
+
+/datum/atom_skin/clicker/pink
+ preview_name = "Pink"
+ new_icon_state = "clicker_pink"
+
+/datum/atom_skin/clicker/teal
+ preview_name = "Teal"
+ new_icon_state = "clicker_teal"
+
+/obj/item/clicker/proc/click(atom/source, mob/user)
+ SIGNAL_HANDLER
+ source.balloon_alert(user, "click!")
+ playsound(source, "modular_zubbers/sound/lewd/clicker.ogg", 40, FALSE)
+
+/obj/item/clicker/attack_self(mob/user)
+ . = ..()
+ click(src, user)
+
+// If the user has the dominant aura quirk, nearby bottoms will react to the click.
+ if(istype(user, /mob/living))
+ var/mob/living/living_user = user
+ if(living_user.has_quirk(/datum/quirk/dominant_aura) && TIMER_COOLDOWN_FINISHED(living_user, DOMINANT_COOLDOWN_SNAP))
+ for(var/mob/living/carbon/human/sub in hearers(world.view / 2, living_user))
+ if(!sub.has_quirk(/datum/quirk/well_trained) || sub == living_user || sub.stat == DEAD)
+ continue
+
+ if(get_dist(sub, living_user) > world.view / 2)
+ continue
+ sub.dir = get_dir(sub, living_user)
+ sub.emote("me", 1, "suddenly perks up in attention!", TRUE)
+ to_chat(sub, span_purple("You perk up in attention hearing [living_user]'s click!"))
+// Short mood boost for flavour
+ sub.add_mood_event("good_pet", /datum/mood_event/good_pet)
+// Shivering animation
+ animate(sub, pixel_w = 1, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL)
+ for(var/i in 1 to 1 SECONDS / (0.2 SECONDS))
+ animate(pixel_w = -2, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_CONTINUE)
+ animate(pixel_w = 2, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_CONTINUE)
+ animate(pixel_w = -1, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE)
+
+//For the borgs
+ for(var/mob/living/silicon/robot/borg_sub in hearers(world.view / 2, living_user))
+ if(!borg_sub.has_quirk(/datum/quirk/well_trained) || borg_sub == living_user || borg_sub.stat == DEAD)
+ continue
+ borg_sub.dir = get_dir(borg_sub, living_user)
+ borg_sub.emote("me", 1, "suddenly perks up in attention!", TRUE)
+ to_chat(borg_sub, span_purple("You perk up in attention hearing [living_user]'s click!"))
+// Shivering animation
+ animate(borg_sub, pixel_w = 1, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL)
+ for(var/i in 1 to 1 SECONDS / (0.2 SECONDS))
+ animate(pixel_w = -2, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_CONTINUE)
+ animate(pixel_w = 2, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_CONTINUE)
+ animate(borg_sub, pixel_w = -1, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE)
+
+// Shares cooldown with the dominant aura snap
+ TIMER_COOLDOWN_START(living_user, DOMINANT_COOLDOWN_SNAP, 10 SECONDS)
+
+/datum/mood_event/good_pet
+ description = span_nicegreen("Being obedient feels rewarding!")
+ mood_change = 2
+ timeout = 2 MINUTES
diff --git a/modular_zubbers/code/modules/vending/lustwish.dm b/modular_zubbers/code/modules/vending/lustwish.dm
index 9120bb7ebe6..8ef32a2852f 100644
--- a/modular_zubbers/code/modules/vending/lustwish.dm
+++ b/modular_zubbers/code/modules/vending/lustwish.dm
@@ -22,9 +22,19 @@
/obj/item/clothing/under/costume/loincloth/cloth/sensor = 6,
/obj/item/clothing/shoes/jackboots/toeless = 6,
)
+ ),
+
+ list(
+ "name" = "Toys",
+ "icon" = FA_ICON_MAGIC_WAND_SPARKLES,
+ "products" = list(
+ /obj/item/clicker = 6,
+
+ )
)
)
+
zubbers_premium = list(
/obj/item/clothing/neck/kink_collar/locked/gps = 3,
/obj/item/holosign_creator/sex = 6,
diff --git a/modular_zubbers/icons/obj/lewd.dmi b/modular_zubbers/icons/obj/lewd.dmi
new file mode 100644
index 0000000000000000000000000000000000000000..96574fa622d4c31136b3996322e2b092e292d0a1
GIT binary patch
literal 920
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
literal 0
HcmV?d00001
diff --git a/tgstation.dme b/tgstation.dme
index 15af33e4aeb..254a5cd21dd 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -9463,6 +9463,7 @@
#include "modular_zubbers\code\modules\languages\siikmaas.dm"
#include "modular_zubbers\code\modules\languages\uncommon.dm"
#include "modular_zubbers\code\modules\languages\vampiric.dm"
+#include "modular_zubbers\code\modules\lewd_machinery\clicker.dm"
#include "modular_zubbers\code\modules\lewd_machinery\lustwish.dm"
#include "modular_zubbers\code\modules\lewd_machinery\sex_barrier.dm"
#include "modular_zubbers\code\modules\limbgrowncorpses\limbgrowerblanks.dm"