diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm
index 23b8c8bed37..a76ef4daec1 100644
--- a/code/game/objects/items/weapons/weaponry.dm
+++ b/code/game/objects/items/weapons/weaponry.dm
@@ -326,3 +326,15 @@
attack_verb = list("swatted", "smacked")
hitsound = 'sound/effects/snap.ogg'
w_class = 2
+
+/obj/item/weapon/melee/flyswatter/afterattack(atom/target, mob/user, proximity_flag)
+ if(proximity_flag)
+ if(istype(target, /mob/living/simple_animal/hostile/poison/bees/) || istype(target, /mob/living/simple_animal/butterfly) || istype(target, /mob/living/simple_animal/cockroach))
+ var/mob/living/simple_animal/bug = target
+ new /obj/effect/decal/cleanable/deadcockroach(get_turf(bug))
+ bug.death(1)
+ user << "You easily splat the [bug]."
+ else if(istype(target, /obj/item/queen_bee/))
+ qdel(target)
+ new /obj/effect/decal/cleanable/deadcockroach(get_turf(target))
+ user << "You easily splat the [target]."
diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm
index 485640b3910..090acccab7b 100644
--- a/code/modules/mob/living/simple_animal/hostile/bees.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bees.dm
@@ -243,13 +243,6 @@
return 1
return 0
-/mob/living/simple_animal/hostile/poison/bees/attacked_by(obj/item/I, mob/living/user)
- . = ..()
- if(istype(I, /obj/item/weapon/melee/flyswatter))
- user << "You easily splat the [src]."
- new /obj/effect/decal/cleanable/deadcockroach(get_turf(src))
- death(1)
-
/obj/item/queen_bee
name = "queen bee"
desc = "She's the queen of bees, BZZ BZZ!"
@@ -282,10 +275,6 @@
name = queen.name
else
user << "You don't have enough units of that chemical to modify the bee's DNA!"
- if(istype(I,/obj/item/weapon/melee/flyswatter))
- user << "You easily splat the [src]."
- new /obj/effect/decal/cleanable/deadcockroach(get_turf(src))
- qdel(src)
..()