diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index 9b608c1e2998..86fe012c5054 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -144,13 +144,17 @@
to_chat(user, "[src] is [round(cell.percent())]% charged.")
/obj/item/gun/energy/plasmacutter/attackby(obj/item/I, mob/user)
+ var/charge_multiplier = 0 //2 = Refined stack, 1 = Ore
if(istype(I, /obj/item/stack/sheet/mineral/plasma))
+ charge_multiplier = 2
+ if(istype(I, /obj/item/stack/ore/plasma))
+ charge_multiplier = 1
+ if(charge_multiplier)
+ if(cell.charge == cell.maxcharge)
+ to_chat(user, "You try to insert [I] into [src], but it's fully charged.") //my cell is round and full
+ return
I.use(1)
- cell.give(1000)
- to_chat(user, "You insert [I] in [src], recharging it.")
- else if(istype(I, /obj/item/stack/ore/plasma))
- I.use(1)
- cell.give(500)
+ cell.give(500*charge_multiplier)
to_chat(user, "You insert [I] in [src], recharging it.")
else
..()