diff --git a/code/game/objects/items/devices/modkit.dm b/code/game/objects/items/devices/modkit.dm
index a1de93987f1..02d11f22519 100644
--- a/code/game/objects/items/devices/modkit.dm
+++ b/code/game/objects/items/devices/modkit.dm
@@ -14,7 +14,10 @@
/obj/item/clothing/suit/space/rig
)
-/obj/item/device/modkit/afterattack(obj/O, mob/user as mob)
+/obj/item/device/modkit/afterattack(obj/O, mob/user as mob, proximity)
+ if(!proximity)
+ return
+
if (!target_species)
return //it shouldn't be null, okay?
@@ -38,6 +41,7 @@
var/in_list = (target_species in I.species_restricted)
if (excluding ^ in_list)
user << "[I] is already modified."
+ return
if(!isturf(O.loc))
user << "[O] must be safely placed on the ground for modification."
diff --git a/code/game/objects/items/devices/pipe_painter.dm b/code/game/objects/items/devices/pipe_painter.dm
index 3a062adca48..5d900fb3e72 100644
--- a/code/game/objects/items/devices/pipe_painter.dm
+++ b/code/game/objects/items/devices/pipe_painter.dm
@@ -6,7 +6,10 @@
var/list/modes = list("grey","red","blue","cyan","green","yellow","purple")
var/mode = "grey"
-/obj/item/device/pipe_painter/afterattack(atom/A, mob/user as mob)
+/obj/item/device/pipe_painter/afterattack(atom/A, mob/user as mob, proximity)
+ if(!proximity)
+ return
+
if(!istype(A,/obj/machinery/atmospherics/pipe) || istype(A,/obj/machinery/atmospherics/pipe/tank) || istype(A,/obj/machinery/atmospherics/pipe/vent) || istype(A,/obj/machinery/atmospherics/pipe/simple/heat_exchanging) || istype(A,/obj/machinery/atmospherics/pipe/simple/insulated) || !in_range(user, A))
return
var/obj/machinery/atmospherics/pipe/P = A
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 441dee233ad..ffffe00490c 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -386,7 +386,9 @@ REAGENT SCANNER
var/details = 0
var/recent_fail = 0
-/obj/item/device/reagent_scanner/afterattack(obj/O, mob/user as mob)
+/obj/item/device/reagent_scanner/afterattack(obj/O, mob/user as mob, proximity)
+ if(!proximity)
+ return
if (user.stat)
return
if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")