diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm
index c0b3e188..b78d9d9e 100644
--- a/code/modules/mob/living/simple_animal/friendly/mouse.dm
+++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm
@@ -193,3 +193,19 @@
atmos_spawn_air("plasma=15;TEMP=750")
explosion(src.loc, 0, 0, 2, 0, 1, 0, 2, 0, 0)
qdel(src)
+
+/mob/living/simple_animal/mouse/boommouse/attackby(obj/item/I, mob/living/user, params)
+ var/turf/T = get_turf(src)
+ message_admins("[ADMIN_LOOKUPFLW(user)] is attacking a boommouse at [ADMIN_VERBOSEJMP(T)].")
+ if(istype(I, /obj/item/weldingtool))
+ var/obj/item/weldingtool/W = I
+ if(W.welding)
+ user.visible_message("[user] burns the boommouse with [user.p_their()] [W.name]!", "That was stupid of you.")
+ var/message_admins = "[ADMIN_LOOKUPFLW(params)] triggered a boommouse explosion at [ADMIN_VERBOSEJMP(T)]."
+ GLOB.bombers += message_admins
+ message_admins(message_admins)
+ user.log_message("triggered a boommouse explosion.", LOG_ATTACK)
+ death()
+ return ..()
+
+ //TODO - look into attacked_by to make this better and less shitcode