diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm
index 126c1ea4c6..e8f718e590 100644
--- a/code/_onclick/item_attack.dm
+++ b/code/_onclick/item_attack.dm
@@ -125,7 +125,11 @@
if(prob(33))
I.add_mob_blood(src)
var/turf/location = get_turf(src)
- bleed(totitemdamage)
+ if(iscarbon(src))
+ var/mob/living/carbon/C = src
+ C.bleed(totitemdamage)
+ else
+ add_splatter_floor(location)
if(totitemdamage >= 10 && get_dist(user, src) <= 1) //people with TK won't get smeared with blood
user.add_mob_blood(src)
return TRUE //successful attack
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index 99b3120b0f..9c01c186e1 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -327,7 +327,11 @@
L.adjustBruteLoss(DOOR_CRUSH_DAMAGE)
var/turf/location = get_turf(src)
//add_blood doesn't work for borgs/xenos, but add_blood_floor does.
- L.bleed(DOOR_CRUSH_DAMAGE)
+ if(iscarbon(L))
+ var/mob/living/carbon/C = L
+ C.bleed(DOOR_CRUSH_DAMAGE)
+ else
+ L.add_splatter_floor(location)
for(var/obj/mecha/M in get_turf(src))
M.take_damage(DOOR_CRUSH_DAMAGE)
diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm
index 75b34b22f6..b9a75f88af 100644
--- a/code/game/objects/structures/kitchen_spike.dm
+++ b/code/game/objects/structures/kitchen_spike.dm
@@ -75,7 +75,11 @@
L.visible_message("[user] slams [L] onto the meat spike!", "[user] slams you onto the meat spike!", "You hear a squishy wet noise.")
L.forceMove(drop_location())
L.emote("scream")
- L.bleed(30)
+ if(iscarbon(L))
+ var/mob/living/carbon/C = L
+ C.bleed(30)
+ else
+ L.add_splatter_floor()
L.adjustBruteLoss(30)
L.setDir(2)
buckle_mob(L, force=1)