diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index f7d13de37c..8c88f0d4c0 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -49,7 +49,7 @@
return 0
if(!(P.original == src && P.firer == src)) //can't block or reflect when shooting yourself
- if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam))
+ if(P.is_reflectable)
if(check_reflect(def_zone)) // Checks if you've passed a reflection% check
visible_message("The [P.name] gets reflected by [src]!", \
"The [P.name] gets reflected by [src]!")
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index aa0f7ffc11..c28c2458f7 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -40,6 +40,7 @@
var/flag = "bullet" //Defines what armor to use when it hits things. Must be set to bullet, laser, energy,or bomb
var/projectile_type = /obj/item/projectile
var/range = 50 //This will de-increment every step. When 0, it will delete the projectile.
+ var/is_reflectable = FALSE // Can it be reflected or not?
//Effects
var/stun = 0
var/knockdown = 0
diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm
index 61e109b454..574f713e3f 100644
--- a/code/modules/projectiles/projectile/beams.dm
+++ b/code/modules/projectiles/projectile/beams.dm
@@ -13,6 +13,7 @@
light_color = LIGHT_COLOR_RED
ricochets_max = 50 //Honk!
ricochet_chance = 80
+ is_reflectable = TRUE
/obj/item/projectile/beam/laser
diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm
index a792a37c37..57a73633cd 100644
--- a/code/modules/projectiles/projectile/energy.dm
+++ b/code/modules/projectiles/projectile/energy.dm
@@ -4,6 +4,7 @@
damage = 0
damage_type = BURN
flag = "energy"
+ is_reflectable = TRUE
/obj/item/projectile/energy/chameleon
nodamage = TRUE