diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm
index 65a2c04fab8..ebe01302a83 100644
--- a/code/modules/paperwork/pen.dm
+++ b/code/modules/paperwork/pen.dm
@@ -127,9 +127,12 @@
if(reagents.total_volume && M.reagents)
transfered = reagents.trans_to(M, 50)
-
to_chat(user, "You sneakily stab [M] with the pen.")
add_attack_logs(user, M, "Stabbed with (sleepy) [src]. [transfered]u of reagents transfered from pen containing [english_list(contained)].")
+ for(var/datum/reagent/R as anything in reagents.reagent_list)
+ if(initial(R.id) == "????") // Yes this is a specific case that we don't really want
+ return TRUE
+ reagents.reaction(M, REAGENT_INGEST, 0.1)
return TRUE
diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm
index 50d11ce9be5..2a4a68c2c02 100644
--- a/code/modules/projectiles/projectile/bullets.dm
+++ b/code/modules/projectiles/projectile/bullets.dm
@@ -264,8 +264,13 @@
if(blocked != INFINITY)
if(M.can_inject(null, FALSE, hit_zone, piercing)) // Pass the hit zone to see if it can inject by whether it hit the head or the body.
..()
+ for(var/datum/reagent/R as anything in reagents.reagent_list)
+ if(initial(R.id) == "????") // Yes this is a specific case that we don't really want
+ reagents.trans_to(M, reagents.total_volume)
+ return TRUE
reagents.trans_to(M, reagents.total_volume)
- return 1
+ reagents.reaction(M, REAGENT_INGEST, 0.1)
+ return TRUE
else
blocked = INFINITY
target.visible_message("[src] was deflected!", \
@@ -273,7 +278,7 @@
..(target, blocked, hit_zone)
reagents.set_reacting(TRUE)
reagents.handle_reactions()
- return 1
+ return TRUE
/obj/item/projectile/bullet/dart/metalfoam
diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm
index 911a4a02aaf..0ecd916900e 100644
--- a/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/code/modules/reagents/reagent_containers/hypospray.dm
@@ -46,7 +46,10 @@
var/contained = english_list(injected)
add_attack_logs(user, M, "Injected with [src] containing ([contained])", reagents.harmless_helper() ? ATKLOG_ALMOSTALL : null)
-
+ for(var/datum/reagent/R as anything in reagents.reagent_list)
+ if(initial(R.id) == "????") // Yes this is a specific case that we don't really want
+ return TRUE
+ reagents.reaction(M, REAGENT_INGEST, 0.1)
return TRUE
/obj/item/reagent_containers/hypospray/on_reagent_change()