diff --git a/code/game/objects/items/devices/instruments.dm b/code/game/objects/items/devices/instruments.dm
index d9bb7bc4c65..e2dabff728c 100644
--- a/code/game/objects/items/devices/instruments.dm
+++ b/code/game/objects/items/devices/instruments.dm
@@ -16,6 +16,10 @@
song = null
return ..()
+/obj/item/device/instrument/suicide_act(mob/user)
+ user.visible_message("[user] begins to play 'Gloomy Sunday'! It looks like \he's trying to commit suicide..")
+ return (BRUTELOSS)
+
/obj/item/device/instrument/initialize()
song.tempo = song.sanitize_tempo(song.tempo) // tick_lag isn't set when the map is loaded
..()
diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm
index ac9a3f0fe7e..ae2ab00c9ef 100644
--- a/code/game/objects/items/devices/radio/electropack.dm
+++ b/code/game/objects/items/devices/radio/electropack.dm
@@ -13,6 +13,10 @@
var/frequency = 1449
var/shock_cooldown = 0
+/obj/item/device/electropack/suicide_act(mob/user)
+ user.visible_message("[user] hooks \himself to the electropack and spams the trigger! It looks like \he's trying to commit suicide..")
+ return (FIRELOSS)
+
/obj/item/device/electropack/initialize()
if(radio_controller)
radio_controller.add_object(src, frequency, RADIO_CHAT)
diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm
index 63baee79c37..195b367a033 100644
--- a/code/game/objects/items/weapons/RCD.dm
+++ b/code/game/objects/items/weapons/RCD.dm
@@ -63,6 +63,10 @@ RCD
var/deconwindowdelay = 50
var/deconairlockdelay = 50
+/obj/item/weapon/rcd/suicide_act(mob/user)
+ user.visible_message("[user] sets the RCD to 'Wall' and points it down his throat! It looks like \he's trying to commit suicide..")
+ return (BRUTELOSS)
+
/obj/item/weapon/rcd/verb/change_airlock_access()
set name = "Change Airlock Access"
set category = "Object"
diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm
index 2412edfe9cd..e7415d55fd1 100644
--- a/code/game/objects/items/weapons/clown_items.dm
+++ b/code/game/objects/items/weapons/clown_items.dm
@@ -35,6 +35,11 @@
icon_state = "soapsyndie"
cleanspeed = 10 //much faster than mop so it is useful for traitors who want to clean crime scenes
+/obj/item/weapon/soap/suicide_act(mob/user)
+ user.visible_message("[user] crams the bar of soap down \his throat! It looks like \he's trying to commit suicide..")
+ . = TOXLOSS
+ src.loc = user
+
/obj/item/weapon/soap/Crossed(AM as mob|obj)
if (istype(AM, /mob/living/carbon))
var/mob/living/carbon/M = AM
@@ -86,6 +91,11 @@
var/honksound = 'sound/items/bikehorn.ogg'
var/cooldowntime = 20
+/obj/item/weapon/bikehorn/suicide_act(mob/user)
+ user.visible_message("[user] solemnly points the horn at \his temple! It looks like \he's trying to commit suicide..")
+ playsound(src.loc, honksound, 50, 1)
+ return (BRUTELOSS)
+
/obj/item/weapon/bikehorn/attack(mob/living/carbon/M, mob/living/carbon/user)
if(!spam_flag)
playsound(loc, honksound, 50, 1, -1) //plays instead of tap.ogg!
diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm
index 1046feaaa06..fb2e6781181 100644
--- a/code/game/objects/items/weapons/explosives.dm
+++ b/code/game/objects/items/weapons/explosives.dm
@@ -41,6 +41,8 @@
message_say = "FOR NAR-SIE!"
else if(role == "revolutionary" || role == "head revolutionary")
message_say = "VIVA LA REVOLUTION!"
+ else if(user.mind.gang_datum)
+ message_say = "[uppertext(user.mind.gang_datum.name)] RULES!"
user.say(message_say)
target = user
message_admins("[key_name_admin(user)](?) (FLW) suicided with [src.name] at ([x],[y],[z] - JMP)",0,1)
diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index 41ff286953f..f9193ad9bb3 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -650,6 +650,10 @@
icon_state = "hugbox"
foldable = null
+/obj/item/weapon/storage/box/hug/suicide_act(mob/user)
+ user.visible_message("[user] clamps the box of hugs on \his jugular! Guess it wasn't such a hugbox after all..")
+ return (BRUTELOSS)
+
/obj/item/weapon/storage/box/hug/attack_self(mob/user)
..()
user.changeNext_move(CLICK_CD_MELEE)
diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm
index 4d3e413f51d..d20fc00612a 100644
--- a/code/game/objects/items/weapons/storage/toolbox.dm
+++ b/code/game/objects/items/weapons/storage/toolbox.dm
@@ -99,4 +99,8 @@
new /obj/item/weapon/crowbar(src)
new /obj/item/stack/cable_coil(src,30,color)
new /obj/item/weapon/wirecutters(src)
- new /obj/item/device/multitool(src)
\ No newline at end of file
+ new /obj/item/device/multitool(src)
+
+/obj/item/weapon/storage/toolbox/suicide_act(mob/user)
+ user.visible_message("[user] robusts \himself with the toolbox! It looks like \he's trying to commit suicide..")
+ return (BRUTELOSS)
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm
index 9f54eeaace4..c7a857f059b 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -195,6 +195,10 @@
..()
user << "It contains [get_fuel()] unit\s of fuel out of [max_fuel]."
+/obj/item/weapon/weldingtool/suicide_act(mob/user)
+ user.visible_message("[user] welds \his every orifice closed! It looks like \he's trying to commit suicide..")
+ return (FIRELOSS)
+
/obj/item/weapon/weldingtool/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm
index 779df4e79c1..fe8010e74f5 100644
--- a/code/game/objects/items/weapons/twohanded.dm
+++ b/code/game/objects/items/weapons/twohanded.dm
@@ -161,6 +161,10 @@
icon_state = "fireaxe[wielded]"
return
+/obj/item/weapon/twohanded/fireaxe/suicide_act(mob/user)
+ user.visible_message("[user] axes \himself from head to toe! It looks like \he's trying to commit suicide..")
+ return (BRUTELOSS)
+
/obj/item/weapon/twohanded/fireaxe/afterattack(atom/A as mob|obj|turf|area, mob/user, proximity)
if(!proximity) return
if(A && wielded && (istype(A,/obj/structure/window) || istype(A,/obj/structure/grille))) //destroys windows and grilles in one hit
diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm
index 7334590239e..06f917a668b 100644
--- a/code/modules/hydroponics/seeds.dm
+++ b/code/modules/hydroponics/seeds.dm
@@ -1339,21 +1339,29 @@
if(parent)
mutations = parent.mutations
+/obj/item/seeds/kudzuseed/suicide_act(mob/user)
+ user.visible_message("[user] swallows the pack of kudzu seeds! It looks like \he's trying to commit suicide..")
+ plant(user)
+ return (BRUTELOSS)
+
/obj/item/seeds/kudzuseed/harvest()
var/list/prod = ..()
for(var/obj/item/weapon/reagent_containers/food/snacks/grown/kudzupod/K in prod)
K.mutations = mutations
-/obj/item/seeds/kudzuseed/attack_self(mob/user)
+/obj/item/seeds/kudzuseed/proc/plant(mob/user)
if(istype(user.loc,/turf/space))
return
var/turf/T = get_turf(src)
- user << "You plant the kudzu. You monster."
message_admins("Kudzu planted by [key_name_admin(user)](?) (FLW) at ([T.x],[T.y],[T.z] - (JMP))",0,1)
investigate_log("was planted by [key_name(user)] at ([T.x],[T.y],[T.z])","kudzu")
new /obj/effect/spacevine_controller(user.loc, mutations, potency, production)
qdel(src)
+/obj/item/seeds/kudzuseed/attack_self(mob/user)
+ plant(user)
+ user << "You plant the kudzu. You monster."
+
/obj/item/seeds/kudzuseed/get_analyzer_text()
var/list/mut_text = list()
var/text_string = ""
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index 411f5de8522..2218bda0a71 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -82,6 +82,9 @@
name = "paper[(n_name ? text("- '[n_name]'") : null)]"
add_fingerprint(usr)
+/obj/item/weapon/paper/suicide_act(mob/user)
+ user.visible_message("[user] scratches a grid on their wrist with the paper! It looks like \he's trying to commit sudoku..")
+ return (BRUTELOSS)
/obj/item/weapon/paper/attack_self(mob/user)
user.examinate(src)
diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm
index b0ba982348e..af800ecefb7 100644
--- a/code/modules/projectiles/guns/magic.dm
+++ b/code/modules/projectiles/guns/magic.dm
@@ -74,6 +74,6 @@
return
/obj/item/weapon/gun/magic/suicide_act(mob/user)
- user.visible_message("[user] is casting a spell on themself with the [src.name]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is twisting the [src.name] above \his head, releasing a magical blast! It looks like \he's trying to commit suicide.")
playsound(loc, fire_sound, 50, 1, -1)
return (FIRELOSS)
\ No newline at end of file