diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm
index 02f18a39cd4..f0b6f20aacc 100644
--- a/code/game/objects/items/tools/wirecutters.dm
+++ b/code/game/objects/items/tools/wirecutters.dm
@@ -43,10 +43,21 @@
return ..()
/obj/item/wirecutters/suicide_act(mob/user)
- user.visible_message("[user] is cutting at [user.p_their()] arteries with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
+ user.visible_message("[user] is cutting at [user.p_their()] [is_robotic_suicide(user) ? "wiring" : "arteries"] with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
playsound(loc, usesound, 50, 1, -1)
return BRUTELOSS
+/obj/item/wirecutters/proc/is_robotic_suicide(mob/user)
+ if(!ishuman(user))
+ return FALSE
+
+ var/mob/living/carbon/human/H = user
+ var/obj/item/organ/external/chest/chest = H.bodyparts_by_name["chest"]
+ if(!chest)
+ return FALSE
+
+ return chest.is_robotic()
+
/obj/item/wirecutters/security
name = "security wirecutters"
desc = "A pair of wirecutters with a tactical grip and robust build."
@@ -125,15 +136,27 @@
random_color = FALSE
/obj/item/wirecutters/power/suicide_act(mob/user)
- user.visible_message("[user] is wrapping \the [src] around [user.p_their()] neck. It looks like [user.p_theyre()] trying to rip [user.p_their()] head off!")
- playsound(loc, 'sound/items/jaws_cut.ogg', 50, 1, -1)
- if(ishuman(user))
- var/mob/living/carbon/human/H = user
- var/obj/item/organ/external/head/head = H.bodyparts_by_name["head"]
- if(head)
- head.droplimb(0, DROPLIMB_BLUNT, FALSE, TRUE)
- playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1)
- return BRUTELOSS
+ user.visible_message("[user] is wrapping [src] around [user.p_their()] neck. It looks like [user.p_theyre()] trying to rip [user.p_their()] head off!")
+
+ if(!use_tool(user, user, 3 SECONDS, volume = tool_volume))
+ return SHAME
+
+ if(!ishuman(user))
+ return BRUTELOSS
+
+ var/mob/living/carbon/human/H = user
+ var/obj/item/organ/external/head/head = H.bodyparts_by_name["head"]
+ if(!head)
+ user.visible_message("...but [user.p_they()] [user.p_are()] already headless! How embarassing.")
+ return SHAME
+
+ head.droplimb(FALSE, DROPLIMB_SHARP, FALSE, TRUE)
+
+ if(user.stat != DEAD)
+ user.visible_message("...but [user.p_they()] didn't need it anyway! How embarassing.")
+ return SHAME
+
+ return OXYLOSS
/obj/item/wirecutters/power/attack_self(mob/user)
playsound(get_turf(user), 'sound/items/change_jaws.ogg', 50, 1)
diff --git a/code/game/objects/items/tools/wrench.dm b/code/game/objects/items/tools/wrench.dm
index 438421f849c..06188fd2244 100644
--- a/code/game/objects/items/tools/wrench.dm
+++ b/code/game/objects/items/tools/wrench.dm
@@ -20,9 +20,27 @@
tool_behaviour = TOOL_WRENCH
/obj/item/wrench/suicide_act(mob/user)
- user.visible_message("[user] is beating [user.p_themselves()] to death with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
- playsound(loc, 'sound/weapons/genhit.ogg', 50, 1, -1)
- return BRUTELOSS
+ user.visible_message("[user] is unsecuring [user.p_their()] head with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
+
+ if(!use_tool(user, user, 3 SECONDS, volume = tool_volume))
+ return SHAME
+
+ if(!ishuman(user))
+ return BRUTELOSS
+
+ var/mob/living/carbon/human/H = user
+ var/obj/item/organ/external/head/head = H.bodyparts_by_name["head"]
+ if(!head)
+ user.visible_message("...but [user.p_they()] [user.p_are()] already headless! How embarassing.")
+ return SHAME
+
+ head.droplimb(TRUE, DROPLIMB_SHARP, FALSE, TRUE)
+
+ if(user.stat != DEAD)
+ user.visible_message("...but [user.p_they()] didn't need it anyway! How embarassing.")
+ return SHAME
+
+ return OXYLOSS
/obj/item/wrench/cyborg
name = "automatic wrench"