diff --git a/code/game/machinery/porta_turret/portable_turret_construct.dm b/code/game/machinery/porta_turret/portable_turret_construct.dm
index 59a4446420..7c2000175e 100644
--- a/code/game/machinery/porta_turret/portable_turret_construct.dm
+++ b/code/game/machinery/porta_turret/portable_turret_construct.dm
@@ -79,6 +79,9 @@
if(PTURRET_INTERNAL_ARMOUR_ON)
if(istype(I, /obj/item/gun/energy)) //the gun installation part
var/obj/item/gun/energy/E = I
+ if(!E.can_turret)
+ to_chat(user, "[src] can't be fit into turrets.")
+ return
if(!user.transferItemToLoc(E, src))
return
installed_gun = E
diff --git a/code/modules/integrated_electronics/subtypes/weaponized.dm b/code/modules/integrated_electronics/subtypes/weaponized.dm
index 950525ab7f..96a732d08f 100644
--- a/code/modules/integrated_electronics/subtypes/weaponized.dm
+++ b/code/modules/integrated_electronics/subtypes/weaponized.dm
@@ -45,6 +45,9 @@
/obj/item/integrated_circuit/weaponized/weapon_firing/attackby(var/obj/O, var/mob/user)
if(istype(O, /obj/item/gun/energy))
var/obj/item/gun/gun = O
+ if(!gun.can_circuit)
+ to_chat(user, "[gun] does not fit into circuits.")
+ return
if(installed_gun)
to_chat(user, "There's already a weapon installed.")
return
diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm
index 0d182e0a1b..50dae7d6bb 100644
--- a/code/modules/power/singularity/emitter.dm
+++ b/code/modules/power/singularity/emitter.dm
@@ -315,6 +315,9 @@
/obj/machinery/power/emitter/proc/integrate(obj/item/gun/energy/E,mob/user)
if(istype(E, /obj/item/gun/energy))
+ if(!E.can_emitter)
+ to_chat(user, "[E] cannot fit into emitters.")
+ return
if(!user.transferItemToLoc(E, src))
return
gun = E
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 69f2d44fa4..4126c81367 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -29,6 +29,13 @@
trigger_guard = TRIGGER_GUARD_NORMAL //trigger guard on the weapon, hulks can't fire them with their big meaty fingers
var/sawn_desc = null //description change if weapon is sawn-off
var/sawn_off = FALSE
+
+ /// can we be put into a turret
+ var/can_turret = TRUE
+ /// can we be put in a circuit
+ var/can_circuit = TRUE
+ /// can we be put in an emitter
+ var/can_emitter = TRUE
/// Weapon is burst fire if this is above 1
var/burst_size = 1
diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm
index bcb074023f..fd09aa7f9d 100644
--- a/code/modules/projectiles/guns/misc/beam_rifle.dm
+++ b/code/modules/projectiles/guns/misc/beam_rifle.dm
@@ -29,6 +29,8 @@
ammo_type = list(/obj/item/ammo_casing/energy/beam_rifle/hitscan)
cell_type = /obj/item/stock_parts/cell/beam_rifle
canMouseDown = TRUE
+ can_turret = FALSE
+ can_circuit = FALSE
//Cit changes: beam rifle stats.
slowdown = 1
item_flags = NO_MAT_REDEMPTION | SLOWS_WHILE_IN_HAND | NEEDS_PERMIT
@@ -418,10 +420,10 @@
var/wall_devastate = 0
var/aoe_structure_range = 0
var/aoe_structure_damage = 0
- var/aoe_fire_range = 0
- var/aoe_fire_chance = 0
- var/aoe_mob_range = 0
- var/aoe_mob_damage = 0
+ var/aoe_fire_range = 2
+ var/aoe_fire_chance = 100
+ var/aoe_mob_range = 2
+ var/aoe_mob_damage = 30
var/impact_structure_damage = 0
var/impact_direct_damage = 0
var/turf/cached