diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm
index a5a11491c32..24ab51761d4 100644
--- a/code/game/objects/items/weapons/tanks/tanks.dm
+++ b/code/game/objects/items/weapons/tanks/tanks.dm
@@ -115,6 +115,20 @@
qdel(src)
+/obj/item/tank/suicide_act(mob/user)
+ var/mob/living/carbon/human/H = user
+ user.visible_message("[user] is putting [src]'s valve to [user.p_their()] lips! It looks like [user.p_theyre()] trying to commit suicide!")
+ playsound(loc, 'sound/effects/spray.ogg', 10, TRUE, -3)
+
+ if(!QDELETED(H) && air_contents && air_contents.return_pressure() >= 1000)
+ var/obj/item/organ/external/head/head = H.get_organ("head")
+ head.disfigure()
+ H.inflate_gib()
+ return OBLITERATION
+
+ to_chat(user, "There isn't enough pressure in [src] to commit suicide with...")
+ return SHAME
+
/obj/item/tank/deconstruct(disassembled = TRUE)
if(!disassembled)
var/turf/T = get_turf(src)
diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm
index 41379559b23..22af245af50 100644
--- a/code/modules/mob/living/death.dm
+++ b/code/modules/mob/living/death.dm
@@ -101,3 +101,9 @@
Weaken(30 SECONDS)
do_jitter_animation(1000, -1) // jitter until they are gibbed
addtimer(CALLBACK(src, .proc/gib), rand(2 SECONDS, 10 SECONDS))
+
+/mob/living/carbon/proc/inflate_gib() // Plays an animation that makes mobs appear to inflate before finally gibbing
+ addtimer(CALLBACK(src, .proc/gib, null, null, TRUE, TRUE), 25)
+ var/matrix/M = matrix()
+ M.Scale(1.8, 1.2)
+ animate(src, time = 40, transform = M, easing = SINE_EASING)